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 >
Text File  |  1998-05-30  |  2KB  |  80 lines

  1. ;    registers.s
  2. ;    -----------
  3. ;    Interface to IO registers
  4. ;    by Paul Clifford (27 Aug 1997)
  5.  
  6.  
  7.     AREA    |io$$code|, CODE, READONLY
  8.  
  9.     EXPORT    Read_Register
  10.     EXPORT    Write_Register
  11.  
  12.     IMPORT    VDC_Read
  13.     IMPORT    VCE_Read
  14.     IMPORT    Timer_Read
  15.     IMPORT    Joypad_Read
  16.     IMPORT    IRQ_Read
  17.  
  18.     IMPORT    VDC_Write
  19.     IMPORT    VCE_Write
  20.     IMPORT    PSG_Write
  21.     IMPORT    Timer_Write
  22.     IMPORT    Joypad_Write
  23.     IMPORT    IRQ_Write
  24.     IMPORT    Memory_SF2_Map
  25.  
  26.  
  27. Read_Register
  28.     mov    r1, r0, lsl #19
  29.     mov    r1, r1, lsr #27
  30.     tst    r1, #2_11
  31.     movne    r0, #0
  32. ;    andeq    r0, r0, #0xff
  33.     biceq    r0, r0, #0xfc00
  34.     ldreq    pc, [pc, r1]
  35.     movs    pc, r14
  36.     DCD    VDC_Read        ; 0x0000 Video Display Controller
  37.     DCD    VCE_Read        ; 0x0400 Video Colour Encoder
  38.     DCD    Return1            ; 0x0800 Programmable Sound Generator
  39.     DCD    Timer_Read        ; 0x0c00 Timer
  40.     DCD    Joypad_Read        ; 0x1000 Joypad
  41.     DCD    IRQ_Read        ; 0x1400 Interrupt ReQuest
  42.     DCD    Return1            ; 0x1800 External
  43.     DCD    Return1            ; 0x1c00 -
  44.  
  45. Write_Register
  46. ;    mov    r2, r0, lsl #19
  47. ;    mov    r2, r2, lsr #27
  48. ;    tst    r2, #2_11
  49. ;;    andeq    r0, r0, #0xff
  50. ;    biceq    r0, r0, #0xfc00
  51. ;    ldreq    pc, [pc, r2]
  52. ;    movs    pc, r14
  53.     mov    r2, r0, lsl #19
  54.     mov    r2, r2, lsr #27
  55.     bic    r2, r2, #2_11
  56.     bic    r0, r0, #0xfc00
  57.     ldr    pc, [pc, r2]
  58.     movs    pc, r14
  59.     DCD    VDC_Write        ; 0x0000 Video Display Controller
  60.     DCD    VCE_Write        ; 0x0400 Video Colour Encoder
  61. PSG_Disable
  62.     EXPORT    PSG_Disable
  63.     DCD    PSG_Write        ; 0x0800 Programmable Sound Generator
  64.     DCD    Timer_Write        ; 0x0c00 Timer
  65.     DCD    Joypad_Write        ; 0x1000 Joypad
  66.     DCD    IRQ_Write        ; 0x1400 Interrupt ReQuest
  67.     DCD    Return2            ; 0x1800 External
  68.     DCD    Return2            ; 0x1c00 -
  69. ;    DCD    Memory_SF2_Map        ; 0x1c00 (0x1ff0-0x1ff3 = select SF2 upper bank)
  70.  
  71. Return1
  72.     mov    r0, #0
  73. PSG_Disable_Address
  74.     EXPORT    PSG_Disable_Address
  75. Return2
  76.     movs    pc, r14
  77.  
  78.  
  79.     END
  80.