mirror of
https://github.com/a2stuff/franklin.git
synced 2024-06-01 23:41:40 +00:00
wip
This commit is contained in:
parent
89552349d4
commit
36aff42b39
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
.setcpu "65C02"
|
.setcpu "65C02"
|
||||||
.include "opcodes.inc"
|
.include "opcodes.inc"
|
||||||
|
.feature string_escapes
|
||||||
|
|
||||||
;;; Zero Page
|
;;; Zero Page
|
||||||
|
|
||||||
|
@ -250,7 +251,7 @@ EscapeMode:
|
||||||
lda #M_ESC
|
lda #M_ESC
|
||||||
tsb MODE
|
tsb MODE
|
||||||
jsr LC850
|
jsr LC850
|
||||||
jsr LC933
|
jsr ProcessEscapeModeKey
|
||||||
cmp #$98 ; ctrl-x (clear)
|
cmp #$98 ; ctrl-x (clear)
|
||||||
beq LC3AA
|
beq LC3AA
|
||||||
lda MODE ; still in escape mode?
|
lda MODE ; still in escape mode?
|
||||||
|
@ -565,68 +566,72 @@ LC871: pha
|
||||||
pla
|
pla
|
||||||
rts2: rts
|
rts2: rts
|
||||||
|
|
||||||
|
;;; ============================================================
|
||||||
|
|
||||||
LC877: jsr LC850
|
LC877: jsr LC850
|
||||||
cmp #$00
|
cmp #$00
|
||||||
beq LC89F
|
beq @l4
|
||||||
cmp #$02
|
cmp #$02
|
||||||
beq LC80E
|
beq LC80E
|
||||||
cmp #$05
|
cmp #$05
|
||||||
bne rts2
|
bne rts2
|
||||||
ldy CH
|
ldy CH
|
||||||
LC888: iny
|
@l1: iny
|
||||||
cpy WNDWDTH
|
cpy WNDWDTH
|
||||||
beq LC897
|
beq @l2
|
||||||
jsr LCEC0
|
jsr LCEC0
|
||||||
dey
|
dey
|
||||||
jsr LCECB
|
jsr LCECB
|
||||||
iny
|
iny
|
||||||
bra LC888
|
bra @l1
|
||||||
|
|
||||||
LC897: dey
|
@l2: dey
|
||||||
LC898: lda #$A0
|
@l3: lda #$A0
|
||||||
jsr LCECB
|
jsr LCECB
|
||||||
bra LC877
|
bra LC877
|
||||||
|
|
||||||
LC89F: ldy WNDWDTH
|
@l4: ldy WNDWDTH
|
||||||
dey
|
dey
|
||||||
LC8A2: cpy CH
|
@l5: cpy CH
|
||||||
beq LC898
|
beq @l3
|
||||||
dey
|
dey
|
||||||
jsr LCEC0
|
jsr LCEC0
|
||||||
iny
|
iny
|
||||||
jsr LCECB
|
jsr LCECB
|
||||||
dey
|
dey
|
||||||
bra LC8A2
|
bra @l5
|
||||||
|
|
||||||
|
;;; ============================================================
|
||||||
|
|
||||||
LC8B1: sta CHAR
|
LC8B1: sta CHAR
|
||||||
LC8B4: jsr LC992
|
LC8B4: jsr CheckPauseListing
|
||||||
lda MODE
|
lda MODE
|
||||||
and #$03 ; test low 3 bits
|
and #$03 ; test low 3 bits
|
||||||
beq LC8C1
|
beq @l1
|
||||||
jmp LCA11
|
jmp LCA11
|
||||||
|
|
||||||
LC8C1: lda CHAR
|
@l1: lda CHAR
|
||||||
and #$7F
|
and #$7F
|
||||||
cmp #$20
|
cmp #$20
|
||||||
bcc DoCtrlCharOut
|
bcc DoCtrlCharOut
|
||||||
ldy CH
|
ldy CH
|
||||||
cpy WNDWDTH
|
cpy WNDWDTH
|
||||||
bcc LC8D3
|
bcc @l2
|
||||||
jsr DoReturn
|
jsr DoReturn
|
||||||
LC8D3: lda CHAR ; char to be printed
|
@l2: lda CHAR ; char to be printed
|
||||||
bit INVFLG
|
bit INVFLG
|
||||||
bmi LC8F0
|
bmi @l3
|
||||||
and #$7F
|
and #$7F
|
||||||
bit MODE
|
bit MODE
|
||||||
bvs LC8F0 ; test bit 6 (MouseText active)
|
bvs @l3 ; test bit 6 (MouseText active)
|
||||||
bit ALTCHARSET
|
bit ALTCHARSET
|
||||||
bpl LC8F0
|
bpl @l3
|
||||||
cmp #$40
|
cmp #$40
|
||||||
bcc LC8F0
|
bcc @l3
|
||||||
cmp #$60
|
cmp #$60
|
||||||
bcs LC8F0
|
bcs @l3
|
||||||
and #$1F
|
and #$1F
|
||||||
LC8F0: jsr LCBF9
|
@l3: jsr LCBF9
|
||||||
jmp DoForwardSpace
|
jmp DoForwardSpace
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
@ -644,9 +649,9 @@ DoCtrlCharOut:
|
||||||
bcc DoNothing
|
bcc DoNothing
|
||||||
asl a
|
asl a
|
||||||
tax
|
tax
|
||||||
jmp (jt1,x)
|
jmp (@jt,x)
|
||||||
|
|
||||||
jt1:
|
@jt:
|
||||||
.addr DoBell ; $07 Ctrl-G Bell
|
.addr DoBell ; $07 Ctrl-G Bell
|
||||||
.addr DoBackspace ; $08 Ctrl-H Backspace
|
.addr DoBackspace ; $08 Ctrl-H Backspace
|
||||||
.addr DoNothing ; $09 Ctrl-I
|
.addr DoNothing ; $09 Ctrl-I
|
||||||
|
@ -674,37 +679,35 @@ jt1:
|
||||||
.addr DoUp ; $1F Ctrl-_ Up
|
.addr DoUp ; $1F Ctrl-_ Up
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; GetLn handling
|
|
||||||
;;; For Escape key sequences
|
;;; For Escape key sequences
|
||||||
|
|
||||||
LC933: pha
|
ProcessEscapeModeKey:
|
||||||
|
pha
|
||||||
lda #M_ESC
|
lda #M_ESC
|
||||||
trb MODE ; clear high bit
|
trb MODE
|
||||||
pla
|
pla
|
||||||
and #$7F
|
and #$7F
|
||||||
cmp #'a'
|
cmp #'a'
|
||||||
bcc LC946
|
bcc @l1
|
||||||
cmp #'z'+1
|
cmp #'z'+1
|
||||||
bcs LC946
|
bcs @l1
|
||||||
and #$DF ; convert to uppercase
|
and #$DF ; convert to uppercase
|
||||||
|
|
||||||
;; Scan table for match
|
;; Scan table for match
|
||||||
LC946: ldx #$00
|
@l1: ldx #$00
|
||||||
LC948: ldy code_table,x
|
@l2: ldy @code_table,x
|
||||||
beq DoNothing
|
beq DoNothing
|
||||||
cmp code_table,x
|
cmp @code_table,x
|
||||||
beq LC955
|
beq @l3
|
||||||
inx
|
inx
|
||||||
bra LC948
|
bra @l2
|
||||||
|
|
||||||
LC955: txa
|
@l3: txa
|
||||||
asl a
|
asl a
|
||||||
tax
|
tax
|
||||||
jmp (jt2,x)
|
jmp (@jt,x)
|
||||||
|
|
||||||
|
@code_table:
|
||||||
;; Character match table
|
|
||||||
code_table:
|
|
||||||
.byte '@' ; Escape @ - clear, home & exit mode
|
.byte '@' ; Escape @ - clear, home & exit mode
|
||||||
.byte 'A' ; Escape A - right & exit mode
|
.byte 'A' ; Escape A - right & exit mode
|
||||||
.byte 'B' ; Escape B - left & exit mode
|
.byte 'B' ; Escape B - left & exit mode
|
||||||
|
@ -726,9 +729,7 @@ code_table:
|
||||||
|
|
||||||
.byte $00 ; sentinel
|
.byte $00 ; sentinel
|
||||||
|
|
||||||
|
@jt:
|
||||||
;; Jump table
|
|
||||||
jt2:
|
|
||||||
.addr DoHomeAndClear ; Escape @ - clear, home & exit mode
|
.addr DoHomeAndClear ; Escape @ - clear, home & exit mode
|
||||||
.addr DoForwardSpace ; Escape A - right & exit mode
|
.addr DoForwardSpace ; Escape A - right & exit mode
|
||||||
.addr DoBackspace ; Escape B - left & exit mode
|
.addr DoBackspace ; Escape B - left & exit mode
|
||||||
|
@ -750,7 +751,7 @@ jt2:
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
LC992:
|
CheckPauseListing:
|
||||||
lda KBD
|
lda KBD
|
||||||
cmp #$93 ; Ctrl-S
|
cmp #$93 ; Ctrl-S
|
||||||
bne rts3
|
bne rts3
|
||||||
|
@ -1442,9 +1443,12 @@ LCDE2: jsr LCE2E
|
||||||
plx
|
plx
|
||||||
rts
|
rts
|
||||||
|
|
||||||
;; ???
|
;;; ============================================================
|
||||||
.byte $52, $55, $4e, $0d, $00
|
|
||||||
.byte $4c, $49, $53, $54, $0d, $00, $ff
|
;; Function key shortcuts ???
|
||||||
|
.byte "RUN\r", 0
|
||||||
|
.byte "LIST\r", 0
|
||||||
|
.byte $ff
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
|
@ -1528,6 +1532,7 @@ DoHomeAndClear:
|
||||||
|
|
||||||
DoClearEOL:
|
DoClearEOL:
|
||||||
LDXY CLREOL
|
LDXY CLREOL
|
||||||
|
;; fall through
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
|
@ -1538,9 +1543,9 @@ ROMCall:
|
||||||
php
|
php
|
||||||
bit RDLCBNK2
|
bit RDLCBNK2
|
||||||
php
|
php
|
||||||
lda #.hibyte(LCE87-1)
|
lda #.hibyte(ROMCallReturn-1)
|
||||||
pha
|
pha
|
||||||
lda #.lobyte(LCE87-1)
|
lda #.lobyte(ROMCallReturn-1)
|
||||||
pha
|
pha
|
||||||
phx
|
phx
|
||||||
phy
|
phy
|
||||||
|
@ -1548,30 +1553,28 @@ ROMCall:
|
||||||
lda TEMP2
|
lda TEMP2
|
||||||
rts
|
rts
|
||||||
|
|
||||||
;;; ============================================================
|
ROMCallReturn:
|
||||||
|
|
||||||
;;; Return from ROMCall
|
|
||||||
LCE87: plp
|
|
||||||
bpl LCE9D
|
|
||||||
plp
|
plp
|
||||||
bpl LCE95
|
bpl @l2
|
||||||
|
plp
|
||||||
|
bpl @l1
|
||||||
bit LCBANK2
|
bit LCBANK2
|
||||||
bit LCBANK2
|
bit LCBANK2
|
||||||
bra LCEAE
|
bra @l4
|
||||||
|
|
||||||
LCE95: bit ROMIN
|
@l1: bit ROMIN
|
||||||
bit ROMIN
|
bit ROMIN
|
||||||
bra LCEAE
|
bra @l4
|
||||||
|
|
||||||
LCE9D: plp
|
@l2: plp
|
||||||
bpl LCEA8
|
bpl @l3
|
||||||
bit LCBANK1
|
bit LCBANK1
|
||||||
bit LCBANK1
|
bit LCBANK1
|
||||||
bra LCEAE
|
bra @l4
|
||||||
|
|
||||||
LCEA8: bit $C089 ; ???
|
@l3: bit $C089 ; ???
|
||||||
bit $C089 ; ???
|
bit $C089 ; ???
|
||||||
LCEAE: lda BASL
|
@l4: lda BASL
|
||||||
sta OLDBASL
|
sta OLDBASL
|
||||||
lda BASH
|
lda BASH
|
||||||
sta OLDBASH
|
sta OLDBASH
|
||||||
|
@ -1579,6 +1582,8 @@ LCEAE: lda BASL
|
||||||
sta OURCH
|
sta OURCH
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
;;; ============================================================
|
||||||
|
|
||||||
LCEBE: ldy CH
|
LCEBE: ldy CH
|
||||||
LCEC0: phy
|
LCEC0: phy
|
||||||
jsr LCED5
|
jsr LCED5
|
||||||
|
@ -1587,23 +1592,29 @@ LCEC6: ply
|
||||||
bit TXTPAGE1
|
bit TXTPAGE1
|
||||||
rts
|
rts
|
||||||
|
|
||||||
LCECB: phy
|
;;; ============================================================
|
||||||
|
|
||||||
|
LCECB:
|
||||||
|
phy
|
||||||
pha
|
pha
|
||||||
jsr LCED5
|
jsr LCED5
|
||||||
pla
|
pla
|
||||||
sta (BASL),y
|
sta (BASL),y
|
||||||
bra LCEC6
|
bra LCEC6
|
||||||
|
|
||||||
LCED5: bit RD80VID
|
;;; ============================================================
|
||||||
bpl LCEDF
|
|
||||||
|
LCED5:
|
||||||
|
bit RD80VID
|
||||||
|
bpl @l1
|
||||||
tya
|
tya
|
||||||
lsr a
|
lsr a
|
||||||
tay
|
tay
|
||||||
bcc LCEE3
|
bcc @l2
|
||||||
LCEDF: bit TXTPAGE1
|
@l1: bit TXTPAGE1
|
||||||
rts
|
rts
|
||||||
|
|
||||||
LCEE3: bit TXTPAGE2
|
@l2: bit TXTPAGE2
|
||||||
rts
|
rts
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
|
@ -205,7 +205,7 @@ EscapeMode:
|
||||||
lda #M_ESC
|
lda #M_ESC
|
||||||
tsb MODE
|
tsb MODE
|
||||||
jsr LC822
|
jsr LC822
|
||||||
jsr LC8CB
|
jsr ProcessEscapeModeKey
|
||||||
cmp #$98
|
cmp #$98
|
||||||
beq LC38A
|
beq LC38A
|
||||||
lda MODE
|
lda MODE
|
||||||
|
@ -532,7 +532,7 @@ LC5BC: bit $C1C1
|
||||||
sta $C090
|
sta $C090
|
||||||
bra LC594
|
bra LC594
|
||||||
LC5C6: jsr LC594
|
LC5C6: jsr LC594
|
||||||
jsr LC9A5
|
jsr $C9A5
|
||||||
bra LC5A8
|
bra LC5A8
|
||||||
brk
|
brk
|
||||||
brk
|
brk
|
||||||
|
@ -595,7 +595,7 @@ LC60D: lda LCF26,y
|
||||||
LC618: inc BAS2H
|
LC618: inc BAS2H
|
||||||
cpx BAS2H
|
cpx BAS2H
|
||||||
bne LC618
|
bne LC618
|
||||||
jsr LCEA6
|
jsr $CEA6
|
||||||
LC621: dec $41
|
LC621: dec $41
|
||||||
bne LC621
|
bne LC621
|
||||||
LC625: dec A1H
|
LC625: dec A1H
|
||||||
|
@ -977,35 +977,37 @@ LC840: sta CHAR
|
||||||
LC847: pla
|
LC847: pla
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
;;; ============================================================
|
||||||
|
|
||||||
LC849: sta CHAR
|
LC849: sta CHAR
|
||||||
LC84C: jsr LC92A
|
LC84C: jsr CheckPauseListing
|
||||||
lda MODE
|
lda MODE
|
||||||
and #$03
|
and #$03
|
||||||
beq LC859
|
beq @l1
|
||||||
jmp LCA2F
|
jmp LCA2F
|
||||||
|
|
||||||
LC859: lda CHAR
|
@l1: lda CHAR
|
||||||
and #$7F
|
and #$7F
|
||||||
cmp #$20
|
cmp #$20
|
||||||
bcc DoCtrlCharOut
|
bcc DoCtrlCharOut
|
||||||
ldy CH
|
ldy CH
|
||||||
cpy WNDWDTH
|
cpy WNDWDTH
|
||||||
bcc LC86B
|
bcc @l2
|
||||||
jsr DoReturn
|
jsr DoReturn
|
||||||
LC86B: lda CHAR
|
@l2: lda CHAR
|
||||||
bit INVFLG
|
bit INVFLG
|
||||||
bmi LC888
|
bmi @l3
|
||||||
and #$7F
|
and #$7F
|
||||||
bit MODE
|
bit MODE
|
||||||
bvs LC888
|
bvs @l3
|
||||||
bit ALTCHARSET
|
bit ALTCHARSET
|
||||||
bpl LC888
|
bpl @l3
|
||||||
cmp #$40
|
cmp #$40
|
||||||
bcc LC888
|
bcc @l3
|
||||||
cmp #$60
|
cmp #$60
|
||||||
bcs LC888
|
bcs @l3
|
||||||
and #$1F
|
and #$1F
|
||||||
LC888: jsr LCC13
|
@l3: jsr LCC13
|
||||||
jmp DoForwardSpace
|
jmp DoForwardSpace
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
@ -1023,11 +1025,9 @@ DoCtrlCharOut:
|
||||||
bcc DoNothing
|
bcc DoNothing
|
||||||
asl a
|
asl a
|
||||||
tax
|
tax
|
||||||
jmp (jt1,x)
|
jmp (@jt,x)
|
||||||
|
|
||||||
;; Jump Table
|
@jt:
|
||||||
|
|
||||||
jt1:
|
|
||||||
.addr DoBell ; $07 Ctrl-G Bell
|
.addr DoBell ; $07 Ctrl-G Bell
|
||||||
.addr DoBackspace ; $08 Ctrl-H Backspace
|
.addr DoBackspace ; $08 Ctrl-H Backspace
|
||||||
.addr DoNothing ; $09 Ctrl-I
|
.addr DoNothing ; $09 Ctrl-I
|
||||||
|
@ -1055,34 +1055,35 @@ jt1:
|
||||||
.addr DoUp ; $1F Ctrl-_ Up
|
.addr DoUp ; $1F Ctrl-_ Up
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; GetLn handling
|
|
||||||
;;; For Escape key sequences
|
;;; For Escape key sequences
|
||||||
|
|
||||||
LC8CB: pha
|
ProcessEscapeModeKey:
|
||||||
|
pha
|
||||||
lda #M_ESC
|
lda #M_ESC
|
||||||
trb MODE
|
trb MODE
|
||||||
pla
|
pla
|
||||||
and #$7F
|
and #$7F
|
||||||
cmp #$61
|
cmp #'a'
|
||||||
bcc LC8DE
|
bcc @l1
|
||||||
cmp #$7B
|
cmp #'z'+1
|
||||||
bcs LC8DE
|
bcs @l1
|
||||||
and #$DF
|
and #$DF ; convert to uppercase
|
||||||
|
|
||||||
LC8DE: ldx #$00
|
;; Scan table for match
|
||||||
LC8E0: ldy code_table,x
|
@l1: ldx #$00
|
||||||
|
@l2: ldy @code_table,x
|
||||||
beq DoNothing
|
beq DoNothing
|
||||||
cmp code_table,x
|
cmp @code_table,x
|
||||||
beq LC8ED
|
beq @l3
|
||||||
inx
|
inx
|
||||||
bra LC8E0
|
bra @l2
|
||||||
|
|
||||||
LC8ED: txa
|
@l3: txa
|
||||||
asl a
|
asl a
|
||||||
tax
|
tax
|
||||||
jmp (jt2,x)
|
jmp (@jt,x)
|
||||||
|
|
||||||
code_table:
|
@code_table:
|
||||||
.byte '@' ; Escape @ - clear, home & exit mode
|
.byte '@' ; Escape @ - clear, home & exit mode
|
||||||
.byte 'A' ; Escape A - right & exit mode
|
.byte 'A' ; Escape A - right & exit mode
|
||||||
.byte 'B' ; Escape B - left & exit mode
|
.byte 'B' ; Escape B - left & exit mode
|
||||||
|
@ -1104,9 +1105,7 @@ code_table:
|
||||||
|
|
||||||
.byte $00 ; sentinel
|
.byte $00 ; sentinel
|
||||||
|
|
||||||
|
@jt:
|
||||||
;; Jump table
|
|
||||||
jt2:
|
|
||||||
.addr DoHomeAndClear ; Escape @ - clear, home & exit mode
|
.addr DoHomeAndClear ; Escape @ - clear, home & exit mode
|
||||||
.addr DoForwardSpace ; Escape A - right & exit mode
|
.addr DoForwardSpace ; Escape A - right & exit mode
|
||||||
.addr DoBackspace ; Escape B - left & exit mode
|
.addr DoBackspace ; Escape B - left & exit mode
|
||||||
|
@ -1128,7 +1127,7 @@ jt2:
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
LC92A:
|
CheckPauseListing:
|
||||||
lda KBD
|
lda KBD
|
||||||
cmp #$93 ; Ctrl-S
|
cmp #$93 ; Ctrl-S
|
||||||
bne @l3
|
bne @l3
|
||||||
|
@ -1145,14 +1144,14 @@ LC92A:
|
||||||
|
|
||||||
LC941: ldy #$00
|
LC941: ldy #$00
|
||||||
ldx #$00
|
ldx #$00
|
||||||
LC945: cpy WNDWDTH
|
@l1: cpy WNDWDTH
|
||||||
bcs LC953
|
bcs @l2
|
||||||
jsr LC9A8
|
jsr LC9A8
|
||||||
sta $0200,x
|
sta $0200,x
|
||||||
inx
|
inx
|
||||||
iny
|
iny
|
||||||
bra LC945
|
bra @l1
|
||||||
LC953: dey
|
@l2: dey
|
||||||
sty CH
|
sty CH
|
||||||
.byte $8E ; bad disasm
|
.byte $8E ; bad disasm
|
||||||
sei
|
sei
|
||||||
|
@ -1176,43 +1175,48 @@ Do40Col:
|
||||||
|
|
||||||
LC96F: jsr LC822
|
LC96F: jsr LC822
|
||||||
cmp #$00
|
cmp #$00
|
||||||
beq LC997
|
beq @l4
|
||||||
cmp #$02
|
cmp #$02
|
||||||
beq LC941
|
beq LC941
|
||||||
cmp #$05
|
cmp #$05
|
||||||
bne LC95B
|
bne LC95B
|
||||||
ldy CH
|
ldy CH
|
||||||
LC980: iny
|
@l1: iny
|
||||||
cpy WNDWDTH
|
cpy WNDWDTH
|
||||||
beq LC98F
|
beq @l2
|
||||||
jsr LC9A8
|
jsr LC9A8
|
||||||
dey
|
dey
|
||||||
jsr LCEC8
|
jsr LCEC8
|
||||||
iny
|
iny
|
||||||
bra LC980
|
bra @l1
|
||||||
|
|
||||||
LC98F: dey
|
@l2: dey
|
||||||
LC990: lda #$A0
|
@l3: lda #$A0
|
||||||
jsr LCEC8
|
jsr LCEC8
|
||||||
bra LC96F
|
bra LC96F
|
||||||
|
|
||||||
LC997: ldy WNDWDTH
|
@l4: ldy WNDWDTH
|
||||||
dey
|
dey
|
||||||
cpy CH
|
cpy CH
|
||||||
beq LC990
|
beq @l3
|
||||||
dey
|
dey
|
||||||
.byte $20
|
.byte $20 ; bad disasm
|
||||||
LC9A0: tay
|
tay
|
||||||
cmp #$C8
|
cmp #$C8
|
||||||
.byte $20
|
.byte $20
|
||||||
iny
|
iny
|
||||||
LC9A5: dec $F180
|
dec $F180
|
||||||
|
|
||||||
|
;;; ============================================================
|
||||||
|
|
||||||
LC9A8: jsr LCEBD
|
LC9A8: jsr LCEBD
|
||||||
ora #$80
|
ora #$80
|
||||||
cmp #$A0
|
cmp #$A0
|
||||||
bcs LC9B3
|
bcs @l1
|
||||||
ora #$40
|
ora #$40
|
||||||
LC9B3: rts
|
@l1: rts
|
||||||
|
|
||||||
|
;;; ============================================================
|
||||||
|
|
||||||
LC9B4: bit RD80VID
|
LC9B4: bit RD80VID
|
||||||
bpl LC9CC
|
bpl LC9CC
|
||||||
|
@ -1934,9 +1938,9 @@ ROMCall:
|
||||||
php
|
php
|
||||||
bit RDLCBNK2
|
bit RDLCBNK2
|
||||||
php
|
php
|
||||||
lda #.hibyte(LCE84-1)
|
lda #.hibyte(ROMCallReturn-1)
|
||||||
pha
|
pha
|
||||||
lda #.lobyte(LCE84-1)
|
lda #.lobyte(ROMCallReturn-1)
|
||||||
pha
|
pha
|
||||||
phx
|
phx
|
||||||
phy
|
phy
|
||||||
|
@ -1944,31 +1948,28 @@ ROMCall:
|
||||||
lda TEMP2
|
lda TEMP2
|
||||||
rts
|
rts
|
||||||
|
|
||||||
;;; ============================================================
|
ROMCallReturn:
|
||||||
|
|
||||||
;;; Return from ROMCall
|
|
||||||
LCE84: plp
|
|
||||||
bpl LCE9A
|
|
||||||
plp
|
plp
|
||||||
bpl LCE92
|
bpl @l2
|
||||||
|
plp
|
||||||
|
bpl @l1
|
||||||
bit LCBANK2
|
bit LCBANK2
|
||||||
bit LCBANK2
|
bit LCBANK2
|
||||||
bra LCEAB
|
bra @l4
|
||||||
|
|
||||||
LCE92: bit ROMIN
|
@l1: bit ROMIN
|
||||||
bit ROMIN
|
bit ROMIN
|
||||||
bra LCEAB
|
bra @l4
|
||||||
|
|
||||||
LCE9A: plp
|
@l2: plp
|
||||||
bpl LCEA5
|
bpl @l3
|
||||||
bit LCBANK1
|
bit LCBANK1
|
||||||
bit LCBANK1
|
bit LCBANK1
|
||||||
bra LCEAB
|
bra @l4
|
||||||
|
|
||||||
LCEA5: .byte $2C
|
@l3: bit $C089 ; ???
|
||||||
LCEA6: bit #$C0
|
bit $C089 ; ???
|
||||||
bit $C089
|
@l4: lda BASL
|
||||||
LCEAB: lda BASL
|
|
||||||
sta OLDBASL
|
sta OLDBASL
|
||||||
lda BASH
|
lda BASH
|
||||||
sta OLDBASH
|
sta OLDBASH
|
||||||
|
@ -1976,6 +1977,8 @@ LCEAB: lda BASL
|
||||||
sta OURCH
|
sta OURCH
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
;;; ============================================================
|
||||||
|
|
||||||
LCEBB: ldy CH
|
LCEBB: ldy CH
|
||||||
LCEBD: phy
|
LCEBD: phy
|
||||||
jsr LCED2
|
jsr LCED2
|
||||||
|
@ -1984,22 +1987,29 @@ LCEC3: ply
|
||||||
bit TXTPAGE1
|
bit TXTPAGE1
|
||||||
rts
|
rts
|
||||||
|
|
||||||
LCEC8: phy
|
;;; ============================================================
|
||||||
|
|
||||||
|
LCEC8:
|
||||||
|
phy
|
||||||
pha
|
pha
|
||||||
jsr LCED2
|
jsr LCED2
|
||||||
pla
|
pla
|
||||||
sta (BASL),y
|
sta (BASL),y
|
||||||
bra LCEC3
|
bra LCEC3
|
||||||
LCED2: bit RD80VID
|
|
||||||
bpl LCEDC
|
;;; ============================================================
|
||||||
|
|
||||||
|
LCED2:
|
||||||
|
bit RD80VID
|
||||||
|
bpl @l1
|
||||||
tya
|
tya
|
||||||
lsr a
|
lsr a
|
||||||
tay
|
tay
|
||||||
bcc LCEE0
|
bcc @l2
|
||||||
LCEDC: bit TXTPAGE1
|
@l1: bit TXTPAGE1
|
||||||
rts
|
rts
|
||||||
|
|
||||||
LCEE0: bit TXTPAGE2
|
@l2: bit TXTPAGE2
|
||||||
rts
|
rts
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
Loading…
Reference in New Issue
Block a user