mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-30 23:49:37 +00:00
1301 lines
18 KiB
Plaintext
1301 lines
18 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
*--------------------------------------
|
||
BS.ResetCSWKSW pha
|
||
lda GP.VECTOUT
|
||
sta ZP.CSW
|
||
lda GP.VECTOUT+1
|
||
sta ZP.CSW+1
|
||
lda GP.VECTIN
|
||
sta ZP.KSW
|
||
lda GP.VECTIN+1
|
||
sta ZP.KSW+1
|
||
pla
|
||
rts
|
||
|
||
BS.SetState0 ldx #$00
|
||
jsr BS.SetState
|
||
lda ZP.KSW+1
|
||
cmp GP.VDOSI+1
|
||
bne L9A26
|
||
|
||
jmp BS.SetCSWKSW2VDOS
|
||
|
||
L9A26 lda ZP.CSW+1
|
||
cmp GP.VDOSO+1
|
||
beq BS.SetCSWKSW2VDOS
|
||
|
||
bne BS.SaveCSWKSW
|
||
|
||
BS.IO.OUT cmp X9F65
|
||
bne L9A54
|
||
|
||
stx GP.PREGX
|
||
tsx
|
||
lda $103,x
|
||
cmp #$12
|
||
bne L9A6E
|
||
|
||
lda $104,x
|
||
cmp #$D8
|
||
bne L9A6E
|
||
|
||
ldx #$04
|
||
jsr BS.SetState
|
||
lda X9F65
|
||
ldx GP.PREGX
|
||
jmp BS.JMP.GP.VSYSO
|
||
|
||
L9A54 cmp GP.CHRLAST
|
||
sta GP.CHRLAST
|
||
bne L9A74
|
||
|
||
cmp #$8D
|
||
bne L9A74
|
||
|
||
lda ZP.CH
|
||
bne L9A69
|
||
|
||
lda BS.CMDBUF
|
||
cmp #$3F
|
||
|
||
L9A69 lda #$8D
|
||
bcs L9A74
|
||
|
||
rts
|
||
|
||
L9A6E ldx GP.PREGX
|
||
lda X9F65
|
||
|
||
L9A74 jsr BS.ResetCSWKSW
|
||
jsr MON.COUT
|
||
cmp #$8D
|
||
bne BS.SaveCSWKSW
|
||
|
||
lda AS.TRCFLG
|
||
cmp #$A5
|
||
beq L9A8B
|
||
|
||
sta GP.DTRACE
|
||
lda #$A5
|
||
sta AS.TRCFLG
|
||
|
||
L9A8B lda #$8D
|
||
BS.SaveCSWKSW pha
|
||
lda ZP.KSW+1
|
||
sta GP.VECTIN+1
|
||
lda ZP.KSW
|
||
sta GP.VECTIN
|
||
lda ZP.CSW+1
|
||
sta GP.VECTOUT+1
|
||
lda ZP.CSW
|
||
sta GP.VECTOUT
|
||
pla
|
||
|
||
BS.SetCSWKSW2VDOS
|
||
pha
|
||
lda GP.VDOSO
|
||
sta ZP.CSW
|
||
lda GP.VDOSO+1
|
||
sta ZP.CSW+1
|
||
lda GP.VDOSI
|
||
sta ZP.KSW
|
||
lda GP.VDOSI+1
|
||
sta ZP.KSW+1
|
||
pla
|
||
rts
|
||
|
||
BS.IO.IN bit GP.EXECACTV
|
||
bpl L9AC5
|
||
|
||
jsr BS.SaveAXY
|
||
jmp BS.IO.IN.EXEC
|
||
|
||
L9AC5 jsr BS.ResetCSWKSW
|
||
jsr MON.KEYIN0
|
||
cmp #$8D
|
||
bne L9AEB
|
||
|
||
jsr BS.SaveAXY
|
||
sta IO.LINEBUF,x
|
||
|
||
BS.CheckDOSCMD jsr BS.DOSCMD
|
||
bit GP.XCNUM
|
||
bmi L9AE8
|
||
|
||
bcs BS.ERROUT
|
||
|
||
ldy GP.PREGY
|
||
lda #$88
|
||
ldx #$00
|
||
beq L9AEB
|
||
|
||
L9AE8 jsr BS.RestoreAXY
|
||
L9AEB jmp BS.SaveCSWKSW
|
||
|
||
BS.NODEVERR lda #$03
|
||
|
||
BS.ERROUT sta GP.ERRCODE
|
||
sta AS.ERRNUM
|
||
lda GP.STATE
|
||
cmp #$01
|
||
php
|
||
lda #$0F
|
||
sta MLI.LEVEL
|
||
lda #$00
|
||
sta GP.IFILACTV
|
||
sta GP.OFILACTV
|
||
sta GP.PFXACTV
|
||
sta GP.MLICF.REFNUM
|
||
lda #MLI.C.CLOSE
|
||
jsr GP.GOSYSTEM
|
||
bcs L9B27
|
||
|
||
jsr LA004
|
||
bcs L9B27
|
||
|
||
lda #$00
|
||
sta MLI.LEVEL
|
||
sta GP.MLICF.REFNUM
|
||
lda #MLI.C.FLUSH
|
||
jsr GP.GOSYSTEM
|
||
|
||
L9B27 plp
|
||
ldx #$04
|
||
bit AS.ERRFLG
|
||
bcs L9B30
|
||
|
||
ldx #$00
|
||
|
||
L9B30 php
|
||
jsr BS.SetState
|
||
jsr BS.SetCSWKSW2VDOS
|
||
lda GP.ERRCODE
|
||
plp
|
||
bmi L9B4D
|
||
|
||
php
|
||
jsr GP.PRINTERR
|
||
jsr LB36B
|
||
plp
|
||
bcs L9B53
|
||
|
||
jsr BS.CROUT
|
||
jmp AS.RESTART1
|
||
|
||
L9B4D ldx AS.REMSTK
|
||
dex
|
||
dex
|
||
txs
|
||
tax
|
||
|
||
L9B53 lda #$03
|
||
jmp AS.BITERRFLG
|
||
|
||
L9B58 lda #$00
|
||
sta AS.ERRNUM
|
||
lda #$A3
|
||
sta X9F65
|
||
jsr AS.NORMAL
|
||
jsr BS.ResetCSWKSW
|
||
jsr BS.WriteTBUF
|
||
jsr BS.SetState0
|
||
jsr BS.RestoreAXY
|
||
jmp BS.IO.IN
|
||
|
||
BS.IO.IN0 jsr BS.SaveAXY
|
||
bit GP.PFXACTV
|
||
bpl L9B7E
|
||
jmp BS.IO.IN.CAT
|
||
|
||
L9B7E bit GP.IFILACTV
|
||
bpl L9B86
|
||
jmp BS.IO.IN.FILE
|
||
|
||
L9B86 bit GP.EXECACTV
|
||
bmi BS.IO.IN.EXEC
|
||
|
||
lda ZP.PROMPT
|
||
cmp #$DD
|
||
beq L9B58
|
||
|
||
jsr BS.ResetCSWKSW
|
||
|
||
L9B94 lda GP.PREGA
|
||
ldy GP.PREGY
|
||
jsr MON.KEYIN0
|
||
cmp #$88
|
||
bne L9BAC
|
||
|
||
lda ZP.PROMPT
|
||
cmp #$BE
|
||
beq L9BAA
|
||
|
||
txa
|
||
beq L9B94
|
||
|
||
L9BAA lda #$88
|
||
L9BAC jmp BS.SaveCSWKSW
|
||
|
||
BS.IO.IN.EXEC sta (ZP.BASL),y
|
||
lda ZP.PROMPT
|
||
cmp #$BE
|
||
beq L9BF2
|
||
|
||
lda IO.KBD
|
||
bpl L9BCD
|
||
|
||
cmp #$83
|
||
bne L9BCD
|
||
|
||
jsr LB36B
|
||
lda GP.STATE
|
||
bne L9C01
|
||
|
||
sta IO.KSTROBE
|
||
beq L9C01
|
||
|
||
L9BCD jsr BS.Setup4readEFBytesAt200
|
||
jsr L9C6C
|
||
bcs L9BFA
|
||
|
||
jsr BS.SaveAXY
|
||
bcc L9BDE
|
||
|
||
L9BDA dex
|
||
lda IO.LINEBUF,x
|
||
|
||
L9BDE ora #$80
|
||
sta IO.LINEBUF,x
|
||
txa
|
||
bne L9BDA
|
||
|
||
jsr BS.ResetCSWKSW
|
||
jsr BS.CheckDOSCMD
|
||
bit GP.XCNUM
|
||
bpl L9BCD
|
||
|
||
L9BF1 rts
|
||
|
||
L9BF2 jsr BS.Setup4readEFBytesAt200
|
||
jsr BS.ReadOneByte
|
||
bcc L9BF1
|
||
|
||
L9BFA jsr LB2B5
|
||
cmp #$05
|
||
bne L9C13
|
||
|
||
L9C01 ldx #$00
|
||
ldy ZP.CH
|
||
bne L9C0E
|
||
|
||
lda #$DD
|
||
sta ZP.PROMPT
|
||
lda #$88
|
||
rts
|
||
|
||
L9C0E lda (ZP.BASL),y
|
||
jmp (ZP.KSW)
|
||
L9C13 jmp BS.ERROUT
|
||
|
||
BS.IO.IN.FILE lda ZP.PROMPT
|
||
cmp #$DD
|
||
bne L9C1F
|
||
jmp L9B58
|
||
|
||
L9C1F lda GP.PREGA
|
||
sta (ZP.BASL),y
|
||
lda IO.KBD
|
||
bpl L9C31
|
||
|
||
cmp #$83
|
||
bne L9C31
|
||
|
||
bit IO.KSTROBE
|
||
rts
|
||
|
||
L9C31 lda ZP.PROMPT
|
||
bit GP.DIRFLG
|
||
bmi L9C95
|
||
|
||
cmp #$BE
|
||
beq L9C42
|
||
|
||
jsr L9C67
|
||
bcs L9C13
|
||
|
||
rts
|
||
|
||
L9C42 jsr BS.ReadOneByte
|
||
bcs L9C13
|
||
|
||
rts
|
||
|
||
BS.ReadOneByte lda GP.MLIRW.COUNT
|
||
sta GP.ParamL
|
||
lda #$01
|
||
sta GP.MLIRW.COUNT
|
||
lda #MLI.C.READ
|
||
jsr GP.GOSYSTEM
|
||
bcs L9C66
|
||
|
||
lda GP.ParamL
|
||
sta GP.MLIRW.COUNT
|
||
ldx GP.MLIRW.DATAPTR
|
||
lda IO.LINEBUF,x
|
||
|
||
L9C66 rts
|
||
|
||
L9C67 lda GP.PREGA
|
||
sta (ZP.BASL),y
|
||
|
||
L9C6C lda #MLI.C.READ
|
||
jsr GP.GOSYSTEM
|
||
bcs L9C66
|
||
|
||
lda GP.MLIRW.TRANS
|
||
beq L9C8E
|
||
|
||
clc
|
||
adc GP.MLIRW.DATAPTR
|
||
tax
|
||
lda IO.LINEBUF-1,x
|
||
and #$7F
|
||
cmp #$0D
|
||
bne L9C8E
|
||
|
||
lda GP.FoundBITS+1
|
||
and #$10
|
||
bne L9C8E
|
||
|
||
dex
|
||
|
||
L9C8E lda #$8D
|
||
ldy GP.PREGY
|
||
clc
|
||
rts
|
||
|
||
L9C95 cmp #$BE
|
||
beq L9C8E
|
||
|
||
lda GP.PREGA
|
||
sta (ZP.BASL),y
|
||
lda #$4F
|
||
sta BS.CATWIDTH
|
||
lda #MLI.C.GETMARK
|
||
jsr GP.GOSYSTEM
|
||
bcs L9D1F
|
||
|
||
lda GP.SBUFADR
|
||
ora GP.SBUFADR+1
|
||
bne L9CDF
|
||
|
||
lda #$02
|
||
sta GP.CATFLAG
|
||
jsr BS.ReadDirEnt
|
||
bcs L9D1F
|
||
|
||
lda GP.MLIRW.REFNUM
|
||
lsr
|
||
ror
|
||
ror
|
||
ror
|
||
tax
|
||
lda XBC12
|
||
sta XBC5A,x
|
||
lda XBC13
|
||
sta XBC5B,x
|
||
jsr LB128
|
||
|
||
L9CD3 lda #$A2
|
||
sta IO.LINEBUF
|
||
lda #$8D
|
||
sta IO.LINEBUF,x
|
||
clc
|
||
rts
|
||
|
||
L9CDF lda GP.CATFLAG
|
||
beq L9D22
|
||
bmi L9CF9
|
||
ldx #$00
|
||
dec GP.CATFLAG
|
||
beq L9CD3
|
||
jsr BS.LINEBUFCLR80
|
||
ldx #$10
|
||
jsr BS.PRINTERRMSGX
|
||
|
||
L9CF5 ldx #$50
|
||
bne L9CD3
|
||
|
||
L9CF9 cmp #$FF
|
||
bne L9D1C
|
||
|
||
dec GP.CATFLAG
|
||
lda #$00
|
||
sta GP.MLIRW.COUNT
|
||
sta GP.MLIRW.COUNT+1
|
||
lda #MLI.C.READ
|
||
jsr GP.GOSYSTEM
|
||
jsr LB157
|
||
pha
|
||
lda GP.MLIRW.REFNUM
|
||
sta GP.MLIMRKEOFBUF.REFNUM
|
||
pla
|
||
bcc L9CF5
|
||
|
||
bcs L9D1F
|
||
|
||
L9D1C lda #$05
|
||
sec
|
||
|
||
L9D1F jmp BS.ERROUT
|
||
|
||
L9D22 lda #$FF
|
||
sta XBC16
|
||
lda GP.MLIRW.REFNUM
|
||
lsr
|
||
ror
|
||
ror
|
||
ror
|
||
tax
|
||
lda XBC5A,x
|
||
sta XBC12
|
||
lda XBC5B,x
|
||
sta XBC13
|
||
lda GP.SBUFADR+1
|
||
and #$01
|
||
tax
|
||
lda GP.SBUFADR
|
||
sec
|
||
|
||
L9D45 inc XBC16
|
||
sbc XBC12
|
||
bcs L9D45
|
||
|
||
dex
|
||
beq L9D45
|
||
|
||
jsr LB241
|
||
bcc L9D65
|
||
|
||
cmp #$02
|
||
beq L9D5D
|
||
|
||
cmp #$05
|
||
bne L9D1F
|
||
|
||
L9D5D dec GP.CATFLAG
|
||
ldx #$00
|
||
jmp L9CD3
|
||
|
||
L9D65 jsr LA4D2
|
||
jmp L9CF5
|
||
|
||
BS.IO.IN.CAT cmp #$DD
|
||
bne L9D72
|
||
|
||
jmp L9B58
|
||
|
||
L9D72 lda GP.PREGA
|
||
sta (ZP.BASL),y
|
||
lda #$00
|
||
sta GP.PFXACTV
|
||
ldx BS.CMDBUF.LEN
|
||
|
||
L9D7F lda BS.CMDBUF.LEN,x
|
||
sta IO.LINEBUF-1,x
|
||
dex
|
||
bne L9D7F
|
||
|
||
ldx BS.CMDBUF.LEN
|
||
lda #$8D
|
||
rts
|
||
|
||
BS.Setup4readEFBytesAt200
|
||
lda XBBFE
|
||
sta GP.MLIRW.REFNUM
|
||
lda #$02
|
||
sta GP.MLIRW.DATAPTR+1
|
||
lda #$EF
|
||
sta GP.MLIRW.COUNT
|
||
lda #$00
|
||
sta GP.MLIRW.COUNT+1
|
||
sta GP.MLIRW.DATAPTR
|
||
rts
|
||
|
||
BS.VSYSO jsr BS.SaveAXY
|
||
cmp #$84
|
||
bne L9DC5
|
||
|
||
jsr BS.WriteTBUF
|
||
sta GP.INPTR
|
||
sta GP.IFILACTV
|
||
sta GP.OFILACTV
|
||
sta GP.PFXACTV
|
||
ldx #$08
|
||
jsr BS.SetState
|
||
jmp BS.RestoreAXY
|
||
|
||
L9DC5 ldx #$04
|
||
jsr BS.SetState
|
||
jsr BS.RestoreAXY
|
||
jmp BS.JMP.GP.VSYSO
|
||
|
||
BS.IO.OUT.CAT jsr BS.SaveAXY
|
||
ldx GP.INPTR
|
||
sta IO.LINEBUF,x
|
||
cmp #$8D
|
||
beq L9DEB
|
||
|
||
inc GP.INPTR
|
||
bne L9DE7
|
||
|
||
lda #$10
|
||
|
||
L9DE4 jmp BS.ERROUT
|
||
|
||
L9DE7 ldx GP.PREGX
|
||
rts
|
||
|
||
L9DEB inx
|
||
dex
|
||
beq L9DFA
|
||
|
||
jsr BS.ResetCSWKSW
|
||
jsr BS.DOSCMD
|
||
bcs L9DE4
|
||
|
||
jsr BS.SaveCSWKSW
|
||
|
||
L9DFA ldx #$04
|
||
jsr BS.SetState
|
||
jmp BS.RestoreAXY
|
||
|
||
L9E02 sty GP.PREGY
|
||
ldy ZP.PROMPT
|
||
beq L9E15
|
||
|
||
dey
|
||
beq L9E15
|
||
|
||
dey
|
||
beq L9E15
|
||
|
||
ldy GP.PREGY
|
||
jmp L9A74
|
||
|
||
L9E15 ldy GP.TBUFPTR
|
||
and #$7F
|
||
sta (AS.HIMEM),y
|
||
ldy GP.PREGY
|
||
inc GP.TBUFPTR
|
||
bne L9E2F
|
||
|
||
jsr BS.SaveAXY
|
||
jsr BS.WriteTBUF256
|
||
bcs L9DE4
|
||
|
||
jsr BS.RestoreAXY
|
||
|
||
L9E2F rts
|
||
|
||
BS.IO.OUT.TRACE pha
|
||
stx GP.PREGX
|
||
tsx
|
||
lda $104,x
|
||
cmp #$12
|
||
bne L9E46
|
||
|
||
lda $105,x
|
||
cmp #$D8
|
||
bne L9E46
|
||
|
||
pla
|
||
bcs L9EBA
|
||
|
||
L9E46 pla
|
||
nop
|
||
nop
|
||
nop
|
||
ldx GP.PREGX
|
||
bit GP.OFILACTV
|
||
bpl L9E70
|
||
|
||
cmp #$DD
|
||
bne L9E5A
|
||
|
||
cmp ZP.PROMPT
|
||
beq L9E8A
|
||
|
||
L9E5A cmp #$8D
|
||
bne L9E02
|
||
|
||
lda ZP.PROMPT
|
||
cmp #$FF
|
||
lda #$8D
|
||
bcc L9E02
|
||
|
||
jsr BS.WriteTBUF
|
||
sta GP.OFILACTV
|
||
lda #$8D
|
||
bne L9EA3
|
||
|
||
L9E70 pha
|
||
lda GP.IFILACTV
|
||
ora GP.PFXACTV
|
||
bpl L9E81
|
||
|
||
lda ZP.PROMPT
|
||
ora #$04
|
||
cmp #$84
|
||
beq L9EA6
|
||
|
||
L9E81 pla
|
||
cmp #$DD
|
||
bne L9EA3
|
||
|
||
cmp ZP.PROMPT
|
||
bne L9EA3
|
||
|
||
L9E8A jsr BS.SaveAXY
|
||
lda GP.OPENCNT
|
||
beq L9EA0
|
||
|
||
jsr BS.WriteTBUF
|
||
sta GP.OFILACTV
|
||
jsr BS.ResetCSWKSW
|
||
lda #$15
|
||
jsr GP.PRINTERR
|
||
|
||
L9EA0 jsr BS.RestoreAXY
|
||
L9EA3 jmp L9A74
|
||
|
||
L9EA6 pla
|
||
cmp #$8D
|
||
bne L9EAE
|
||
|
||
cmp GP.CHRLAST
|
||
|
||
L9EAE sta GP.CHRLAST
|
||
bne L9EB5
|
||
|
||
sta ZP.PROMPT
|
||
|
||
L9EB5 rts
|
||
|
||
L9EB6 inc AS.TXTPTR+1
|
||
bne L9EBE
|
||
|
||
L9EBA inc AS.TXTPTR
|
||
beq L9EB6
|
||
|
||
L9EBE ldx #$FF
|
||
stx ZP.PROMPT
|
||
ldx AS.REMSTK
|
||
txs
|
||
bit GP.DTRACE
|
||
bmi L9F3D
|
||
|
||
L9ECA ldy #$00
|
||
lda (AS.TXTPTR),y
|
||
bmi L9EF5
|
||
|
||
beq L9EF2
|
||
|
||
L9ED2 dec GP.STRINGS
|
||
bne L9EF0
|
||
|
||
lda AS.STRINGSTART+1
|
||
sbc AS.ARRAYEND+1
|
||
cmp #$03
|
||
bcs L9EE9
|
||
|
||
jsr BS.WriteTBUF
|
||
jsr BS.KW.01
|
||
lda AS.STRINGSTART+1
|
||
sbc AS.ARRAYEND+1
|
||
|
||
L9EE9 sta GP.STRINGS
|
||
ldy #$00
|
||
lda (AS.TXTPTR),y
|
||
|
||
L9EF0 cmp #$3A
|
||
L9EF2 jmp AS.EXECSTMT
|
||
|
||
L9EF5 sta ZP.PROMPT
|
||
tay
|
||
lda BS.BYTES-$80,y
|
||
bmi L9EF2
|
||
|
||
sta X9F00+1
|
||
|
||
X9F00 bne L9F02 SELF MODIFIED
|
||
|
||
L9F02 sta ZP.PROMPT
|
||
sta GP.CHRLAST
|
||
lda BS.VSYSO.LO
|
||
sta GP.VSYSO
|
||
lda BS.VSYSO.HI
|
||
sta GP.VSYSO+1
|
||
bne L9F32
|
||
|
||
lda #$01
|
||
sta ZP.PROMPT
|
||
bne L9F32
|
||
|
||
lda #$02
|
||
sta ZP.PROMPT
|
||
bne L9F32
|
||
|
||
tya
|
||
jmp L9ED2
|
||
|
||
sty GP.DTRACE
|
||
bne L9F2E
|
||
|
||
sta GP.DTRACE
|
||
dey
|
||
|
||
L9F2E lda #$4A
|
||
sta AS.TRCFLG
|
||
|
||
L9F32 tya
|
||
jmp AS.EXECSTMT
|
||
|
||
lda #$00
|
||
sta AS.ERRNUM
|
||
tya
|
||
bne L9EF0
|
||
|
||
L9F3D jsr BS.ResetCSWKSW
|
||
lda #$A3
|
||
jsr MON.COUT
|
||
ldx AS.CURLINE
|
||
lda AS.CURLINE+1
|
||
jsr AS.INTPRINTAX
|
||
lda #$A0
|
||
jsr MON.COUT
|
||
jsr BS.SaveCSWKSW
|
||
sec
|
||
jmp L9ECA
|
||
|
||
lda #$E3
|
||
bne L9F5E
|
||
|
||
lda #$A3
|
||
|
||
L9F5E sta X9F65
|
||
tya
|
||
bne L9EF0
|
||
|
||
brk
|
||
|
||
X9F65 .DA #$A3
|
||
|
||
BS.SaveAXY sta GP.PREGA
|
||
stx GP.PREGX
|
||
sty GP.PREGY
|
||
rts
|
||
|
||
BS.RestoreAXY lda GP.PREGA
|
||
ldx GP.PREGX
|
||
ldy GP.PREGY
|
||
rts
|
||
|
||
BS.SetState stx GP.STATE
|
||
ldy #$00
|
||
|
||
L9F7F lda BS.SYSIOVECTS,x
|
||
sta GP.VSYSO,y
|
||
inx
|
||
iny
|
||
cpy #$04
|
||
bne L9F7F
|
||
|
||
rts
|
||
|
||
BS.PRINTERR tay
|
||
ldx BS.ERRCODES-1,y
|
||
|
||
BS.PRINTERRX jsr BS.PRINTERRMSGX
|
||
ldx GP.INPTR
|
||
stx BS.CATWIDTH
|
||
jsr BS.CROUT
|
||
lda #$87
|
||
jsr BS.COUT
|
||
|
||
BS.LINEBUFOUT ldx #$00
|
||
|
||
L9FA3 lda IO.LINEBUF+1,x
|
||
jsr BS.COUT
|
||
inx
|
||
cpx BS.CATWIDTH
|
||
bcc L9FA3
|
||
|
||
BS.CROUT lda #$8D
|
||
BS.COUT jmp MON.COUT
|
||
|
||
BS.PRINTERRMSGX ldy #$00
|
||
clc
|
||
sty GP.INPTR
|
||
|
||
L9FBA jsr L9FD6
|
||
bne L9FC4
|
||
|
||
jsr L9FD6
|
||
ora #$10
|
||
|
||
L9FC4 tay
|
||
lda BS.TBL6,y
|
||
beq L9FD5
|
||
|
||
ldy GP.INPTR
|
||
sta IO.LINEBUF+1,y
|
||
inc GP.INPTR
|
||
bne L9FBA
|
||
|
||
L9FD5 rts
|
||
|
||
L9FD6 lda BS.TBL7,x
|
||
bcs L9FED
|
||
|
||
beq L9FE3
|
||
|
||
lsr
|
||
lsr
|
||
lsr
|
||
lsr
|
||
sec
|
||
rts
|
||
|
||
L9FE3 inx
|
||
lda BS.TBL7,x
|
||
sta GP.INPTR
|
||
inx
|
||
bne L9FD6
|
||
|
||
L9FED inx
|
||
and #$0F
|
||
clc
|
||
rts
|
||
|
||
BS.WriteTBUF256 lda #$00
|
||
ldy #$01
|
||
bne LA00B
|
||
|
||
BS.WriteTBUF jsr LA004
|
||
bcc LA020
|
||
|
||
tay
|
||
pla
|
||
pla
|
||
tya
|
||
jmp BS.ERROUT
|
||
|
||
LA004 ldy #$00
|
||
lda GP.TBUFPTR
|
||
beq LA01F
|
||
|
||
LA00B sta GP.MLIRW.COUNT
|
||
sty GP.MLIRW.COUNT+1
|
||
lda #MLI.C.WRITE
|
||
jsr GP.GOSYSTEM
|
||
pha
|
||
lda #$00
|
||
sta GP.TBUFPTR
|
||
pla
|
||
bcs LA020
|
||
|
||
LA01F clc
|
||
LA020 rts
|
||
|
||
LA021 jsr BS.KW.01
|
||
bcs LA047
|
||
|
||
lda AS.PGRMSTART+1
|
||
sta BS.TXTTAB+1
|
||
lda AS.PGRMSTART
|
||
sta BS.TXTTAB
|
||
lda AS.HIMEM+1
|
||
sta XBBD8
|
||
lda #$03
|
||
sta XBBD9
|
||
lda AS.STRINGSTART+1
|
||
sta BS.MEMSIZE+1
|
||
lda #$00
|
||
sta BS.MEMSIZE
|
||
jsr LA089
|
||
|
||
LA047 rts
|
||
|
||
BS.KW.01 lda #$00
|
||
sta BS.TXTTAB
|
||
lda #$03
|
||
sta XBBD9
|
||
lda AS.HIMEM+1
|
||
sta XBBD8
|
||
lda AS.STRINGSTART+1
|
||
sta BS.TXTTAB+1
|
||
sec
|
||
sbc AS.ARRAYEND+1
|
||
cmp #$07
|
||
bcc LA07D
|
||
|
||
sbc #$03
|
||
sta XBBD9
|
||
lda AS.ARRAYEND+1
|
||
adc #$00
|
||
sta XBBD8
|
||
lda AS.HIMEM+1
|
||
sbc AS.STRINGSTART+1
|
||
adc #$01
|
||
cmp XBBD9
|
||
bcs LA07D
|
||
|
||
sta XBBD9
|
||
|
||
LA07D lda AS.HIMEM+1
|
||
sta BS.MEMSIZE+1
|
||
lda AS.HIMEM
|
||
sta BS.MEMSIZE
|
||
sta AS.STRINGSTART
|
||
|
||
LA089 clc
|
||
beq LA08D
|
||
|
||
sec
|
||
|
||
LA08D lda BS.MEMSIZE+1
|
||
sta AS.STRINGSTART+1
|
||
sbc #$00
|
||
sta XBBDA
|
||
adc #$00
|
||
sta XBBDB
|
||
lda AS.ARRAYEND+1
|
||
adc #$01
|
||
sta XBBDD
|
||
|
||
LA0A3 lda AS.VARSTART
|
||
sbc #$06
|
||
sta ZP.A2L
|
||
lda AS.VARSTART+1
|
||
sbc #$00
|
||
sta ZP.A2H
|
||
lda AS.ARRAYSTART
|
||
sta XBBDC
|
||
lda XBBDA
|
||
cmp BS.TXTTAB+1
|
||
bcc LA0FA
|
||
|
||
sbc XBBD9
|
||
sta XBBD7
|
||
lda AS.STRINGSTART+1
|
||
sbc XBBDA
|
||
sbc XBBD7
|
||
eor #$FF
|
||
adc #$02
|
||
cmp XBBD7
|
||
bcc LA0D6
|
||
|
||
lda XBBD7
|
||
|
||
LA0D6 cmp BS.TXTTAB+1
|
||
bcs LA0E0
|
||
|
||
lda BS.TXTTAB+1
|
||
sbc #$00
|
||
|
||
LA0E0 sta XBBDA
|
||
jsr LA199
|
||
ldx AS.ARRAYSTART+1
|
||
jsr LA0FB
|
||
bcs LA0F8
|
||
|
||
jsr LA131
|
||
lda XBBDA
|
||
sta XBBDB
|
||
bcc LA0A3
|
||
|
||
LA0F8 lda #$0C
|
||
LA0FA rts
|
||
|
||
LA0FB clc
|
||
|
||
LA0FC lda ZP.A2L
|
||
adc #$07
|
||
sta ZP.A2L
|
||
bcc LA106
|
||
|
||
inc ZP.A2H
|
||
|
||
LA106 eor AS.ARRAYSTART
|
||
bne LA10E
|
||
|
||
cpx ZP.A2H
|
||
beq LA12F
|
||
|
||
LA10E ldy #$00
|
||
lda (ZP.A2L),y
|
||
iny
|
||
eor (ZP.A2L),y
|
||
bpl LA0FB
|
||
|
||
lda (ZP.A2L),y
|
||
bpl LA0FB
|
||
|
||
ldy #$04
|
||
lda (ZP.A2L),y
|
||
cmp XBBDA
|
||
bcc LA0FC
|
||
|
||
cmp XBBDB
|
||
bcs LA0FB
|
||
|
||
jsr LA1BC
|
||
bcc LA0FC
|
||
|
||
rts
|
||
|
||
LA12F clc
|
||
rts
|
||
|
||
LA131 jsr LA160
|
||
bcs LA12F
|
||
|
||
LA136 ldy #$02
|
||
lda (ZP.A2L),y
|
||
cmp XBBDA
|
||
bcc LA14A
|
||
|
||
cmp XBBDB
|
||
bcs LA14A
|
||
|
||
jsr LA1BC
|
||
bcc LA14B
|
||
|
||
rts
|
||
|
||
LA14A clc
|
||
LA14B lda #$03
|
||
adc ZP.A2L
|
||
sta ZP.A2L
|
||
bcc LA155
|
||
|
||
inc ZP.A2H
|
||
|
||
LA155 cmp XBBDC
|
||
bne LA136
|
||
|
||
cpx ZP.A2H
|
||
bne LA136
|
||
|
||
beq LA131
|
||
|
||
LA160 clc
|
||
lda XBBDC
|
||
sta ZP.A2L
|
||
stx ZP.A2H
|
||
eor AS.ARRAYEND
|
||
bne LA170
|
||
|
||
cpx AS.ARRAYEND+1
|
||
beq LA198
|
||
|
||
LA170 ldy #$02
|
||
lda (ZP.A2L),y
|
||
adc ZP.A2L
|
||
sta XBBDC
|
||
iny
|
||
lda (ZP.A2L),y
|
||
adc ZP.A2H
|
||
tax
|
||
ldy #$00
|
||
lda (ZP.A2L),y
|
||
iny
|
||
eor (ZP.A2L),y
|
||
bpl LA160
|
||
|
||
ldy #$04
|
||
lda (ZP.A2L),y
|
||
asl
|
||
adc #$05
|
||
adc ZP.A2L
|
||
sta ZP.A2L
|
||
bcc LA198
|
||
|
||
inc ZP.A2H
|
||
|
||
clc
|
||
LA198 rts
|
||
|
||
LA199 lda XBBD7
|
||
sta ZP.PCH
|
||
lda XBBD8
|
||
sta ZP.A1H
|
||
ldy #$00
|
||
sty ZP.PCL
|
||
sty ZP.A1L
|
||
ldx XBBD9
|
||
inx
|
||
|
||
LA1AD lda (ZP.PCL),y
|
||
sta (ZP.A1L),y
|
||
iny
|
||
bne LA1AD
|
||
|
||
inc ZP.A1H
|
||
inc ZP.PCH
|
||
dex
|
||
bne LA1AD
|
||
|
||
rts
|
||
|
||
LA1BC cmp XBBD7
|
||
bcc LA1C8
|
||
|
||
sbc XBBD7
|
||
clc
|
||
adc XBBD8
|
||
|
||
LA1C8 sta ZP.PCH
|
||
dey
|
||
lda (ZP.A2L),y
|
||
sta ZP.PCL
|
||
dey
|
||
sec
|
||
lda AS.STRINGSTART
|
||
sbc (ZP.A2L),y
|
||
sta AS.STRINGSTART
|
||
iny
|
||
sta (ZP.A2L),y
|
||
lda AS.STRINGSTART+1
|
||
sbc #$00
|
||
sta AS.STRINGSTART+1
|
||
iny
|
||
sta (ZP.A2L),y
|
||
dey
|
||
dey
|
||
lda (ZP.A2L),y
|
||
beq LA1F2
|
||
|
||
tay
|
||
|
||
LA1EA dey
|
||
lda (ZP.PCL),y
|
||
sta (AS.STRINGSTART),y
|
||
tya
|
||
bne LA1EA
|
||
|
||
LA1F2 clc
|
||
lda XBBDD
|
||
sbc AS.STRINGSTART+1
|
||
rts
|
||
|
||
LA1F9 lda #$04
|
||
LA1FB sta XBBB5
|
||
jsr BS.KW.01
|
||
bcs LA24E
|
||
|
||
lda AS.STRINGSTART+1
|
||
sbc AS.ARRAYEND+1
|
||
cmp XBBB5
|
||
lda #$0C
|
||
bcc LA24E
|
||
|
||
lda AS.STRINGSTART+1
|
||
sta ZP.PCH
|
||
sbc XBBB5
|
||
sta ZP.A1H
|
||
sta AS.STRINGSTART+1
|
||
lda AS.STRINGSTART
|
||
sta ZP.PCL
|
||
sta ZP.A1L
|
||
lda AS.HIMEM
|
||
sbc ZP.PCL
|
||
sta XBBED
|
||
lda AS.HIMEM+1
|
||
sbc ZP.PCH
|
||
sta XBBEE
|
||
jsr LA35F
|
||
lda #$00
|
||
sec
|
||
sbc XBBB5
|
||
sta XBBE2
|
||
jsr LA3A3
|
||
lda AS.HIMEM+1
|
||
sta XBBB7
|
||
sec
|
||
sbc XBBB5
|
||
sta AS.HIMEM+1
|
||
clc
|
||
adc #$04
|
||
sta XBBE3
|
||
rts
|
||
|
||
LA24E sec
|
||
rts
|
||
|
||
LA250 jsr BS.KW.01
|
||
bcs LA29D
|
||
|
||
lda AS.HIMEM+1
|
||
sbc #$00
|
||
sta ZP.PCH
|
||
adc #$03
|
||
sta ZP.A1H
|
||
lda AS.STRINGSTART
|
||
sta ZP.PCL
|
||
sta ZP.A1L
|
||
lda AS.HIMEM
|
||
sec
|
||
sbc AS.STRINGSTART
|
||
sta XBBED
|
||
lda AS.HIMEM+1
|
||
sbc AS.STRINGSTART+1
|
||
sta XBBEE
|
||
jsr LA383
|
||
lda #$04
|
||
sta XBBE2
|
||
clc
|
||
adc AS.HIMEM+1
|
||
sta AS.HIMEM+1
|
||
jsr LA3A3
|
||
lda XBBE3
|
||
cmp AS.HIMEM+1
|
||
beq LA2B7
|
||
|
||
pha
|
||
ldx GP.OPENCNT
|
||
beq LA29B
|
||
|
||
lda AS.HIMEM+1
|
||
|
||
LA293 cmp XBBEE,x
|
||
beq LA29E
|
||
|
||
dex
|
||
bne LA293
|
||
|
||
LA29B pla
|
||
sec
|
||
LA29D rts
|
||
|
||
LA29E pla
|
||
LA29F sta GP.SBUFADR+1
|
||
sta XBBEE,x
|
||
lda #$00
|
||
sta GP.SBUFADR
|
||
lda XBBF6,x
|
||
sta GP.MLIMRKEOFBUF.REFNUM
|
||
lda #MLI.C.SETBUF
|
||
jsr GP.GOSYSTEM
|
||
bcs LA29D
|
||
|
||
LA2B7 clc
|
||
rts
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE usr/src/basic.15/basic.s.a
|
||
LOAD usr/src/basic.15/basic.s
|
||
ASM
|