misc/include/ppi.equ
.nlist
.ifndef __ppi_equ__
__ppi_equ__ equ 1
;----------------------------------------------------------------
;
; 8255 PPI
;
;----------------------------------------------------------------
;接続図
; 8255
; ┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓
; ┃A7 A5 A3 A1 B7 B5 B3 B1 C7 C5 C3 C1 ┃
; ┃│A6│A4│A2│A0 │B6│B4│B2│B0│C6│C4│C2│C0┃
; ┗┿┿┿┿┿┿┿┿━━┿┿┿┿┿┿┿┿┿┿┿┿┿┿┿┿┛
; + B A + R L D U + B A + R L D U │││││││└R
; ││ ││││ ┌─┼┘ ││││││││││└─L
; ○┼─┼┼┼┼─┼─┼──┼┼┼┼┘│││││┏━┓
; ┌─┼○─┼┼┼┼─┼─┼──┼┼┼┼─┘│││└╂S1┃
; ┌┼─┼──┼┼┼┘┌┼─┼──┼┼┼┘ ││└─╂S2┃
; ││┌┼──┼┼┘ ││┌┼──┼┼┘ ││ ┗━┛
; ││││┌─┼┘ ││││┌─┼┘ ││ MSM6258
; │││││┌┼───┼┼┼┼┼─┼─────┼┘
; │││││││ │││││┌┼─────┘
; U A D B L │R G + U A D B L │R G +
; ┏┿┿┿┿┿┿┿┿┿┳┿┿┿┿┿┿┿┿┿┓
; ┃○│○│○│○│○┃○│○│○│○│○┃
; ┃1 ○2 ○3 ○4 ○5 ┃1 ○2 ○3 ○4 ○5 ┃
; ┗┓6 7 8 9 ┏┻┓6 7 8 9 ┏┛
; ┗━━━━━━━┛ ┗━━━━━━━┛
; JOY STICK 1(JS) JOY STICK 2(JT)
;PPIポートA
; -|JS7|JS6|-|JS4|JS3|JS2|JS1
PPI_PORT_A equ $00E9A001 ;ジョイスティック1
PPI_A_JS7_BIT equ 6
PPI_A_JS7_MASK equ %01000000 ;PA6 JS7入力。0=Bが押されている
PPI_A_JS6_BIT equ 5
PPI_A_JS6_MASK equ %00100000 ;PA5 JS6入力。0=Aが押されている
PPI_A_JS4_BIT equ 3
PPI_A_JS4_MASK equ %00001000 ;PA3 JS4入力。0=→が押されている
PPI_A_JS3_BIT equ 2
PPI_A_JS3_MASK equ %00000100 ;PA2 JS3入力。0=←が押されている
PPI_A_JS2_BIT equ 1
PPI_A_JS2_MASK equ %00000010 ;PA1 JS2入力。0=↓が押されている
PPI_A_JS1_BIT equ 0
PPI_A_JS1_MASK equ %00000001 ;PA0 JS1入力。0=↑が押されている
;PPIポートB
; -|JT7|JT6|-|JT4|JT3|JT2|JT1
PPI_PORT_B equ $00E9A003 ;ジョイスティック2
PPI_B_JT7_BIT equ 6
PPI_B_JT7_MASK equ %01000000 ;PB6 JT7入力。0=Bが押されている
PPI_B_JT6_BIT equ 5
PPI_B_JT6_MASK equ %00100000 ;PB5 JT6入力。0=Aが押されている
PPI_B_JT4_BIT equ 3
PPI_B_JT4_MASK equ %00001000 ;PB3 JT4入力。0=→が押されている
PPI_B_JT3_BIT equ 2
PPI_B_JT3_MASK equ %00000100 ;PB2 JT3入力。0=←が押されている
PPI_B_JT2_BIT equ 1
PPI_B_JT2_MASK equ %00000010 ;PB1 JT2入力。0=↓が押されている
PPI_B_JT1_BIT equ 0
PPI_B_JT1_MASK equ %00000001 ;PB0 JT1入力。0=↑が押されている
;PPIポートC
; JS7|JS6|JT8|JS8|RATIO##|LEFT|RIGHT
PPI_PORT_C equ $00E9A005 ;ジョイスティック、ADPCMコントロール
PPI_C_JS7_BIT equ 7
PPI_C_JS7_MASK equ %10000000 ;PC7 JS7出力(負論理)
PPI_C_JS6_BIT equ 6
PPI_C_JS6_MASK equ %01000000 ;PC6 JS6出力(負論理)
PPI_C_JT8_BIT equ 5
PPI_C_JT8_MASK equ %00100000 ;PC5 JT8出力
PPI_C_JS8_BIT equ 4
PPI_C_JS8_MASK equ %00010000 ;PC4 JS8出力
PPI_C_RATIO_BIT equ 2
PPI_C_RATIO_MASK equ %00001100 ;PC3-PC2 ADPCM分周比。00=1/1024,01=1/768,10=1/512,11=inhibited
PPI_C_RATIO_1024 equ %00000000 ;00=1/1024
PPI_C_RATIO_768 equ %00000100 ;01=1/768
PPI_C_RATIO_512 equ %00001000 ;10=1/512
PPI_C_LEFT_BIT equ 1
PPI_C_LEFT_MASK equ %00000010 ;PC1 ADPCM出力LEFT。0=出力する,1=出力しない
PPI_C_RIGHT_BIT equ 0
PPI_C_RIGHT_MASK equ %00000001 ;PC0 ADPCM出力RIGHT。0=出力する,1=出力しない
;PPIコントロール
; 0|---|BIT###|VALUE
; 1|A_MODE##|A_DIR|C_UPPER_DIR|B_MODE|B_DIR|C_LOWER_DIR
PPI_CONTROL equ $00E9A007 ;コントロール
PPI_CONTROL_PORT equ %00000000 ;0=ポートCで出力に設定されているビットの操作
PPI_CONTROL_MODE equ %10000000 ;1=モードの設定
;ポートCで出力に設定されているビットの操作
PPI_SELECT_BIT equ 1
PPI_SELECT_MASK equ %00001110 ;ビット選択
PPI_SET_RESET_BIT equ 0
PPI_SET_RESET_MASK equ %00000001 ;0=リセット,1=セット
;モードの設定
; モード0(Basic Input/Output)
; モード1(Strobed Input/Output)
; モード2(Strobed Bi-Directional Bus I/O)
PPI_A_MODE_BIT equ 5
PPI_A_MODE_MASK equ %01100000 ;グループA(ポートAとポートCの上位)のモード
PPI_A_DIR_BIT equ 4
PPI_A_DIR_MASK equ %00010000 ;ポートAの方向。0=出力,1=入力
PPI_C_UPPER_DIR_BIT equ 3
PPI_C_UPPER_DIR_MASK equ %00001000 ;ポートCの上位の方向。0=出力,1=入力
PPI_B_MODE_BIT equ 2
PPI_B_MODE_MASK equ %00000100 ;グループB(ポートBとポートCの下位)のモード
PPI_B_DIR_BIT equ 1
PPI_B_DIR_MASK equ %00000010 ;ポートBの方向。0=出力,1=入力
PPI_C_LOWER_DIR_BIT equ 0
PPI_C_LOWER_DIR_MASK equ %00000001 ;ポートCの下位の方向。0=出力,1=入力
.endif ;__ppi_equ__
.list