Address |
R/W |
Detail
|
$FD00
|
R
|
Keyboard data high bit, and clock speed indicator
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
D8
|
|
CLK
|
D8
|
Keyboard data bit 8
|
|
CLK
|
Clock speed
|
0: 1.2MHz 1: 2MHz AV always reads '1'
|
|
W
|
Audio cassette and printer
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
SLCTIN
|
STRB
|
|
CASRMT
|
CASWR
|
SLCTIN
|
Printer select input
|
0: Select 1: Unselect
|
STRB
|
Printer strobe
|
Strobe for data exchange (edge pulse)
|
CASRMT
|
Audio cassette remote
|
0: ON 1:OFF
|
CASWR
|
Audio cassette data
|
Write data, MIC
|
|
|
$FD01
|
R
|
Keyboard data low 8 bits
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
Keyboard data bits 0~7
|
|
W
|
Printer output data
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
Output data
|
|
|
$FD02
|
R
|
Audio cassette and printer
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
CASRD
|
|
DET2
|
DTT1
|
PE
|
ACKNG
|
ERROR
|
BUSY
|
CASRD
|
Cassette data read, SPK
|
|
DET2
|
Printer DET 2
|
(unused)
|
DTT1
|
Printer DTT 1
|
(unused)
|
PE
|
Printer Paper Empty
|
0: Normal 1: No paper
|
ACKNG
|
Acknowledge
|
Triggered by reading (?)
|
ERROR
|
Printer Error
|
0: Error 1: Normal
|
BUSY
|
Printer Busy
|
0: Ready 1: Busy
|
|
W
|
IRQ mask
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
SYNDET
|
RXRDY
|
TXRDY
|
MFD
|
|
TIMER
|
PRINTER
|
KEY
|
SYNDET
|
RS-232 sync detect
|
0: Disable 1: Enable
|
RXRDY
|
RS-232 serial receive ready
|
TXRDY
|
RS-232 serial transmit ready
|
MFD
|
Mini-floppy disk
|
TIMER
|
Periodic timer (every 2.03ms)
|
PRINTER
|
Printer ready for next character
|
KEY
|
Keystroke received
|
|
|
$FD03
|
R
|
IRQ flags
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
|
EXT
|
TIMER
|
PRINTER
|
KEY
|
EXT
|
Expansion
|
0: Active 1: Inactive
|
TIMER
|
Periodic timer
|
PRINTER
|
Printer ready for next character
|
KEY
|
Keystroke received
|
|
W
|
Buzzer
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
REPEAT
|
SINGLE
|
|
SPEAKER
|
REPEAT
|
Repeating buzzer
|
0: Off 1: On
|
SINGLE
|
One-shot buzzer
|
0: Off 1: On
|
SPEAKER
|
Output buzzer to speaker
|
0: Mute 1: Output
|
|
|
$FD04
|
R
|
Sub-CPU interface, FIRQ flags
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
|
FDCMODE
|
KNJMODE
|
400CARD
|
400LINE
|
IRQMODE
|
BREAK
|
ATN
|
FDCMODE
|
FDC mode
|
0: 1MB 1: 320KB
|
L4 only
|
KNJMODE
|
Kanji ROM mode
|
0: SUB 1: MAIN
|
L4 only
|
400CARD
|
400-line card (260k color mode for AV40?)
|
0: Enable(?) 1: Disable(?)
|
L4 only
|
400LINE
|
400-line mode
|
0: 400-line 1: 200-line
|
L4 only
|
IRQMODE
|
IRQ mode
|
0: Normal 1: SFD
|
L4 only
|
BREAK
|
Break key pressed
|
0: Active 1: Inactive
|
ATN
|
Sub-CPU attention signal
|
|
W
|
Sub-CPU interface
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
|
FDCMODE
|
KNJMODE
|
400CARD
|
400LINE
|
IRQMODE
|
|
FDCMODE
|
FDC mode
|
0: 1MB 1: 320KB
|
L4 only
|
KNJMODE
|
Kanji ROM mode
|
0: SUB 1: MAIN
|
L4 only
|
400CARD
|
400-line card (260k color mode for AV40?)
|
0: Enable(?) 1: Disable(?)
|
L4 only
|
400LINE
|
400-line mode
|
0: 400-line 1: 200-line
|
L4 only
|
IRQMODE
|
IRQ mode
|
0: Normal 1: SFD
|
L4 only
|
|
|
$FD05
|
R
|
Sub-CPU status, expansion status
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
BUSY
|
|
EXTDET
|
BUSY
|
Sub-CPU busy signal
|
0: Ready 1: Busy
|
EXTDET
|
Expansion card presence
|
0: Present 1: Not present
|
|
W
|
Sub-CPU status, expansion status
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
HALT
|
CANSEL
|
|
HALT
|
Halt sub-CPU execution
|
0: Run 1: Halt
|
CANSEL
|
Send IRQ to sub-CPU
|
0: No 1: Yes
|
|
|
$FD06
|
RW
|
RS-232 data
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
RS-232 data
|
Read to receive, write to transmit.
|
|
$FD07
|
RW
|
RS-232 command and status (TODO)
|
|
$FD08
|
RW
|
Light pen (TODO)
|
|
$FD09
|
RW
|
Light pen (TODO)
|
|
$FD0A
|
RW
|
Light pen (TODO)
|
|
$FD0B
|
R
|
Boot switch status, RS-232 interface
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
|
CD
|
|
MODE
|
CD
|
RS-232 Carrier Detect
|
0: On 1: Off
|
AV20, AV40 only
|
MODE
|
Boot mode switch
|
0: BASIC 1: DOS
|
AV only
|
|
W
|
RS-232 interface configuration
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
CLKSEL
|
BAUD
|
|
CLKSEL
|
RS-232 clock select
|
TODO
|
AV20, AV40 only
|
BAUD
|
RS-232 baud rate
|
TODO
|
AV20, AV40 only
|
|
|
$FD0C
|
W
|
RS-232 interface configuration
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
|
DTR
|
|
ENABLE
|
DTR
|
RS-232 DTR
|
0: Output 1: Prohibit
|
AV20, AV40 only
|
ENABLE
|
RS-232 enable
|
0: Disable 1: Enable
|
AV20, AV40 only
|
|
|
$FD0D
|
W
|
PSG command register
|
|
$FD0E
|
RW
|
PSG data register
|
|
$FD0F
|
RW
|
ROM bank mode
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
MODE
|
MODE
|
Change ROM bank status by access type
|
Read: ROM Write: RAM
|
|
|
$FD10
|
W
|
Initiator ROM disable
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
|
INITROM
|
|
INITROM
|
Initiator ROM enable
|
0: Enabled 1: Disabled
|
AV only
|
|
|
$FD12
|
R
|
Sub monitor status register
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
|
320MODE
|
1
|
DISPTMG
|
VSYNC
|
320MODE
|
320/640 mode
|
0: 640 1: 320
|
AV only
|
DISPTMG
|
Display timing status
|
0: Blanking 1: Display
|
AV only
|
VSYNC
|
V-sync status
|
1: Active time (TODO: are you sure?)
|
AV only
|
|
W
|
Sub monitor status register
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
|
320MODE
|
0
|
320MODE
|
320/640 mode
|
0: 640 1: 320
|
AV only
|
|
|
$FD13
|
W
|
Sub-bank register
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0
|
Name
|
|
SB
|
SB Value |
Behavior |
Valid System
|
000
|
Old Sub Monitor (Type C) (640x200) |
All
|
001
|
New Sub Monitor (Type A) (640x200) |
AV
|
010
|
New Sub Monitor (Type B) (320x200) |
AV
|
011
|
Prohibited
|
1XX
|
Sub Monitor RAM |
AV40
|
|
|
$FD15
|
W
|
FM control register
|
|
$FD16
|
RW
|
FM data register
|