misc/include/mfp.equ
.nlist
.ifndef __mfp_equ__
__mfp_equ__ equ 1
;----------------------------------------------------------------
;
; MC68901 MFP
;
;----------------------------------------------------------------
;GPIPデータレジスタ
; HSYNC|RINT|-|VDISP|OPMIRQ|POWER|EXPWON|ALARM
MFP_GPDR equ $00E88001
MFP_G_HSYNC_BIT equ 7
MFP_G_HSYNC_MASK equ %10000000 ;CRTC H-SYNC。0=水平バックポーチ/水平映像期間/水平フロントポーチ,1=水平同期パルス
MFP_G_RINT_BIT equ 6
MFP_G_RINT_MASK equ %01000000 ;CRTC IRQ。0=指定されたラスタ,1=指定されたラスタではない
MFP_G_VDISP_BIT equ 4
MFP_G_VDISP_MASK equ %00010000 ;CRTC V-DISP。0=垂直フロントポーチ/垂直同期パルス/垂直バックポーチ,1=垂直映像期間
MFP_G_OPMIRQ_BIT equ 3
MFP_G_OPMIRQ_MASK equ %00001000 ;OPM IRQ。0=OPM割り込み要求あり
MFP_G_POWER_BIT equ 2
MFP_G_POWER_MASK equ %00000100 ;POWER。0=POWERスイッチON
MFP_G_EXPWON_BIT equ 1
MFP_G_EXPWON_MASK equ %00000010 ;EXPWON。0=EXPWONによる電源ON
MFP_G_ALARM_BIT equ 0
MFP_G_ALARM_MASK equ %00000001 ;RTC ALARM。0=ALARMによる電源ON
;アクティブエッジレジスタ
; HSYNC|RINT|-|VDISP|OPMIRQ|POWER|EXPWON|ALARM
; 1=0→1
MFP_AER equ $00E88003
;データディレクションレジスタ
; HSYNC|RINT|-|VDISP|OPMIRQ|POWER|EXPWON|ALARM
; 1=出力
MFP_DDR equ $00E88005
;割り込みイネーブルレジスタA
; HSYNC|RINT|TIMERA|FULL|RECEIVE|EMPTY|TRANSMIT|TIMERB
; 1=許可
; 0でIPRAも0に
MFP_IERA equ $00E88007
MFP_A_HSYNC_BIT equ 7
MFP_A_HSYNC_MASK equ %10000000
MFP_A_RINT_BIT equ 6
MFP_A_RINT_MASK equ %01000000
MFP_A_TIMERA_BIT equ 5
MFP_A_TIMERA_MASK equ %00100000
MFP_A_FULL_BIT equ 4
MFP_A_FULL_MASK equ %00010000
MFP_A_RECEIVE_BIT equ 3
MFP_A_RECEIVE_MASK equ %00001000
MFP_A_EMPTY_BIT equ 2
MFP_A_EMPTY_MASK equ %00000100
MFP_A_TRANSMIT_BIT equ 1
MFP_A_TRANSMIT_MASK equ %00000010
MFP_A_TIMERB_BIT equ 0
MFP_A_TIMERB_MASK equ %00000001
;割り込みイネーブルレジスタB
; -|VDISP|TIMERC|TIMERD|OPMIRQ|POWER|EXPWON|ALARM
; 1=許可
; 0でIPRBも0に
MFP_IERB equ $00E88009
MFP_B_VDISP_BIT equ 6
MFP_B_VDISP_MASK equ %01000000
MFP_B_TIMERC_BIT equ 5
MFP_B_TIMERC_MASK equ %00100000
MFP_B_TIMERD_BIT equ 4
MFP_B_TIMERD_MASK equ %00010000
MFP_B_OPMIRQ_BIT equ 3
MFP_B_OPMIRQ_MASK equ %00001000
MFP_B_POWER_BIT equ 2
MFP_B_POWER_MASK equ %00000100
MFP_B_EXPWON_BIT equ 1
MFP_B_EXPWON_MASK equ %00000010
MFP_B_ALARM_BIT equ 0
MFP_B_ALARM_MASK equ %00000001
;割り込みペンディングレジスタA
; HSYNC|RINT|TIMERA|FULL|RECEIVE|EMPTY|TRANSMIT|TIMERB
; 1=発生~受付
; 該当ビットのみ0でクリア
MFP_IPRA equ $00E8800B
;割り込みペンディングレジスタB
; -|VDISP|TIMERC|TIMERD|OPMIRQ|POWER|EXPWON|ALARM
; 1=発生~受付
; 該当ビットのみ0でクリア
MFP_IPRB equ $00E8800D
;割り込みインサービスレジスタA
; HSYNC|RINT|TIMERA|FULL|RECEIVE|EMPTY|TRANSMIT|TIMERB
; 1=受付~終了
; 該当ビットのみ0でクリア
MFP_ISRA equ $00E8800F
;割り込みインサービスレジスタB
; -|VDISP|TIMERC|TIMERD|OPMIRQ|POWER|EXPWON|ALARM
; 1=受付~終了
; 該当ビットのみ0でクリア
MFP_ISRB equ $00E88011
;割り込みマスクレジスタA
; HSYNC|RINT|TIMERA|FULL|RECEIVE|EMPTY|TRANSMIT|TIMERB
; 1=許可
MFP_IMRA equ $00E88013
;割り込みマスクレジスタB
; -|VDISP|TIMERC|TIMERD|OPMIRQ|POWER|EXPWON|ALARM
; 1=許可
MFP_IMRB equ $00E88015
;ベクタレジスタ
; ベクタ####|自動|---
MFP_VECTOR equ $00E88017
;タイマAコントロールレジスタ
; ---|リセットA|イベントA|プリスケールA###(停止/1/2.5/4/12.5/16/25/50us)
MFP_TACR equ $00E88019
MFP_STOP equ 0 ;停止
MFP_1US equ 1 ;1/4プリスケール 1MHz 1us
MFP_2_5US equ 2 ;1/10プリスケール 400kHz 2.5us
MFP_4US equ 3 ;1/16プリスケール 250kHz 4us
MFP_12_5US equ 4 ;1/50プリスケール 80kHz 12.5us
MFP_16US equ 5 ;1/64プリスケール 62.5kHz 16us
MFP_25US equ 6 ;1/100プリスケール 40kHz 25us
MFP_50US equ 7 ;1/200プリスケール 20kHz 50us
MFP_EVENT_MASK equ 8 ;Timer-Aイベントカウントモード
MFP_RESET_MASK equ 16 ;Timer-A/Timer-Bリセット
;タイマBコントロールレジスタ
; ---|リセットB|イベントB|プリスケールB###(停止/1/2.5/4/12.5/16/25/50us)
MFP_TBCR equ $00E8801B
;タイマC,Dコントロールレジスタ
; -|プリスケールC###(停止/1/2.5/4/12.5/16/25/50us)|-|プリスケールD###)
MFP_TCDCR equ $00E8801D
;タイマAデータレジスタ
MFP_TADR equ $00E8801F
;タイマBデータレジスタ
MFP_TBDR equ $00E88021
;タイマCデータレジスタ
MFP_TCDR equ $00E88023
;タイマDデータレジスタ
MFP_TDDR equ $00E88025
;同期キャラクタレジスタ
MFP_SYNC_CHAR equ $00E88027
;USARTコントロールレジスタ
MFP_UCR equ $00E88029
;受信ステータスレジスタ
MFP_RSR equ $00E8802B
;送信ステータスレジスタ
; バッファエンプティ|-------
MFP_TSR equ $00E8802D
;USARTデータレジスタ
MFP_UDR equ $00E8802F
;割り込みベクタ番号
MFP_ALARM_INTERRUPT equ $40 ;B0 GPIP0 RTC ALARM
MFP_EXPWON_INTERRUPT equ $41 ;B1 GPIP1 EXPWON
MFP_POWER_INTERRUPT equ $42 ;B2 GPIP2 POWER
MFP_OPMIRQ_INTERRUPT equ $43 ;B3 GPIP3 OPM IRQ
MFP_TIMERD_INTERRUPT equ $44 ;B4 Timer-D バックグラウンドスレッド
MFP_TIMERC_INTERRUPT equ $45 ;B5 Timer-C マウス処理/テキストカーソル/FDDモーターOFF/稼働時間計測
MFP_VDISP_INTERRUPT equ $46 ;B6 GPIP4 CRTC V-DISP
;B7 GPIP5 (RTC CLKOUT)
MFP_TIMERB_INTERRUPT equ $48 ;A0 Timer-B キーボードシリアルクロック
MFP_TRANSMIT_INTERRUPT equ $49 ;A1 キーボードシリアル出力エラー
MFP_EMPTY_INTERRUPT equ $4A ;A2 キーボードシリアル出力空
MFP_RECEIVE_INTERRUPT equ $4B ;A3 キーボードシリアル入力エラー
MFP_FULL_INTERRUPT equ $4C ;A4 キーボードシリアル入力あり
MFP_TIMERA_INTERRUPT equ $4D ;A5 Timer-A V-DISPイベントカウント
MFP_RINT_INTERRUPT equ $4E ;A6 GPIP6 CRTC IRQ
MFP_HSYNC_INTERRUPT equ $4F ;A7 GPIP7 CRTC H-SYNC
.endif ;__mfp_equ__
.list