aboutsummaryrefslogtreecommitdiff
path: root/hello.s
blob: fa0ede0a11b676a65f2282cd8031892a2ee13769 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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