@DATABASE
@NODE MAIN HC24_PRU
* MC 68HC24 HyperSource© include file for the MC 68HC24 PRU
* © 1998 RST Ralf Steines Trier, ALL RIGHTS RESERVED
*
* source: MOTOROLA DATA BOOK HC24
*

    @{" HC24   IO-PORTS         " link "HC24_IO-PORTS"}

    @{" HC24   PROM             " link "HC24_PROM"}

* While the 68HC24 include file contains all required definitions,
* you should access HC24 registers by e.g. PRU+PIOC, where PRU is the
* address base of the HC24 port replacement unit.

* Values with a '*' in front of them show the defaults after a RESET.

@ENDNODE
@NODE HC24_IO-PORTS
****************************
*   INPUT/ OUTPUT PORTS    *
****************************

 ;PIOC      = REGS+$02 ;  PARALLEL I/O CONTROL REGISTER
                       ;  (ORIGINAL PORT IN HC11 USED AS ADDRESS/DATA LINES)

       ;STAF      = %10000000   ; STROBE A FLAG
                                ; *0= INACTIVE
                                ;  1= SET AT ACTIVE EDGE OF STRA PIN

       ;STAI      = %01000000   ; STROBE A INTERRUPT ENABLE
                                ; *0= NO HARDWARE INTERRUPT GENERATED
                                ;  1= HARDWARE INTERRUPT REQ WHEN STAF=1

       ;CWOM      = %00100000   ; PORT C WIRE-OR MODE
                                ; *0= PORT C OUTPUTS NORMAL
                                ;  1= OPEN DRAIN

       ;HNDS      = %00010000   ; HANDSHAKE/SIMPLE STROBE MODE SELECT
                                ; *0= SIMPLE STROBE MODE
                                ;  1= FULL HANDSHAKE MODES

       ;OIN       = %00001000   ; OUTPUT/INPUT HANDSHAKE SELECT
                                ;  0= INPUT
                                ;  1= OUTPUT

       ;PLS       = %00000100   ; PULSE MODE SELECT FOR STRB OUTPUT
                                ;  0= STRB LEVEL ACTIVE
                                ; *1= STRB PULSES

       ;EGA       = %00000010   ; ACTIVE EDGE SELECT FOR STRA
                                ;  0= HI TO LO (FALLING)
                                ; *1= LO TO HI (RISING)

       ;INVB      = %00000001   ; INVERT STRB OUTPUT
                                ; *0= STRB ACTIVE LOW
                                ;  1= STRB ACTIVE HIGH

 ;PORTC     = REGS+$03 ;  PORT C DATA REGISTER
                       ;  (ORIGINAL PORT IN HC11 USED AS ADDRESS/DATA LINES)

       ;PC7       = %10000000   ; I/O  (AD7)
       ;PC6       = %01000000   ; I/O  (AD6)
       ;PC5       = %00100000   ; I/O  (AD5)
       ;PC4       = %00010000   ; I/O  (AD4)
       ;PC3       = %00001000   ; I/O  (AD3)
       ;PC2       = %00000100   ; I/O  (AD2)
       ;PC1       = %00000010   ; I/O  (AD1)
       ;PC0       = %00000001   ; I/O  (AD0)

 ;PORTB     = REGS+$04 ;  PORT B DATA REGISTER
                       ;  (ORIGINAL PORT IN HC11 USED AS ADDRESS LINES)

       ;PB7       = %10000000   ; OUT (*0) (A15)
       ;PB6       = %01000000   ; OUT (*0) (A14)
       ;PB5       = %00100000   ; OUT (*0) (A13)
       ;PB4       = %00010000   ; OUT (*0) (A12)
       ;PB3       = %00001000   ; OUT (*0) (A11)
       ;PB2       = %00000100   ; OUT (*0) (A10)
       ;PB1       = %00000010   ; OUT (*0) (A9)
       ;PB0       = %00000001   ; OUT (*0) (A8)

 ;PORTCL    = REGS+$05 ;  PORT C LATCHED DATA REGISTER
                       ;  (ORIGINAL PORT IN HC11 USED AS ADDRESS/DATA LINES)

       ;PCL7      = %10000000   ; I/O  (AD7)
       ;PCL6      = %01000000   ; I/O  (AD6)
       ;PCL5      = %00100000   ; I/O  (AD5)
       ;PCL4      = %00010000   ; I/O  (AD4)
       ;PCL3      = %00001000   ; I/O  (AD3)
       ;PCL2      = %00000100   ; I/O  (AD2)
       ;PCL1      = %00000010   ; I/O  (AD1)
       ;PCL0      = %00000001   ; I/O  (AD0)

 ;DDRC      = REGS+$07 ;  DATA DIRECTION REGISTER FOR PORT C
                       ;  (ORIGINAL PORT IN HC11 USED AS ADDRESS/DATA LINES)

       ;DDRC7     = %10000000   ; *0=IN 1=OUT
       ;DDRC6     = %01000000   ; *0=IN 1=OUT
       ;DDRC5     = %00100000   ; *0=IN 1=OUT
       ;DDRC4     = %00010000   ; *0=IN 1=OUT
       ;DDRC3     = %00001000   ; *0=IN 1=OUT
       ;DDRC2     = %00000100   ; *0=IN 1=OUT
       ;DDRC1     = %00000010   ; *0=IN 1=OUT
       ;DDRC0     = %00000001   ; *0=IN 1=OUT


@ENDNODE
@NODE HC24_PROM
**************************
* PROGRAMMING REGISTERS  *
**************************

 ;HPRIO     = REGS+$3C ;  HIGHEST PRIORITY INTERRUPT AND MISC.

       ;SMOD      = %01000000   ; SPECIAL MODE SELECT
                                ; MODE SELECT
                                ;  MODE PIN     MODE DESCR:      SMOD
                                ;     0           NORMAL           1
                                ;     1           SPECIAL TEST     0

       ;IRV       = %00010000   ; INTERNAL READ VISIBILITY
                                ;  0= NO VISIBILITY OF INTERNAL READS ON EXTERNAL BUS
                                ;  1= DATA FROM INTERNAL READS IS DRIVEN OUT DATA BUS

 ;INIT      = REGS+$3D ; I/O MAPPING REGISTER
                       ; (CAN BE WRITTEN WITHOUT RESTRICTIONS)

       ;REG3      = %00001000   ; POSITION REGISTER FILE IN ANY 4K PAGE
       ;REG2      = %00000100   ;  FROM $0X00 TO $FX00
       ;REG1      = %00000010   ; (*$1X00 AFTER RESET)
       ;REG0      = %00000001   ; USE A8:A12 TO CREATE CHIPSELECT


@ENDNODE


