home *** CD-ROM | disk | FTP | other *** search
- ;CPUT"@1:CONSOLE.A
- ;
- ;
- LDA #<BREAK
- STA $316
- LDA #>BREAK
- STA $317
- LDA #0
- STA WRBASE
- STA RAM256
- ; SET COLORS
- LDA #6
- STA 53280
- LDA #3
- STA 53281
- LDX #MESS0-MESS0 ;'MONITOR' TITLE
- STX FLGS
- BEQ BREA02 ;JUMP
- BREAK CLD
- LDX #5
- BREA00 PLA
- STA PCH,X ;READ REGISTERS ETC...
- DEX
- BPL BREA00
- LDA PCL
- SEC
- SBC #2
- STA PCL
- BCS BREA01
- DEC PCH
- BREA01 LDX #MESS1-MESS0 ;'BREAK' TITLE
- BREA02 STX SYREG
- LDA #%11000000
- STA MSGFLG ;TURN ON MESSAGES
- TSX
- STX SP ;SAVE STACK POINTER
- LDX SYREG
- JSR STRING ;PRINT TITLE
- LDA #0
- STA T2
- STA T2+1
- CLI
- JMP REGS
- ;
- ;
- ;
- STRING LDA MESS0,X
- PHP
- AND #%01111111
- JSR CHROUT ;OUTPUT CHARACTER
- INX
- PLP
- BPL STRING ;PRINT MESSAGE
- RTS
- ;
- MESS0 .BYT 13,'MONITOR',141
- MESS1 .BYT 13,'BREA',203
- MESS2 .BYT 13,' PC SR AC XR '
- .BYT 'YR SP',13,';',160
- MESS3 .BYT 'A',160
- MESS4 .BYT 13,'ERRO',210
-
- ;---------------------------------
- ;
- ; PRINT REGISTERS (R)
- ;
- REGS LDX #MESS2-MESS0
- JSR STRING ;" PC SR AC XR YR SP"
- LDA PCH
- JSR OUTHEX ;PRINT (PCH)
- LDY #0
- REGS00 LDA PCL,Y
- JSR HEXSPC ;PRINT HEX NUMBER AND SPACE
- INY ;PRINT REGISTERS
- CPY #6
- BCC REGS00
- BCS NEWCMD
-
- ;
- MCMD .BYT 'XMRG'
- .BYT 'TCDA'
- .BYT '.HF>'
- .BYT ';BJ'
- MCMD00 .BYT '@LSV'
- ;
- MVEC .WOR EXIT-1,MEMO-1,REGS-1,GOTO-1
- .WOR TRANS-1,TRAN99-1,DISP-1,ASME-1
- .WOR ASME-1,HUNT-1,FILL-1,STORE-1
- .WOR SREG-1,BANK-1,JUMP-1
- ;---------------------------------
- ; ERROR
- ERR JSR QUEST ;PRINT "?"
-
- ;---------------------------------
- ; NEW COMMAND LINE
- NEWCMD JSR CR ;PRINT CR
- LDX #0
- STX CHRPTR
- STX WRBASE
- NEWC00 JSR CHRIN
- STA BUF,X
- INX
- CMP #13
- BNE NEWC00 ;NOT YET CR
- DEX
- STX BUFEND
- NEWC01 JSR CHRGET ;CHECK FOR ":"
- BEQ NEWCMD ;START NEW LINE
- CMP #' ' ;IGNORE SPACES
- BEQ NEWC01
- LDX #MVEC-MCMD-1
- NEWC02 CMP MCMD,X ;CHECK COMMANDS
- BEQ NEWC03
- DEX
- BPL NEWC02
- BMI ERR ;ERROR
- NEWC03 CPX #MCMD00-MCMD
- BCS NEWC08 ;COMMAND WITHOUT HEXPRM
- TXA
- ASL A
- TAX
- LDA MVEC+1,X
- PHA
- LDA MVEC,X
- PHA
- JMP ACCEPT ;HEX WORD TO (TO)
- ;
- NEWC08 CMP #'@'
- BNE NEWC07
- JMP DISC
- NEWC07 STA CMPFLG
- JMP FILE
-
- ;---------------------------------
- ;CHANGE REGISTERS (;)
- ;
- SREG BCS NEWCMD
- LDA TO
- LDY TO+1
- STA PCL
- STY PCH
- LDY #0
- SREG00 JSR ACCEPT ;HEX WORD TO (TO)
- BCS NEWCMD
- LDA TO
- STA FLGS,Y
- INY
- CPY #5
- BCC SREG00
- BCS NEWCMD
-
- ;---------------------------------
- ; EXECUTE PROGRAM
- ;
- GOTO BCS GOTO00 ;USE OPTIONAL ADDR
- LDA TO
- STA PCL
- LDA TO+1
- STA PCH
- GOTO00 LDX SP
- TXS
- LDX #0
- GOTO01 LDA PCH,X
- PHA
- INX
- CPX #3
- BNE GOTO01
- LDX XR
- LDY YR
- LDA ACC
- RTI
-
- ;---------------------------------
- ;
- ; LOAD/VERIFY/SAVE
- ;
- FILE LDY #1
- STY SA
- LDA #8
- STA FA
- DEY
- STY FNLEN
- STY STATUS
- STY VERCK
- LDA #>XCNT
- STA FNADR+1
- LDA #<XCNT
- STA FNADR
- FILE00 JSR CHRGET ;GET CHAR FROM BUFFER
- BEQ FILE02
- CMP #32
- BEQ FILE00
- CMP #'"'
- BNE FILERR
- LDX CHRPTR
- FILE01 CPX BUFEND
- BCS FILE02
- LDA BUF,X
- INX
- CMP #'"'
- BEQ FILE03
- STA (FNADR),Y
- INY
- STY FNLEN
- CPY #19
- BCC FILE01
- FILERR JMP ERR
- FILE03 STX CHRPTR
- JSR CHRGET ;GET CHAR FROM BUFFER
- JSR ACCEPT ;HEX WORD TO (TO)
- BCS FILE02
- LDA TO
- STA FA
- JSR ACCEPT ;HEX WORD TO (TO)
- BCS FILE02
- JSR MOVE ;COPY (TO) TO (T2)
- JSR ACCEPT ;HEX WORD TO (TO)
- BCS FILERR
- LDA TO
- SBC T2
- LDA TO+1
- SBC T2+1
- BCC FILERR
- JSR CR ;PRINT CR
- LDX TO
- LDY TO+1
- LDA CMPFLG
- CMP #'S'
- BNE FILERR
- LDA #0
- STA SA
- LDA #T2
- JSR SAVE
- NEWC09 JMP NEWCMD
- ;
- FILE02 LDA CMPFLG
- CMP #'V'
- BEQ FILE04
- CMP #'L'
- BNE FILERR
- LDA #0
- FILE04 JSR LOAD
- LDA STATUS
- AND #%00010000
- BEQ NEWC09
- LDA CMPFLG
- CMP #'L'
- BEQ FILERR
- LDX #MESS4-MESS0
- JSR STRING ;PRINT MESSAGE
- ;---------------------------------
- ; EXECUTE SUBROUTINE (J)
- ;
- JUMP BCS JUMP00
- LDA TO
- STA PCL
- LDA TO+1
- STA PCH
- JUMP00 LDA #>JUMP02
- PHA
- LDA #<JUMP02
- PHA
- LDX #0
- JUMP01 LDA PCH,X
- PHA
- INX
- CPX #3
- BNE JUMP01
- LDX XR
- LDY YR
- LDA ACC
- JUMP02 RTI
- STA ACC
- STX XR
- STY YR
- PHP
- PLA
- STA FLGS
- NEWC10 JMP NEWCMD
-
- ;---------------------------------
- ; DISK COMMANDS (@)
- ;
- DISC LDX CHRPTR
- CPX BUFEND
- BCC DISC00
- JMP READER ;READ DISK CHANNEL
- DISC00 LDA BUF,X
- CMP #' '
- BNE DISC01 ;SEND COMMAND OR DIR
- INC CHRPTR
- BNE DISC
- DISC01 CMP #'$'
- BEQ DISC10 ;SEND DISK COMMAND
- JMP SEND
- DISC10 JSR CR ;PRINT RET.
- LDY #$F0
- JSR LSN
- LDA #'$'
- DISC11 JSR $EDDD ;CIOUT
- INC CHRPTR
- LDX CHRPTR
- CPX BUFEND
- BCS DISC12
- LDA BUF,X
- BCC DISC11
- DISC12 JSR $EDFE ;UNLISTEN
- LDA #8
- JSR $ED09 ;TALK
- LDA #$60
- JSR $EDC7 ;TKSA
- LDA #0
- STA STATUS
- LDY #3
- DISC13 JSR $EE13 ;ACPTR
- STA $63
- JSR $EE13 ;ACPTR
- STA $62
- LDX STATUS
- BNE DISC17
- DEY
- BNE DISC13
- JSR $BDD1 ;PRINT LINE#
- JSR SPACE ;PRINT SPC
- DISC14 JSR $EE13 ;ACPTR
- LDX STATUS
- BNE DISC17
- CMP #0
- BEQ DISC19
- JSR CHROUT ;OUTPUT CHARACTER
- JSR $F13E ;GET (KEYBOARD)
- CMP #' '
- BNE DISC16
- DISC15 JSR $F13E ;GET (KEYBOARD)
- CMP #' '
- BEQ DISC16
- CMP #3
- BNE DISC15
- BEQ DISC17
- DISC16 JSR $F6ED ;STOP-KEY TEST
- BNE DISC14
- DISC17 JSR $EDEF ;UNTALK
- LDY #$E0
- JSR LSN
- DISC18 JSR $EDFE ;UNLISTEN
- JMP NEWCMD
- DISC19 JSR CR ;PRINT RET.
- LDY #2
- BNE DISC13
-
- ;SEND DISK COMMAND
-
- SEND LDY #$6F
- JSR LSN ;LISTEN AND SECONDARY
- SEND00 LDX CHRPTR
- CPX BUFEND
- BCS SEND01
- LDA BUF,X
- JSR $EDDD ;CIOUT
- INC CHRPTR
- BNE SEND00
- SEND01 BEQ DISC18
-
- ;READ ERROR CHANNEL
-
- READER JSR CR ;PRINT RET.
- LDX #$6F
- JSR TLK
- READ00 JSR $EE13 ;ACPTR
- CMP #13
- BEQ DISC18
- JSR CHROUT ;OUTPUT CHARACTER
- BNE READ00
- BEQ DISC18
- TLK LDA #8
- JSR $ED09 ;TALK
- TXA
- JMP $EDC7 ;TKSA
- LSN LDA #8
- JSR $ED0C ;LISTEN
- TYA
- JMP $EDB9 ;SECOND
-
- ;--------------------------------
- ;EXIT TO BASIC
- ;
- EXIT JMP ($A002)
- .END
-