Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.

User:Trap15/fm7

From Data Crystal
< User:Trap15
Revision as of 13:18, 5 February 2024 by Trap15 (talk | contribs)
Jump to navigation Jump to search

Main I/O Map

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
$FD17 R Interrupt flags
Bit 7 6 5 4 3 2 1 0
Name OPN MOUSE
OPN FM sound chip 0: Active
1: Inactive
AV only
MOUSE Mouse AV only
W Interrupt mask
Bit 7 6 5 4 3 2 1 0
Name MOUSE
MOUSE Mouse 0: Disable
1: Enable
AV only
$FD18 R Floppy status register (TODO)
W Floppy command register (TODO)
$FD19 RW Floppy track register
$FD1A RW Floppy sector register
$FD1B RW Floppy data register
$FD1C R Floppy head register
W Floppy head and side register (TODO)
$FD1D R Floppy drive register
W Floppy drive and control register (TODO)
$FD1E RW Floppy mode register (TODO)
$FD1F R Floppy IRQ register
$FD20 W Level 1 Kanji ROM address high byte
$FD21 W Level 1 Kanji ROM address low byte
$FD22 R Level 1 Kanji ROM data left byte
$FD23 R Level 1 Kanji ROM data right byte
$FD2C W Level 2 Kanji ROM address high byte (AV only)
$FD2D W Level 2 Kanji ROM address low byte (AV only)
$FD2E R Level 2 Kanji ROM data left byte (AV only)
$FD2F R Level 2 Kanji ROM data right byte (AV only)
$FD2E W Dictionary ROM bank select
Bit 7 6 5 4 3 2 1 0
Name BATRAM DICTROM JBS
BATRAM Battery RAM select 0: RAM
1: Battery RAM
AV only
DICTROM Dictionary ROM select 0: RAM
1: Dictionary ROM
AV only
JBS Dictionary Bank Select AV only