Split files
This commit is contained in:
@@ -6,31 +6,31 @@
|
||||
;
|
||||
|
||||
.export _cputc
|
||||
.export _textcolor
|
||||
.import _gotoxy, _gotox, _gotoy, pusha0
|
||||
.import pushax
|
||||
.import _screen
|
||||
.import CURS_X, CURS_Y
|
||||
.export _textcolor
|
||||
.import _gotoxy, gotox, gotoy, pusha0
|
||||
.import pushax
|
||||
.import _screen
|
||||
.import CURS_X, CURS_Y
|
||||
|
||||
.include "atari7800.inc"
|
||||
.include "extzp.inc"
|
||||
|
||||
.data
|
||||
.data
|
||||
;-----------------------------------------------------------------------------
|
||||
; Holder of the text colour offset
|
||||
; 0 = red, 42 = green, 84 = white
|
||||
;
|
||||
txtcolor:
|
||||
.byte 0
|
||||
.byte 0
|
||||
|
||||
.code
|
||||
.code
|
||||
|
||||
;---------------------------------------------------------------------------
|
||||
; 8x16 routine
|
||||
|
||||
umula0:
|
||||
ldy #8 ; Number of bits
|
||||
lda #0
|
||||
lda #0
|
||||
lsr ptr7800 ; Get first bit into carry
|
||||
@L0: bcc @L1
|
||||
|
||||
@@ -38,7 +38,7 @@ umula0:
|
||||
adc ptrtmp
|
||||
tax
|
||||
lda ptrtmp+1 ; hi byte of left op
|
||||
clc
|
||||
clc
|
||||
adc ptr7800+1
|
||||
sta ptr7800+1
|
||||
txa
|
||||
@@ -64,25 +64,25 @@ umula0:
|
||||
;
|
||||
.proc _textcolor
|
||||
|
||||
beq @L2
|
||||
sec
|
||||
sbc #1
|
||||
beq @L1
|
||||
lda #84
|
||||
jmp @L2
|
||||
@L1: lda #42
|
||||
@L2: ldy txtcolor
|
||||
sta txtcolor ; Store new textcolor
|
||||
tya
|
||||
bne @L3
|
||||
rts ; Old colour was 0
|
||||
@L3: sec
|
||||
sbc #42
|
||||
bne @L4
|
||||
lda #1
|
||||
rts ; Old colour was 1
|
||||
@L4: lda #2
|
||||
rts ; Old colour was 2
|
||||
beq @L2
|
||||
sec
|
||||
sbc #1
|
||||
beq @L1
|
||||
lda #84
|
||||
jmp @L2
|
||||
@L1: lda #42
|
||||
@L2: ldy txtcolor
|
||||
sta txtcolor ; Store new textcolor
|
||||
tya
|
||||
bne @L3
|
||||
rts ; Old colour was 0
|
||||
@L3: sec
|
||||
sbc #42
|
||||
bne @L4
|
||||
lda #1
|
||||
rts ; Old colour was 1
|
||||
@L4: lda #2
|
||||
rts ; Old colour was 2
|
||||
.endproc
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
@@ -92,83 +92,83 @@ umula0:
|
||||
;
|
||||
.proc _cputc
|
||||
|
||||
cmp #$0A ; LF
|
||||
cmp #$0A ; LF
|
||||
bne @L4
|
||||
@L1: lda CURS_Y ; newline
|
||||
cmp #(screenrows-1)
|
||||
@L1: lda CURS_Y ; newline
|
||||
cmp #(screenrows-1)
|
||||
bne @L2
|
||||
lda #0
|
||||
beq @L3
|
||||
@L2: clc
|
||||
adc #1
|
||||
@L3: jsr _gotoy
|
||||
lda #0
|
||||
jmp _gotox
|
||||
lda #0
|
||||
beq @L3
|
||||
@L2: clc
|
||||
adc #1
|
||||
@L3: jsr gotoy
|
||||
lda #0
|
||||
jmp gotox
|
||||
|
||||
@L4:
|
||||
cmp #$20 ; ' '
|
||||
bne @L5
|
||||
lda #$00
|
||||
jmp @L10
|
||||
cmp #$20 ; ' '
|
||||
bne @L5
|
||||
lda #$00
|
||||
jmp @L10
|
||||
@L5:
|
||||
cmp #$3F ; '?'
|
||||
bne @L6
|
||||
lda #$02
|
||||
jmp @L9
|
||||
cmp #$3F ; '?'
|
||||
bne @L6
|
||||
lda #$02
|
||||
jmp @L9
|
||||
@L6:
|
||||
cmp #$7C ; '|'
|
||||
bne @L7
|
||||
lda #$06
|
||||
jmp @L9
|
||||
cmp #$7C ; '|'
|
||||
bne @L7
|
||||
lda #$06
|
||||
jmp @L9
|
||||
@L7:
|
||||
cmp #$41 ; >= 'A'
|
||||
bcc @L8
|
||||
and #$5F ; make upper case
|
||||
sec
|
||||
sbc #($41 - 17)
|
||||
jmp @L9
|
||||
cmp #$41 ; >= 'A'
|
||||
bcc @L8
|
||||
and #$5F ; make upper case
|
||||
sec
|
||||
sbc #($41 - 17)
|
||||
jmp @L9
|
||||
@L8:
|
||||
sec ; >= '*'
|
||||
sbc #($2A - 1)
|
||||
sec ; >= '*'
|
||||
sbc #($2A - 1)
|
||||
@L9:
|
||||
clc
|
||||
adc txtcolor
|
||||
clc
|
||||
adc txtcolor
|
||||
@L10:
|
||||
asl
|
||||
pha
|
||||
asl
|
||||
pha
|
||||
|
||||
lda #0
|
||||
sta ptr7800+1
|
||||
sta ptrtmp+1
|
||||
lda CURS_Y ; Find position on screen buffer
|
||||
sta ptr7800
|
||||
lda #charsperline
|
||||
sta ptrtmp
|
||||
jsr umula0
|
||||
clc
|
||||
adc CURS_X
|
||||
bcc @L11
|
||||
inx
|
||||
@L11: clc
|
||||
adc #<(_screen)
|
||||
sta ptr7800
|
||||
bcc @L12
|
||||
inx
|
||||
@L12: txa
|
||||
clc
|
||||
adc #>(_screen)
|
||||
sta ptr7800+1
|
||||
lda #0
|
||||
sta ptr7800+1
|
||||
sta ptrtmp+1
|
||||
lda CURS_Y ; Find position on screen buffer
|
||||
sta ptr7800
|
||||
lda #charsperline
|
||||
sta ptrtmp
|
||||
jsr umula0
|
||||
clc
|
||||
adc CURS_X
|
||||
bcc @L11
|
||||
inx
|
||||
@L11: clc
|
||||
adc #<(_screen)
|
||||
sta ptr7800
|
||||
bcc @L12
|
||||
inx
|
||||
@L12: txa
|
||||
clc
|
||||
adc #>(_screen)
|
||||
sta ptr7800+1
|
||||
|
||||
pla ; Print character on screen
|
||||
ldy #0
|
||||
sta (ptr7800),y
|
||||
pla ; Print character on screen
|
||||
ldy #0
|
||||
sta (ptr7800),y
|
||||
|
||||
lda CURS_X ; Increment cursor
|
||||
cmp #(charsperline-1)
|
||||
beq @L1
|
||||
clc
|
||||
adc #1
|
||||
jmp _gotox
|
||||
lda CURS_X ; Increment cursor
|
||||
cmp #(charsperline-1)
|
||||
beq @L1
|
||||
clc
|
||||
adc #1
|
||||
jmp gotox
|
||||
|
||||
.endproc
|
||||
|
||||
|
||||
Reference in New Issue
Block a user