2022-04-03 12:13:47 +00:00
|
|
|
|
|
|
|
.feature string_escapes ; Allow c-style string escapes when using ca65
|
2022-10-18 09:00:00 +00:00
|
|
|
.feature c_comments
|
2022-05-27 15:52:45 +00:00
|
|
|
;PRIMM = $FFC8 ; Userland can use ROM subroutines if we tell them where they are. Check listing.txt for current subroutine addresses
|
|
|
|
;.require "abn6502rom.s"
|
2022-09-18 12:02:18 +00:00
|
|
|
.import kb_rptr: zeropage, scrp: zeropage, scwp: zeropage, CRSRPNT: zeropage, MILLIS: zeropage, MILLISH: zeropage
|
2022-05-27 15:52:45 +00:00
|
|
|
.autoimport + ; Try to import anything unknown from other modules
|
2022-04-03 12:13:47 +00:00
|
|
|
|
2022-07-21 19:36:36 +00:00
|
|
|
PORTB = $6000 ; PB0: SCK/SCL, PB1: RF CS, PB2: RF CE, PB3: SDA, PB4,PB5: MISO ,PB6: PS/2 Clock In, PB7: MOSI/T1 Out (Tape drive output)
|
|
|
|
PORTA = $6001
|
|
|
|
DDRB = $6002
|
|
|
|
DDRA = $6003
|
|
|
|
T1CL = $6004
|
|
|
|
T1CH = $6005
|
|
|
|
T1LL = $6006
|
|
|
|
T1LH = $6007
|
|
|
|
T2CL = $6008
|
|
|
|
T2CH = $6009
|
|
|
|
SR1 = $600A
|
|
|
|
ACR = $600B ; [7] PB.7 T1 OUT, [6] T1 mode , [5] T2, [4:2] Shift register control, [1] PB Latch enable, [0] PA Latch Enable
|
|
|
|
PCR = $600C ; [7:5] CB2 Control, [4] CBl Control, [3:1] CA2 Control, [0] CAl Control
|
|
|
|
IFR = $600D ; [7:0] IRQ Tl T2 CBl CB2 SR CA1 CA2
|
|
|
|
IER = $600E ; [7:0] S/C Tl T2 CBl CB2 SR CA1 CA2
|
|
|
|
|
2022-04-03 12:13:47 +00:00
|
|
|
.segment "USERLAND"
|
2022-09-18 12:02:18 +00:00
|
|
|
jsr newline
|
|
|
|
jsr checkkeyboard
|
|
|
|
beq userland
|
|
|
|
lda kb_buffer,x
|
|
|
|
inc kb_rptr
|
|
|
|
jsr printa
|
|
|
|
|
2022-04-03 12:13:47 +00:00
|
|
|
userland:
|
2022-10-18 09:00:00 +00:00
|
|
|
|
2022-05-27 15:52:45 +00:00
|
|
|
lda #$0A
|
|
|
|
jsr printk
|
2022-04-03 12:13:47 +00:00
|
|
|
jsr PRIMM
|
2022-07-21 19:36:36 +00:00
|
|
|
.asciiz "Testing CPU... \n"
|
2022-04-03 12:13:47 +00:00
|
|
|
cOhtwotest:
|
|
|
|
bra see02
|
|
|
|
jsr PRIMM
|
2022-07-21 19:36:36 +00:00
|
|
|
.asciiz "Hi! Im an NMOS 6502! \n"
|
2022-04-03 12:13:47 +00:00
|
|
|
jmp exitnow
|
|
|
|
see02:
|
|
|
|
jsr PRIMM
|
2022-07-21 19:36:36 +00:00
|
|
|
.asciiz "Hi! Im a CMOS 65C02! \n\n"
|
2022-04-03 12:13:47 +00:00
|
|
|
exitnow:
|
2022-09-18 12:02:18 +00:00
|
|
|
;nop ;
|
|
|
|
|
|
|
|
PHA
|
|
|
|
tsx
|
|
|
|
txa
|
|
|
|
jsr printbyte
|
|
|
|
pha
|
|
|
|
TSX
|
|
|
|
txa
|
|
|
|
jsr printbyte
|
|
|
|
pla
|
|
|
|
pla
|
|
|
|
|
|
|
|
|
|
|
|
lda #>main
|
|
|
|
jsr printbyte
|
|
|
|
lda #<main
|
|
|
|
jsr printbyte
|
|
|
|
|
2022-10-18 09:00:00 +00:00
|
|
|
lda #$7f
|
|
|
|
sta I2CREG+1
|
|
|
|
lda I2CADDR
|
|
|
|
jsr printbyte
|
|
|
|
lda #':'
|
|
|
|
jsr printk
|
|
|
|
dumpi2c:
|
|
|
|
inc CRSRPNT
|
|
|
|
bne l77
|
|
|
|
inc CRSRPNT+1
|
|
|
|
l77:
|
|
|
|
jsr i2c_test
|
|
|
|
;rol
|
|
|
|
jsr printbyte
|
|
|
|
inc I2CREG
|
|
|
|
dec I2CREG+1
|
|
|
|
bne dumpi2c
|
|
|
|
|
|
|
|
|
2022-09-18 12:02:18 +00:00
|
|
|
; waitforkey:
|
|
|
|
; jsr MONRDKEY
|
|
|
|
; bcc waitforkey
|
|
|
|
; cmp #$0d
|
|
|
|
; beq done
|
|
|
|
; jsr printa
|
|
|
|
; jmp waitforkey
|
2022-10-18 09:00:00 +00:00
|
|
|
done:
|
2022-07-21 19:36:36 +00:00
|
|
|
|
|
|
|
brk
|
2022-09-18 12:02:18 +00:00
|
|
|
;jmp main
|
|
|
|
;jsr resetkb
|
|
|
|
;rts
|