52 lines
828 B
NASM
52 lines
828 B
NASM
// vim: filetype=kickass
|
|
|
|
#import "math.inc"
|
|
|
|
* = $0801 // BASIC start address (#2049)
|
|
.byte $0d,$08,$dc,$07,$9e,$20,$34,$39 // BASIC loader to start at $c000...
|
|
.byte $31,$35,$32,$00,$00,$00 // puts BASIC line 2012 SYS 49152
|
|
|
|
* = $c000
|
|
|
|
.const SCREEN_RAM = $0400
|
|
.const COLOR_RAM = $d800
|
|
|
|
.const kernal_scinit = $ff81
|
|
.const kernal_chrout = $ffd2
|
|
.const kernal_write_byte = $e716
|
|
|
|
.const zp_temp = $02
|
|
.const cursor_pointer_lo = $05
|
|
.const cursor_pointer_hi = $06
|
|
|
|
.macro move_16_imm(dst_lo, dst_hi, src) {
|
|
lda #<src
|
|
sta dst_lo
|
|
lda #>src
|
|
sta dst_hi
|
|
}
|
|
|
|
//
|
|
// main
|
|
//
|
|
main:
|
|
jsr clear_screen
|
|
|
|
// lda #0
|
|
// sta $d020
|
|
// sta $d021
|
|
|
|
jsr day01
|
|
|
|
!loop:
|
|
// inc $d020
|
|
jmp !loop-
|
|
|
|
|
|
buffer:
|
|
.fill $0100, 0
|
|
|
|
|
|
#import "day01.asm"
|
|
#import "screen.asm"
|