Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .ORIG x3000
- LEA R1,Isr
- STI R1,Intrpt
- LD R6,STACKB ; initialize stack pointer
- LEA R1,EBit
- STI R1,KBSR
- InfLoop AND R1,R1,#0 ; make sure it's infinitely cleared
- BR InfLoop
- Isr
- AND R0, R0, #0 ; Save R7 (return location)
- ADD R0, R7, #0
- JSR PUSH
- AND R0, R0, #0 ; Save R5 (frame pointer)
- ADD R0, R5, #0
- JSR PUSH
- AND R0, R0, #0 ; Save R1
- ADD R0, R1, #0
- JSR PUSH
- Monitr LDI R1, DSR ;polling monitor
- BRzp Monitr
- STI R0,DDR
- JSR POP ; Restore R1
- ADD R1,R0,#0
- JSR POP ; Restore R5
- ADD R5,R0,#0
- JSR POP ; Restore R7
- ADD R7,R0,#0
- RTI
- ;------------------------
- PUSH ADD R6,R6,#-1
- STR R0,R6,#0
- RET
- ;------------------------
- ;------------------------
- POP LDR R0,R6,#0
- ADD R6,R6,#1
- RET
- ;------------------------
- halt
- STACKB .FILL 0xFD00 ;stack
- Intrpt .FILL 0x0180 ; interrupt location
- EBit .FILL 0x4000 ;enable bit for kbsr
- DSR .FILL xFE04 ;display
- DDR .FILL xFE06 ;display
- KBSR .FILL xFE00 ;keyboard
- KBDR .FILL xFE02 ;keyboard
- .end
- ;Keybrd LDI R1,KBSR ;polling keyboard
- ; BRZP Keybrd
- ; LDI R0,KBDR
- ; BR Next1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement