Files
c64-demo/main.asm
2026-05-23 09:04:38 +02:00

63 lines
1.5 KiB
NASM

; -----------------------------------------------------------
; main.asm - C64 demo: szoveg kiiratas + keret villogtatas
; Forditas: acme -f cbm -o main.prg main.asm
; -----------------------------------------------------------
!to "main.prg", cbm
* = $0801
; ---- BASIC stub: 10 SYS 2064 ----
; igy a LOAD"*",8,1 utan eleg RUN-t irni
!byte $0c, $08 ; kovetkezo sor cime
!byte $0a, $00 ; sorszam: 10
!byte $9e ; SYS token
!byte $20, $32, $30, $36, $34 ; " 2064"
!byte $00 ; sor vege
!byte $00, $00 ; program vege
* = $0810 ; = 2064 decimalisan
; ---- KERNAL rutinok ----
CHROUT = $ffd2 ; karakter kiiras
BORDER = $d020 ; keret szin regiszter
BG = $d021 ; hatter szin regiszter
start:
lda #14 ; vilagoskek hatter
sta BG
lda #6 ; sotetkek keret
sta BORDER
lda #$93 ; CLR/HOME - kepernyo torles
jsr CHROUT
lda #$05 ; feher karakter szin
jsr CHROUT
ldx #0
print_loop:
lda message,x
beq color_loop ; ha 0 -> kesz a szoveg
jsr CHROUT
inx
jmp print_loop
; vegtelen szinvillogtato
color_loop:
inc BORDER ; novelje a keret szinet
ldy #0
delay_outer:
ldx #0
delay_inner:
dex
bne delay_inner
dey
bne delay_outer
jmp color_loop
message:
!text "main, COMMODORE 64!"
!byte 13, 13
!text "TELETYPE GAMES DEMO"
!byte 13, 0