home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dream 55
/
Amiga_Dream_55.iso
/
RISCOS
/
MAGAZINE
/
NEWS
/
PCE021.ZIP
/
Pce021
/
Src
/
cpu
/
s
/
registers
< prev
next >
Wrap
Text File
|
1998-05-30
|
2KB
|
80 lines
; registers.s
; -----------
; Interface to IO registers
; by Paul Clifford (27 Aug 1997)
AREA |io$$code|, CODE, READONLY
EXPORT Read_Register
EXPORT Write_Register
IMPORT VDC_Read
IMPORT VCE_Read
IMPORT Timer_Read
IMPORT Joypad_Read
IMPORT IRQ_Read
IMPORT VDC_Write
IMPORT VCE_Write
IMPORT PSG_Write
IMPORT Timer_Write
IMPORT Joypad_Write
IMPORT IRQ_Write
IMPORT Memory_SF2_Map
Read_Register
mov r1, r0, lsl #19
mov r1, r1, lsr #27
tst r1, #2_11
movne r0, #0
; andeq r0, r0, #0xff
biceq r0, r0, #0xfc00
ldreq pc, [pc, r1]
movs pc, r14
DCD VDC_Read ; 0x0000 Video Display Controller
DCD VCE_Read ; 0x0400 Video Colour Encoder
DCD Return1 ; 0x0800 Programmable Sound Generator
DCD Timer_Read ; 0x0c00 Timer
DCD Joypad_Read ; 0x1000 Joypad
DCD IRQ_Read ; 0x1400 Interrupt ReQuest
DCD Return1 ; 0x1800 External
DCD Return1 ; 0x1c00 -
Write_Register
; mov r2, r0, lsl #19
; mov r2, r2, lsr #27
; tst r2, #2_11
;; andeq r0, r0, #0xff
; biceq r0, r0, #0xfc00
; ldreq pc, [pc, r2]
; movs pc, r14
mov r2, r0, lsl #19
mov r2, r2, lsr #27
bic r2, r2, #2_11
bic r0, r0, #0xfc00
ldr pc, [pc, r2]
movs pc, r14
DCD VDC_Write ; 0x0000 Video Display Controller
DCD VCE_Write ; 0x0400 Video Colour Encoder
PSG_Disable
EXPORT PSG_Disable
DCD PSG_Write ; 0x0800 Programmable Sound Generator
DCD Timer_Write ; 0x0c00 Timer
DCD Joypad_Write ; 0x1000 Joypad
DCD IRQ_Write ; 0x1400 Interrupt ReQuest
DCD Return2 ; 0x1800 External
DCD Return2 ; 0x1c00 -
; DCD Memory_SF2_Map ; 0x1c00 (0x1ff0-0x1ff3 = select SF2 upper bank)
Return1
mov r0, #0
PSG_Disable_Address
EXPORT PSG_Disable_Address
Return2
movs pc, r14
END