Fix handling of newlines.
Wrap around to top of screen when newline occurs
in last line.
Initialize screen width in crt0.s.
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
.import zerobss, initlib, donelib
.include "zeropage.inc"
+.include "extzp.inc"
; ---------------------------------------------------------------------------
; Place the startup code in a special segment
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