aboutsummaryrefslogtreecommitdiff
path: root/hello.s
diff options
context:
space:
mode:
Diffstat (limited to 'hello.s')
-rw-r--r--hello.s75
1 files changed, 75 insertions, 0 deletions
diff --git a/hello.s b/hello.s
new file mode 100644
index 0000000..fa0ede0
--- /dev/null
+++ b/hello.s
@@ -0,0 +1,75 @@
+
+ .export _main
+ .include "atari.inc"
+
+ sptr = FR0
+ scount = FR0+2
+
+ .ifndef start_addr
+ start_addr = $4000
+ .endif
+
+ .ifndef RAW
+ .org start_addr - 6
+ .word $ffff
+ .word start_addr
+ .word end_addr - 1
+ .endif
+
+ .org start_addr
+_main:
+ ldx #0
+ stx COLCRS
+ inx
+ stx CRSINH
+ lda #<str1
+ ldx #>str1
+ jsr printstr
+ lda #' '
+ jsr printa
+ lda #<str2
+ ldx #>str2
+ jsr printstr
+ lda #'.'
+ jsr printa
+cycle:
+ lda RTCLOK+2
+ and #$f0
+ ora #$06
+ sta COLOR2
+ jmp cycle
+
+printstr:
+ sta sptr
+ stx sptr+1
+ lda #0
+ sta scount
+strloop:
+ ldy scount
+ lda (sptr),y
+ bne printchr
+ rts
+printchr:
+ jsr printa
+ inc scount
+ bne strloop
+ rts
+
+printa:
+ tax
+ lda ICPTH ; the print-one-byte vector for IOCB 0.
+ pha
+ lda ICPTL ; low byte of vector
+ pha
+ txa
+ rts
+
+str1: .byte "Hello",0
+str2: .byte "World",0
+
+ .ifndef RAW
+end_addr:
+ .word INITAD
+ .word INITAD+1
+ .word _main
+ .endif