;;; This thing is licensed under Creative Commons Zero v1.0 Universal, which essentially means
;;; "Public Domain". (You can do anything you want without asking for permission.)
;;;
;;; SPDX-License-Identifier: CC0-1.0
;;;
;;; To compile (You can get cl65 from )
;;; $ cl65 -t c64 -C c64-asm.cfg -o flag.prg flag.s
;;;
;;; To run (You can get x64sc from )
;;; $ x64sc -autostart flag.prg
;;;
;;; I am not an expert with actual hardware C64, but this should be capable of running on one. I am
;;; of course not to be held responsible for any actual hardware damage.
.export __LOADADDR__: absolute = 1
.export __EXEHDR__: absolute = 1
.segment "LOADADDR"
.word $0801
.org $0801
.segment "EXEHDR"
;; 1312 SYS
.addr EmptyBasLine
.word 1312
.byte $9E
.byte _start / 1000 .mod 10 + '0'
.byte _start / 100 .mod 10 + '0'
.byte _start / 10 .mod 10 + '0'
.byte _start .mod 10 + '0'
.byte 0
EmptyBasLine:
.word 0
.code
_start:
lda #$00 ; Set border colour to black
sta $d020
lda #$03 ; Set text background to cyan
sta $d021 ; This lets us not draw the top&bottom bars :)
jsr $e544 ; Call the KERNAL internal clear screen routine
; See
ldx #200
loop:
;; Full block character to each of the three bar text memory
lda #$e0
sta $400+5*40-1,x
sta $400+10*40-1,x
sta $400+15*40-1,x
;; Pinkish colour to mid-top & mid-bot bar colour memory
lda #10
sta $d800+5*40-1,x
sta $d800+15*40-1,x
;; Ditto for white in the middle bar
lda #1
sta $d800+10*40-1,x
dex
bne loop
halt:
;; Busy spinloop :(
jmp halt