.globl _start
_start:
-;; enable the RTI
+ ;; set port a to output
+ ldab #0xfc ; 11111000
+ stab 0x1001
+
+ ;; start chiming
+ ldx #0x1000
+ bset 00,x #0x10
+
+ ;; enable the RTI
ldaa #0x40
staa 0x1024
-;; enable the ADC, and configure IRQ' for edge-sensitive operation
+
+ ;; enable the ADC, and configure IRQ' for edge-sensitive operation
ldaa #0xa0
staa 0x1039
-;; set the stack pointer
- lds _stack
-;; initialize initialised variables
+ ;; set RTI intervals, and PA3/7 DDRs
+ ldaa #0x81
+ staa 0x1026 ;; RTI interval becomes E/2^14 = 6.6ms (or 150 Hz)
+
+ ;; clear ADC register
+ clra
+ staa 0x1030
+
+ ;; set the stack pointer
+ lds #_stack
+
+ ;; blank initialised variables - should match memory.x's page0
ldx #0x0000
-loop:
- cpx #0x0080
- bcc out
+loop1:
+ cpx #0x0100
+ bcc out1
clr 00,x
inx
- bra loop
-out:
+ bra loop1
+out1:
+
+ ;; stop chiming
+ ldx #0x1000
+ bclr 00,x #0x10
jsr main