Restructure ROM
Include WOZMON
This commit is contained in:
1 parent
a5e30a7b28
commit
385de7a111
83 files changed
+180
-2754
No files matched your search
+118
@@ -0,0 +1,118 @@
|
||||
.segment "CODE"
|
||||
|
||||
.ifndef CONFIG_NO_POKE
|
||||
; ----------------------------------------------------------------------------
|
||||
; EVALUATE "EXP1,EXP2"
|
||||
;
|
||||
; CONVERT EXP1 TO 16-BIT NUMBER IN LINNUM
|
||||
; CONVERT EXP2 TO 8-BIT NUMBER IN X-REG
|
||||
; ----------------------------------------------------------------------------
|
||||
GTNUM:
|
||||
jsr FRMNUM
|
||||
jsr GETADR
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; EVALUATE ",EXPRESSION"
|
||||
; CONVERT EXPRESSION TO SINGLE BYTE IN X-REG
|
||||
; ----------------------------------------------------------------------------
|
||||
COMBYTE:
|
||||
jsr CHKCOM
|
||||
jmp GETBYT
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; CONVERT (FAC) TO A 16-BIT VALUE IN LINNUM
|
||||
; ----------------------------------------------------------------------------
|
||||
GETADR:
|
||||
lda FACSIGN
|
||||
.ifdef APPLE
|
||||
nop ; PATCH
|
||||
nop
|
||||
.else
|
||||
bmi GOIQ
|
||||
.endif
|
||||
lda FAC
|
||||
cmp #$91
|
||||
bcs GOIQ
|
||||
jsr QINT
|
||||
lda FAC_LAST-1
|
||||
ldy FAC_LAST
|
||||
sty LINNUM
|
||||
sta LINNUM+1
|
||||
rts
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; "PEEK" FUNCTION
|
||||
; ----------------------------------------------------------------------------
|
||||
PEEK:
|
||||
.ifdef CONFIG_PEEK_SAVE_LINNUM
|
||||
lda LINNUM+1
|
||||
pha
|
||||
lda LINNUM
|
||||
pha
|
||||
.endif
|
||||
jsr GETADR
|
||||
ldy #$00
|
||||
.ifdef CBM1
|
||||
; disallow PEEK between $C000 and $DFFF
|
||||
cmp #$C0
|
||||
bcc LD6F3
|
||||
cmp #$E1
|
||||
bcc LD6F6
|
||||
LD6F3:
|
||||
.endif
|
||||
.ifdef CBM2
|
||||
nop ; patch that disables the compares above
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
.endif
|
||||
lda (LINNUM),y
|
||||
tay
|
||||
.ifdef CONFIG_PEEK_SAVE_LINNUM
|
||||
pla
|
||||
sta LINNUM
|
||||
pla
|
||||
sta LINNUM+1
|
||||
.endif
|
||||
LD6F6:
|
||||
jmp SNGFLT
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; "POKE" STATEMENT
|
||||
; ----------------------------------------------------------------------------
|
||||
POKE:
|
||||
jsr GTNUM
|
||||
txa
|
||||
ldy #$00
|
||||
sta (LINNUM),y
|
||||
rts
|
||||
|
||||
; ----------------------------------------------------------------------------
|
||||
; "WAIT" STATEMENT
|
||||
; ----------------------------------------------------------------------------
|
||||
WAIT:
|
||||
jsr GTNUM
|
||||
stx FORPNT
|
||||
ldx #$00
|
||||
jsr CHRGOT
|
||||
.ifdef CONFIG_EASTER_EGG
|
||||
beq EASTER_EGG
|
||||
.else
|
||||
beq L3628
|
||||
.endif
|
||||
jsr COMBYTE
|
||||
L3628:
|
||||
stx FORPNT+1
|
||||
ldy #$00
|
||||
L362C:
|
||||
lda (LINNUM),y
|
||||
eor FORPNT+1
|
||||
and FORPNT
|
||||
beq L362C
|
||||
RTS3:
|
||||
rts
|
||||
.endif
|
||||
Reference in new issue
Block a user