Files
open-roms/c64/basic/basic_cold_start.s
T

51 lines
941 B
ArmAsm

;; BASIC Cold start entry point
;; Compute's Mapping the 64 p211
basic_cold_start:
;; Setup BASIC vectors at $0300
;; Initialise interpretor
;; Print start up message
;; Print coloured part of the message
ldy #>startup_message
lda #<startup_message
jsr print_string
;; Work out free bytes, and display
jsr basic_do_new
lda basic_top_of_memory_ptr+0
sec
sbc basic_end_of_text_ptr+0
tax
lda basic_top_of_memory_ptr+1
sbc basic_end_of_text_ptr+1
jsr print_integer
lda #$20
jsr $ffd2
;; Print the rest of the start up message
ldx #34
jsr print_packed_message
;; jump into warm start loop
jmp basic_warm_start
startup_message:
;; Clear the screen
.byte $93
;; Vertical bars in different colours
.byte $1C,$B4
.byte $9E,$B5
.byte $1E,$A1
;; <RVS><WHITE>MEGA<NORMAL>BASIC\r\r
.byte $12,$05,$4D,$45,$47,$41,$92
.byte $42,$41,$53,$49,$43
.byte $20,$56,$32,$2e,$30,$2e,$30
.byte $0D,$0D
.byte 0