;*************************** 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 <BB>
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 <OCTAL>
CALL GETIT
GTOCT
JMP SCAN
10$:
CMPB D1,#2
BNE 20$
HEX
CALL ENT
TYPE <HEX>
CALL GETIT
GTOCT
JMP SCAN
20$:
CALL ENT
TYPE <DECIMAL>
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 <Press the >
PRTTAB -1,12.
TYPE <UP >
PRTTAB -1,11.
TYPE <arrow (^K) to >
TSTW SETTYP(A5)
BNE 10$
TYPE <toggle switch >
BR 15$
10$:
TYPE <jumper bit >
15$:
PRTTAB -1,12.
TYPE <ON>
PRTTAB -1,11.
TYPE <.>
20$:
PRTTAB 18.,15.
TYPE <Press the >
PRTTAB -1,12.
TYPE <DOWN >
PRTTAB -1,11.
TYPE <arrow (^J) to >
TSTW SETTYP(A5)
BNE 25$
TYPE <toggle switch >
BR 30$
25$:
TYPE <jumper bit >
30$:
PRTTAB -1,12.
TYPE <OFF>
PRTTAB -1,11.
TYPE <.>
PRTTAB 19.,15.
TYPE <Press the >
PRTTAB -1,12.
TYPE <RIGHT >
PRTTAB -1,11.
TYPE <arrow to >
PRTTAB -1,12.
TYPE <BYPASS >
PRTTAB -1,11.
TSTW SETTYP(A5)
BNE 40$
TYPE <a switch.>
BR 45$
40$:
TYPE <a jumper.>
45$:
PRTTAB 21.,14.
PRTTAB -1,12.
TSTW SETTYP(A5)
JNE 99$
TYPE <Remember>
PRTTAB -1,11.
TYPE <, turning the switch >
PRTTAB -1,12.
TYPE <ON >
PRTTAB -1,11.
TYPE <sets the bit >
PRTTAB -1,12.
TYPE <OFF>
PRTTAB -1,11.
TYPE <.>
99$:
PRTTAB -1,12.
RTN
RESULT:
PRTTAB 17.,20.
TYPE <DECIMAL = >
DCVT 0,OT$TRM
HEX
PRTTAB 18.,20.
TYPE <HEX = >
OCVT 0,OT$TRM
OCTAL
PRTTAB 19.,20.
TYPE <OCTAL = >
OCVT 0,OT$TRM
RTN
AGAIN:
PRTTAB 23.,2.
PRTTAB -1,11.
TYPE <Want to do >
PRTTAB -1,12.
TYPE <Another ? >
PRTTAB -1,11.
TYPE <(Y>
MOVB #'/,D1
TTY
TYPE <N) >
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 <DIP SWITCH-JUMPER SETTER UTILITY>
PRTTAB 8.,25.
TYPE <1. 8 Position Dip Switch>
PRTTAB 9.,25.
TYPE <2. Multi Position Jumper>
PRTTAB 6.,25.
TYPE <Enter Selection >
MLTKEY
KBD
CMPB @A2,#'2
BNE 10$
MOVW #-1,SETTYP(A5)
RTN
10$:
MOVW #0,SETTYP(A5)
RTN