62 lines
791 B
ArmAsm
62 lines
791 B
ArmAsm
!source "constants.s"
|
|
!source "basic-boot.s"
|
|
+start_at $0900
|
|
|
|
sei ; no interrupts pls
|
|
|
|
ldx #$00 ; Screen colours
|
|
stx bdcol
|
|
ldx #$08
|
|
stx bgcol
|
|
|
|
jsr $e544 ; clear screen
|
|
|
|
lda #> message ; print message
|
|
pha
|
|
lda #< message
|
|
pha
|
|
jsr print_string
|
|
pla
|
|
pla
|
|
|
|
;ldx #$01 ; start triangle wave
|
|
;ldy #$11
|
|
;stx ch1_freq_hi
|
|
;sty ch1_freq_lo
|
|
;ldx #$11
|
|
;stx ch1_ctl
|
|
|
|
.loop
|
|
inc bdcol
|
|
|
|
lda inputb ; Scans the keyboard buffer
|
|
cmp #$EF ; If user presses Space ($ef) then quit
|
|
bne .loop
|
|
|
|
ldx #$08 ; kill sound
|
|
stx ch1_ctl
|
|
|
|
rts
|
|
|
|
print_string:
|
|
tsx
|
|
inx
|
|
inx
|
|
inx
|
|
lda stack, x
|
|
sta PSL + 1
|
|
inx
|
|
lda stack, x
|
|
sta PSL + 2
|
|
|
|
ldx #$00
|
|
PSL lda message, x
|
|
cmp #$0 ; return on null terminator
|
|
beq +
|
|
sta screen + rowlen, x
|
|
inx
|
|
jmp PSL
|
|
+ rts
|
|
|
|
message !scr "welcome to scat os", 0
|