|
- ; =============================================================
- ; hello-world.asm — Minimal C64 Assembly Hello World
- ; Assemble to $C000 (49152)
- ; Run with: POKE 56,192:CLR then SYS 49152
- ; =============================================================
-
- * = $C000 ; Assemble starting at $C000
-
- ; ---------------------------------------------------------------
- ; Main entry point
- ; ---------------------------------------------------------------
- START JSR $FF81 ; CINT — Initialize screen editor
-
- ; Print message using BSOUT (Kernal output routine)
- LDX #0 ; X = index into message
- LOOP LDA MSG,X ; load character
- BEQ DONE ; zero byte = end of message
- JSR $FFD2 ; BSOUT — output character to screen
- INX ; next character
- BNE LOOP ; (X wraps at 256, but our msg is short)
-
- DONE RTS ; return to BASIC
-
- ; ---------------------------------------------------------------
- ; Message data (PETSCII)
- ; $0D = carriage return, $00 = end of string
- ; ---------------------------------------------------------------
- MSG .BYTE 147 ; clear screen (CHR$(147))
- .TEXT "HELLO, WORLD!"
- .BYTE $0D,$00 ; CR + terminator
|