154 lines
3.3 KiB
ArmAsm
154 lines
3.3 KiB
ArmAsm
.segment "CODE"
|
|
|
|
PRSTRING:
|
|
jsr STRPRT
|
|
L297E:
|
|
jsr CHRGOT
|
|
|
|
; ----------------------------------------------------------------------------
|
|
; "PRINT" STATEMENT
|
|
; ----------------------------------------------------------------------------
|
|
PRINT:
|
|
beq LFDO
|
|
PRINT2:
|
|
beq L29DD
|
|
cmp #TOKEN_TAB
|
|
beq L29F5
|
|
cmp #TOKEN_SPC
|
|
clc ; also AppleSoft II
|
|
beq L29F5
|
|
cmp #','
|
|
beq L29DE
|
|
cmp #$3B
|
|
beq L2A0D
|
|
jsr FRMEVL
|
|
bit VALTYP
|
|
bmi PRSTRING
|
|
jsr FOUT
|
|
jsr STRLIT
|
|
ldy #$00
|
|
lda (FAC_LAST-1),y
|
|
clc
|
|
adc POSX
|
|
cmp Z17
|
|
bcc L29B1
|
|
jsr LFDO
|
|
L29B1:
|
|
jsr STRPRT
|
|
jsr OUTSP
|
|
bne L297E ; branch always
|
|
|
|
L29B9:
|
|
lda #$00
|
|
sta INPUTBUFFER,x
|
|
ldx #<(INPUTBUFFER-1)
|
|
ldy #>(INPUTBUFFER-1)
|
|
lda CURDVC
|
|
bne L29DD
|
|
|
|
LFDO:
|
|
lda #LF
|
|
sta POSX
|
|
jsr OUTDO
|
|
|
|
PRINTNULLS:
|
|
eor #$FF
|
|
L29DD:
|
|
rts
|
|
L29DE:
|
|
lda POSX
|
|
cmp Z18
|
|
bcc L29EA
|
|
jsr LFDO
|
|
jmp L2A0D
|
|
L29EA:
|
|
sec
|
|
L29EB:
|
|
sbc #$0E
|
|
bcs L29EB
|
|
eor #$FF
|
|
adc #$01
|
|
bne L2A08
|
|
L29F5:
|
|
php
|
|
jsr GTBYTC
|
|
cmp #')'
|
|
bne SYNERR4
|
|
plp
|
|
bcc L2A09
|
|
txa
|
|
sbc POSX
|
|
bcc L2A0D
|
|
L2A08:
|
|
tax
|
|
L2A09:
|
|
inx
|
|
L2A0A:
|
|
dex
|
|
bne L2A13
|
|
L2A0D:
|
|
jsr CHRGET
|
|
jmp PRINT2
|
|
L2A13:
|
|
jsr OUTSP
|
|
bne L2A0A
|
|
|
|
; ----------------------------------------------------------------------------
|
|
; PRINT STRING AT (Y,A)
|
|
; ----------------------------------------------------------------------------
|
|
STROUT:
|
|
jsr STRLIT
|
|
|
|
; ----------------------------------------------------------------------------
|
|
; PRINT STRING AT (FACMO,FACLO)
|
|
; ----------------------------------------------------------------------------
|
|
STRPRT:
|
|
jsr FREFAC
|
|
tax
|
|
ldy #$00
|
|
inx
|
|
L2A22:
|
|
dex
|
|
beq L29DD
|
|
lda (INDEX),y
|
|
jsr OUTDO
|
|
iny
|
|
cmp #LF
|
|
bne L2A22
|
|
jsr PRINTNULLS
|
|
jmp L2A22
|
|
; ----------------------------------------------------------------------------
|
|
OUTSP:
|
|
; on non-screen devices, print SPACE
|
|
; instead of CRSR RIGHT
|
|
lda CURDVC
|
|
beq LCA40
|
|
lda #$20
|
|
.byte $2C
|
|
LCA40:
|
|
lda #$1D ; CRSR RIGHT
|
|
.byte $2C
|
|
OUTQUES:
|
|
lda #$3F
|
|
|
|
; ----------------------------------------------------------------------------
|
|
; PRINT CHAR FROM (A)
|
|
; ----------------------------------------------------------------------------
|
|
OUTDO:
|
|
bit Z14
|
|
bmi L2A56
|
|
cmp #$20
|
|
bcc L2A4E
|
|
LCA6A:
|
|
inc POSX
|
|
L2A4E:
|
|
jsr MONCOUT
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
L2A56:
|
|
and #$FF
|
|
LE8F2:
|
|
rts
|