;*************************** AMUS Program Label ****************************** ; Filename: SETJMP.M68 Date: 01/04/89 ; Category: UTIL Hash Code: 777-603-766-025 Version: 1.0 ; Initials: GR/AM Name: JAMES A. JARBOE IV ; Company: Telephone #: 4092955767 ; Related Files: ; Min. Op. Sys.: 1.3B Expertise Level: BEG ; Special: ; Description: Graphically displays jumper settings for 8 pin dip switches/ ; connectors by number base or by physical switch setting. ; ;***************************************************************************** ; Updated on 08-Dec-88 at 8:30 PM by JARBOE ; 1401 19th Street ; Huntsville, TX 77340 ; 409-295-5767 ; ; Tested on AMOS : 1.3B(151)-7 ; Risk : None ; Options: None SEARCH SYS SEARCH SYSSYM SEARCH TRM ASMMSG " " ASMMSG "( SETJMP )" ASMMSG "( By James A. Jarboe IV )" ASMMSG " " ; Correct SETJMP.LIT hash = 777-603-766-025 ; AMUS MACROS ; DEFINE PRTTAB AA,BB PUSH D1 MOVB #AA,D1 LSLW D1,#10 MOVB #BB,D1 TCRT POP D1 ENDM DEFINE ONEKEY ;makes KBD only accept one key (D1 holds it) PUSH A6 ;"black box" JOBIDX A6 ;get JCB pointer MOV JOBTRM(A6),A6 ;A6 holds pointer to TSW ORW #3,@A6 POP A6 ;restore original ENDM DEFINE MLTKEY ;multiple keystrokes on KBD call (A2 pointer) PUSH A6 ;"black box" PUSH D4 JOBIDX A6 MOV JOBTRM(A6),A6 ;A6 holds pointer to TSW MOVW #3,D4 COMW D4 ;to set up the AND so as to ANDW D4,@A6 ;turn off the T$IMI bit (back to normal mode) POP D4 ;restore originals POP A6 ENDM DEFINE HEX ;set binary output to HEX PUSH A6 ;"black box" JOBIDX A6 ;point to JOBIDX (JOBSTS) LEA A6,JOBTYP(A6) ;A6 points to JOBTYP word ORW #J.HEX,@A6 ;HEX set POP A6 ;restore original ENDM DEFINE OCTAL ;set OCTAL PUSH A6 ;"black box" PUSH D7 JOBIDX A6 ;point to JOBIDX (JOBSTS) LEA A6,JOBTYP(A6) ;A6 points to JOBTYP word MOVW #J.HEX,D7 ;get the flag number COMW D7 ;flip the bits ANDW D7,@A6 ;OCTAL set POP D7 ;restore original POP A6 ENDM ; Program macros ; DEFINE SHOWIT AA,BB PUSH D1 MOVB #AA,D1 LSLW D1,#10 MOVB D3,D1 TCRT TYPE POP D1 ENDM VMAJOR=1 ; Author James A. Jarboe VMINOR=0 .OFINI .OFDEF SETTYP,4. .OFSIZ MEMSIZ ;START OF CODE START: PHDR -1,0,PH$REE!PH$REU ;program header GETIMP MEMSIZ,A5 ;allocate impure area CALL HEADER 10$: CALL SCREEN CLR D3 ; CLR D5 ; MOV #62.,D3 ; CALL SELECT ; get selection CALL SETBAS ; set the base CALL RESULT ; show the results CALL AGAIN ; ask to do it again BEQ 10$ EXIT: PRTTAB -1,12. PRTTAB 21.,1 EXIT SETBAS: CTRLC EXIT ; ^C out PRTTAB 15.,1. ; PRTTAB -1,10. ; CLR D1 ; GTDEC ; get decimal into d1 CMPB D1,#4 ; JEQ THESWT CMPB D1,#3 BNE 10$ OCTAL CALL ENT TYPE CALL GETIT GTOCT JMP SCAN 10$: CMPB D1,#2 BNE 20$ HEX CALL ENT TYPE CALL GETIT GTOCT JMP SCAN 20$: CALL ENT TYPE CALL GETIT CLR D1 GTDEC SCAN: CTRLC EXIT CLR D0 MOV #7.,D0 ;set bit mask 10$: BTST D0,D1 ;test bit BEQ 30$ ; branch if zero TSTW SETTYP(A5) BNE 35$ 20$: SHOWIT 10.,X SUB #5,D3 BR 40$ 30$: TSTW SETTYP(A5) BNE 20$ 35$: SHOWIT 8.,X SUB #5,D3 BR 40$ 40$: DEC D0 ;decrement count BLT 50$ ;branch if done BR 10$ ;processs new word 50$: RTN GETIT: PRTTAB -1,11. TYPE < Number > PRTTAB -1,12. KBD RTN ENT: PRTTAB 15.,15. PRTTAB -1,11. TYPE < Enter > PRTTAB -1,12. RTN SELECT: PRTTAB 15.,1 TYPECR < 1. Decimal (default)> TYPECR < 2. Hexadecimal > TYPECR < 3. Octal > TSTW SETTYP(A5) BNE 10$ TYPECR < 4. By Switch> BR 20$ 10$: TYPECR < 4. By Jumper> 20$: PRTTAB 20.,15. TYPE < Enter Desired Base > KBD RTN THESWT: CALL SWTHLP ONEKEY CLR D3 CLR D2 CLR D4 MOVB #1,D4 MOV #27.,D3 10$: CTRLC EXIT SHOWIT 9., KBD CMPB D1,#10. BEQ 20$ CMPB D1,#12. BEQ 99$ CMPB D1,#11. BNE 10$ SHOWIT 8.,X TSTW SETTYP(A5) BNE 30$ BR 99$ 20$: SHOWIT 10.,X TSTW SETTYP(A5) BNE 99$ 30$: ADD D4,D2 99$: ADD D4,D4 ADD #5.,D3 CMPB D3,#67. BNE 10$ MOV D2,D1 PRTTAB 17.,1 PRTTAB -1,10. RTN SWTHLP: PRTTAB 17.,15. PRTTAB -1,10. PRTTAB -1,11. TYPE PRTTAB -1,12. TYPE PRTTAB -1,11. TYPE TSTW SETTYP(A5) BNE 10$ TYPE BR 15$ 10$: TYPE 15$: PRTTAB -1,12. TYPE PRTTAB -1,11. TYPE <.> 20$: PRTTAB 18.,15. TYPE PRTTAB -1,12. TYPE PRTTAB -1,11. TYPE TSTW SETTYP(A5) BNE 25$ TYPE BR 30$ 25$: TYPE 30$: PRTTAB -1,12. TYPE PRTTAB -1,11. TYPE <.> PRTTAB 19.,15. TYPE PRTTAB -1,12. TYPE PRTTAB -1,11. TYPE PRTTAB -1,12. TYPE PRTTAB -1,11. TSTW SETTYP(A5) BNE 40$ TYPE BR 45$ 40$: TYPE 45$: PRTTAB 21.,14. PRTTAB -1,12. TSTW SETTYP(A5) JNE 99$ TYPE PRTTAB -1,11. TYPE <, turning the switch > PRTTAB -1,12. TYPE PRTTAB -1,11. TYPE PRTTAB -1,12. TYPE PRTTAB -1,11. TYPE <.> 99$: PRTTAB -1,12. RTN RESULT: PRTTAB 17.,20. TYPE DCVT 0,OT$TRM HEX PRTTAB 18.,20. TYPE OCVT 0,OT$TRM OCTAL PRTTAB 19.,20. TYPE OCVT 0,OT$TRM RTN AGAIN: PRTTAB 23.,2. PRTTAB -1,11. TYPE PRTTAB -1,12. TYPE PRTTAB -1,11. TYPE <(Y> MOVB #'/,D1 TTY TYPE PRTTAB -1,12. ONEKEY KBD MLTKEY UCS CMPB D1,#'Y BEQ 20$ LCC #0 RTN 20$: LCC #4 RTN HEADER: PRTTAB -1,0. PRTTAB 1,79. PRTTAB -1,33. PRTTAB 1,1 PRTTAB -1,32. PRTTAB 1,25. TYPE PRTTAB 8.,25. TYPE <1. 8 Position Dip Switch> PRTTAB 9.,25. TYPE <2. Multi Position Jumper> PRTTAB 6.,25. TYPE MLTKEY KBD CMPB @A2,#'2 BNE 10$ MOVW #-1,SETTYP(A5) RTN 10$: MOVW #0,SETTYP(A5) RTN RADIX 10 SCREEN: TSTW SETTYP(A5) BNE JUMPER LEA A0,TABLE1 BR DISPLA JUMPER: LEA A0,TABLE2 DISPLA: 10$: MOVB (A0)+,D1 JEQ DONE CMPB D1,#-2 BEQ 20$ ROLW D1,#8. MOVB (A0)+,D1 TCRT BR 10$ 20$: MOVB (A0)+,D1 BEQ 10$ TTY BR 20$ TABLE1: BYTE -1,29,-1,24,-1,12,-1,0,1,79,-1,11,-1,33,-1,12,1,1,-1,11,-1,32 BYTE 1,33,-1,12,-2 ASCIZ ~SWITCH SETTER ~ BYTE -1,11,-1,6,-1,12,4,12,-1,23,-1,38,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,11,-1,42,-1,12,-1,46,-1,46 BYTE -1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46 BYTE -1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,11,-1,46 BYTE -1,39,-1,12,5,21,-1,11,-1,24,-2 ASCIZ ~#~ BYTE -1,12,5,1,-2 ASCIZ ~ ~ BYTE 5,12,-1,23,-1,47,5,14,-1,11,-1,24,-2 ASCIZ ~Switch ~ BYTE -1,6,-2 ASCIZ ~ ~ BYTE -1,23,-1,47,-1,24,-2 ASCIZ ~ 1 2 3 4 5 6 7 8~ BYTE 5,66,-2 ASCIZ ~ ~ BYTE -1,23,-1,47,-1,12,6,1,-1,24,-2 ASCIZ ~ ~ BYTE -1,11,-2 ASCIZ ~ ~ BYTE -1,12,-1,23,-1,47,-1,11,-1,24,-2 ASCIZ ~ Address ~ BYTE -1,23,-1,47,-1,24,-2 ASCIZ ~ A0 A1 A2 A3 A4 A5 A6 A7~ BYTE 6,66,-2 ASCIZ ~ ~ BYTE -1,23,-1,47,-1,12,7,1,-1,11,-1,24,-2 ASCIZ ~ ~ BYTE -1,23,-1,44,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,48,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46 BYTE -1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46 BYTE -1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,43,-1,12,8,1,-1,24,-2 ASCIZ ~ ~ BYTE 8,12,-1,23,-1,47,8,14,-1,11,-1,24,-2 ASCIZ ~ON = 0 ~ BYTE 8,23,-1,23,-1,47,8,26,-1,24,-2 ASCIZ ~ ~ BYTE 8,66,-2 ASCIZ ~ ~ BYTE -1,23,-1,47,-1,12,9,12,-1,47,9,23,-1,47,9,25,-1,11,-1,24,-2 ASCIZ ~ --- --- --- --- --- --- --- --- ~ BYTE 9,67,-1,12,-1,23,-1,47,10,1,-1,24,-2 ASCIZ ~ ~ BYTE 10,12,-1,23,-1,47,10,14,-1,11,-1,24,-2 ASCIZ ~OFF = 1 ~ BYTE -1,23,-1,47,-1,24,-2 ASCIZ ~ ~ BYTE -1,12,-2 ASCIZ ~ ~ BYTE -1,11,-2 ASCIZ ~ ~ BYTE -1,12,-2 ASCIZ ~ ~ BYTE -1,11,-2 ASCIZ ~ ~ BYTE -1,12,-2 ASCIZ ~ ~ BYTE -1,11,-2 ASCIZ ~ ~ BYTE -1,12,-2 ASCIZ ~ ~ BYTE -1,11,-2 ASCIZ ~ ~ BYTE 10,66,-2 ASCIZ ~ ~ BYTE -1,23,-1,47,-1,12,11,12,-1,11,-1,44,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,48,-1,46,-1,46,-1,46,-1,46 BYTE -1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46 BYTE -1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,43,-1,12,12,1 BYTE -1,24,-2 ASCIZ ~ ~ BYTE 12,12,-1,23,-1,47,12,14,-1,11,-1,24,-2 ASCIZ ~ ~ BYTE -1,23,-1,47,-1,24,-2 ASCIZ ~ (1) (2) (4) ~ BYTE -1,12,-2 ASCIZ ~ ~ BYTE -1,11,-2 ASCIZ ~(8) (16) (32) (64) (128) ~ BYTE -1,23,-1,47,-1,12,13,12,-1,40,-1,46,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,11,-1,45,-1,12,-1,46,-1,46,-1,46 BYTE -1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46 BYTE -1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,11,-1,46,-1,41 BYTE -1,12,-1,28,-1,24 BYTE 0 EVEN TABLE2: BYTE -1,29,-1,24,-1,12,-1,0,1,79,-1,11,-1,33,-1,12,1,1,-1,11,-1,32 BYTE 1,32,-1,12,-2 ASCIZ ~JUMPER SETTINGS ~ BYTE -1,11,-1,6,-1,12,3,12,-1,23,-1,38,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,42,-1,46,-1,46,-1,46,-1,46 BYTE -1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46 BYTE -1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,39,4,12,-1,47 BYTE -1,24,-2 ASCIZ ~ ~ BYTE -1,11,-2 ASCIZ ~Address ~ BYTE 4,23,-1,12,-1,23,-1,47,-1,24,-2 ASCIZ ~ ~ BYTE -1,11,-2 ASCIZ ~ A0 A1 A2 A3 A4 A5 A6 A7~ BYTE 4,67,-1,12,-1,23,-1,47,5,12,-1,47,-1,24,-2 ASCIZ ~ ~ BYTE 5,23,-1,23,-1,47,-1,24,-2 ASCIZ ~ ~ BYTE -1,11,-2 ASCIZ ~ (1) (2) (4) (8) (16) (32) (64) (128)~ BYTE 5,67,-1,12,-1,23,-1,47,6,12,-1,44,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,48,-1,46,-1,46,-1,46,-1,46 BYTE -1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46 BYTE -1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,43,7,12,-1,47 BYTE 7,14,-1,24,-2 ASCIZ ~ ~ BYTE 7,23,-1,23,-1,47,-1,24,-2 ASCIZ ~ ~ BYTE -1,11,-2 ASCIZ ~ *~ BYTE 7,32,-2 ASCIZ ~*~ BYTE 7,37,-2 ASCIZ ~*~ BYTE 7,42,-2 ASCIZ ~*~ BYTE 7,47,-2 ASCIZ ~*~ BYTE 7,52,-2 ASCIZ ~*~ BYTE 7,57,-2 ASCIZ ~*~ BYTE 7,62,-2 ASCIZ ~*~ BYTE 7,67,-1,12,-1,23,-1,47,8,12,-1,47,8,18,-1,11,-1,24,-2 ASCIZ ~1~ BYTE 8,23,-1,12,-1,23,-1,47,-1,24,-2 ASCIZ ~ ~ BYTE 8,67,-1,23,-1,47,9,12,-1,47,9,23,-1,47,-1,24,-2 ASCIZ ~ ~ BYTE -1,11,-2 ASCIZ ~ *~ BYTE 9,32,-2 ASCIZ ~*~ BYTE 9,37,-2 ASCIZ ~*~ BYTE 9,42,-2 ASCIZ ~*~ BYTE 9,47,-2 ASCIZ ~*~ BYTE 9,52,-2 ASCIZ ~*~ BYTE 9,57,-2 ASCIZ ~*~ BYTE 9,62,-2 ASCIZ ~*~ BYTE 9,67,-1,12,-1,23,-1,47,10,12,-1,47,-1,24,-2 ASCIZ ~ ~ BYTE 10,18,-1,11,-2 ASCIZ ~0~ BYTE 10,23,-1,12,-1,23,-1,47,-1,24,-2 ASCIZ ~ ~ BYTE 10,67,-1,23,-1,47,11,12,-1,47,11,23,-1,47,-1,24,-2 ASCIZ ~ ~ BYTE -1,11,-2 ASCIZ ~ *~ BYTE 11,32,-2 ASCIZ ~*~ BYTE 11,37,-2 ASCIZ ~*~ BYTE 11,42,-2 ASCIZ ~*~ BYTE 11,47,-2 ASCIZ ~*~ BYTE 11,52,-2 ASCIZ ~*~ BYTE 11,57,-2 ASCIZ ~*~ BYTE 11,62,-2 ASCIZ ~*~ BYTE 11,67,-1,12,-1,23,-1,47,12,12,-1,44,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,48,-1,46,-1,46,-1,46,-1,46 BYTE -1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46 BYTE -1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,43,13,21,-1,11 BYTE -1,24,-2 ASCIZ ~#~ BYTE -1,12,13,12,-1,23,-1,47,-1,24,-2 ASCIZ ~ ~ BYTE -1,11,-2 ASCIZ ~Jumper ~ BYTE -1,6,13,23,-1,12,-1,23,-1,47,-1,24,-2 ASCIZ ~ ~ BYTE -1,11,-2 ASCIZ ~ 1 2 3 4 5 6 7 8 ~ BYTE 13,67,-1,12,-1,23,-1,47,14,12,-1,40,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,45,-1,46,-1,46,-1,46,-1,46 BYTE -1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46 BYTE -1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1 BYTE 46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,46,-1,41,-1,28,-1,24 BYTE 0 EVEN DONE: RTN END END .