Enhancements for cursor calculation
Fix handling of newlines. Wrap around to top of screen when newline occurs in last line. Initialize screen width in crt0.s.
This commit is contained in:
parent
12ca22c265
commit
0c62ddf123
2 changed files with 14 additions and 8 deletions
|
@ -44,14 +44,12 @@ L3: iny
|
|||
rts
|
||||
|
||||
newline:
|
||||
lda SCR_LINELEN ; xsize-1
|
||||
sec ; Account for -1 above
|
||||
adc SCREEN_PTR
|
||||
sta SCREEN_PTR
|
||||
bcc L4
|
||||
inc SCREEN_PTR+1
|
||||
L4: inc CURS_Y
|
||||
rts
|
||||
inc CURS_Y
|
||||
lda CURS_Y
|
||||
cmp #24 ; screen height 25 lines hardcoded
|
||||
bne plot
|
||||
lda #0 ; wrap around to line 0
|
||||
sta CURS_Y
|
||||
|
||||
plot: ldy CURS_Y
|
||||
lda ScrLo,y
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
.import zerobss, initlib, donelib
|
||||
|
||||
.include "zeropage.inc"
|
||||
.include "extzp.inc"
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; Place the startup code in a special segment
|
||||
|
@ -26,6 +27,13 @@ _init: LDX #$FF ; Initialize stack pointer to $01FF
|
|||
TXS
|
||||
CLD ; Clear decimal mode
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; Initialize screen width
|
||||
; TODO: Can initialization be done in a more idiomatic way?
|
||||
; TODO: Create function for changing screen width
|
||||
LDA #$18
|
||||
STA SCR_LINELEN
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; Set cc65 argument stack pointer
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue