* To do:
* 4 IO routines -- OK?
* adjust ram locations -- OK?
-* then add trace routines
+* then add trace routines -- OK?
* then try in emulator
* ASSEMBLY SOURCE LISTING
TRAVEC RMB 2
TRAA RMB 1
TRAB RMB 1
+FLAGON RMB 1
*
PAGE
* This system is shown with one user, but additional users
STX TRASP
LDA #':'
JSR PEMIT
- LDA #' '
- JSR PEMIT
+* LDA #' '
+* JSR PEMIT
LDX W
LEAX -1,X
LEAX -1,X ; allocation link
BSR PHEXX2
BSR PHEXX2
LDA #' '
- JSR PEMIT
- RTS
+ JMP PEMIT ; rob return
+*
PHEXX2 LDA 0,X
LSRA
LSRA
LSRA
LSRA
- JSR PHEXD
+ BSR PHEXD
LDA 0,X
- JSR PHEXD
+ BSR PHEXD
LEAX 1,X
RTS
+*
PHEXD ANDA #$0F
CMPA #10
BLO PHEXDH
ADDA #7 ; 'A'-'9'+1
PHEXDH ADDA #'0'
+ JMP PEMIT ; rob return
+*
+DEBUGP FDB *+2
+ INC FLAGON my version of trace
+ LDA FLAGON
JSR PEMIT
- RTS
+ JMP NEXT
+*
+DEBUGM FDB *+2
+ DEC FLAGON my version of trace
+ LDA FLAGON
+ JSR PEMIT
+ JMP NEXT
*DBG
* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
JSR PEMIT
LDX UP
INC XOUT+1-UORIG,X
- BNE *+4
+ BNE EMITDN
INC XOUT-UORIG,X
- JMP NEXT
+EMITDN JMP NEXT
*
* ======>> 14 <<
FCB $83
FCB $D3
FDB RPSTOR-6
SEMIS FDB *+2
+* DBG
+ LDA #-$10
+ ADDA FLAGON
+ STA FLAGON my version of trace
+ JSR PEMIT
+*
LDX RP
LEAX 1,X
LEAX 1,X
LEAX -1,X
LEAX -1,X
STX RP
+* DBG
+ LDA #$10
+ ADDA FLAGON
+ STA FLAGON my version of trace
+ JSR PEMIT
+*
LDA IP
LDB IP+1
STA 2,X Store address of the high level word
FCC 'DECIMA' ; 'DECIMAL'
FCB $CC
FDB HEX-6
-DEC FDB DOCOL
+DECIM FDB DOCOL
FDB CLITER
FCB 10 note: hex "A"
FDB BASE,STORE
FCB $87
FCC '(;CODE' ; '(;CODE)'
FCB $A9
- FDB DEC-10
+ FDB DECIM-10
PSCODE FDB DOCOL,FROMR,TWOP,LATEST,PFA,CFA,STORE
FDB SEMIS
*
FCC 'ABOR' ; 'ABORT'
FCB $D4
FDB QUIT-7
-ABORT FDB DOCOL,SPSTOR,DEC,QSTACK,DRZERO,CR,PDOTQ
- FCB 8
- FCC "Forth-68"
+ABORT FDB DOCOL,SPSTOR,DECIM,QSTACK,DRZERO,CR,PDOTQ
+ FCB 15
+ FCC "Forth-68oo-68o9"
FDB FORTH,DEFIN
FDB QUIT
* FDB SEMIS never executed
STX TRLIM clear trace mode
LDX #0
STX BRKPT clear breakpoint address
+* DBG
+ LDA #$21
+ STA FLAGON my version of trace
+ JSR PEMIT
+*
JMP RPSTOR+2 start the virtual machine running !
*
* Here is the stuff that gets copied to ram :
* at address $140:
*
-RAM FDB $3000,$3000,0,0
+RAM FDB $5000,$5000,0,0
* ======>> (152) <<
FCB $C5 immediate
FCC 'LIS' ; 'LIST'
FCB $D4
FDB QUEST-4
-LIST FDB DOCOL,DEC,CR,DUP,SCR,STORE,PDOTQ
+LIST FDB DOCOL,DECIM,CR,DUP,SCR,STORE,PDOTQ
FCB 6
FCC "SCR # "
FDB DOT,CLITER