Storage Subsystem
The KN5000 has multiple storage options for factory data, user data, and removable media.
Overview
┌──────────────────────────────────────────────────────────────────────────────┐
│ STORAGE ARCHITECTURE │
└──────────────────────────────────────────────────────────────────────────────┘
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌──────────────┐
│ TABLE DATA ROM │ │ CUSTOM DATA │ │ FLOPPY DISK │ │ HDAE5000 │
│ │ │ FLASH │ │ │ │ (Optional) │
│ 2MB Read-Only │ │ 1MB Read/Write │ │ 1.44MB │ │ 1.08GB │
│ @ 0x800000 │ │ @ 0x300000 │ │ Removable │ │ @ 0x130010 │
│ │ │ │ │ @ 0x110000 │ │ │
│ Factory: │ │ User: │ │ │ │ Expansion: │
│ ├─ Styles │ │ ├─ Settings │ │ ├─ Songs │ │ ├─ Songs │
│ ├─ Sounds │ │ ├─ Custom │ │ ├─ Styles │ │ ├─ Styles │
│ ├─ Demos │ │ │ Sounds │ │ ├─ Patches │ │ ├─ Backups │
│ └─ Presets │ │ └─ Sequences │ │ └─ Sequences │ │ └─ Quick │
│ │ │ │ │ │ │ Load │
└─────────────────┘ └─────────────────┘ └─────────────────┘ └──────────────┘
Table Data ROM
The Table Data ROM contains factory-installed content.
Specifications
| Property |
Value |
| Size |
2MB (2,097,152 bytes) |
| Address |
0x800000-0x9FFFFF |
| Type |
Read-only mask ROM |
| Organization |
16-bit word-level interleave (odd IC1 + even IC3) |
Physical Layout
| Chip |
File |
Description |
| IC1 |
kn5000_table_data_rom_odd.ic1 |
Odd bytes |
| IC3 |
kn5000_table_data_rom_even.ic3 |
Even bytes |
Contents (Known)
| Type |
Description |
| Styles |
Auto-accompaniment patterns |
| Sound Data |
Voice parameters |
| Demo Songs |
Factory demonstration sequences |
| Presets |
Factory sound combinations |
| Graphics |
UI images and icons |
Reconstruction Status
| Metric |
Value |
| Documented |
32.42% |
| Binary Assets |
67.58% remaining |
| Challenge |
Complex data structures |
Custom Data Flash
User-writable storage for personal settings and content.
Specifications
| Property |
Value |
| Size |
1MB (1,048,576 bytes) |
| Address |
0x300000-0x3FFFFF |
| Type |
Flash memory |
| Access |
Read/Write |
Contents
| Type |
Description |
| User Settings |
System preferences |
| Custom Sounds |
User-created voices |
| Custom Styles |
User-created patterns |
| Registration |
Sound/style combinations |
| Sequences |
User compositions |
Reconstruction Status
Not reconstructed - contains user data, varies per unit.
Floppy Disk Controller
The FDC handles 3.5” floppy disk I/O for data exchange.
Hardware
| Component |
Value |
| Controller |
NEC uPD72068GF-3B9 |
| Address |
0x110000-0x11FFFF |
| Drive |
Standard 3.5” 1.44MB |
| Format |
MS-DOS compatible |
FDC Registers
| Offset |
Register |
Description |
| 0x00 |
Status A |
Drive status |
| 0x02 |
Status B |
Controller status |
| 0x04 |
DOR |
Digital Output Register |
| 0x06 |
TDR |
Tape Drive Register |
| 0x08 |
MSR |
Main Status Register |
| 0x0A |
DSR |
Data Rate Select |
| 0x0C |
Data FIFO |
Data transfer |
| 0x0E |
DIR |
Digital Input Register |
| 0x10 |
CCR |
Configuration Control |
The KN5000 uses these file types on floppy:
| Extension |
Type ID |
Description |
| .MID |
- |
Standard MIDI File |
| .SQT |
- |
Sequencer Track |
| .STY |
- |
Style Data |
| .PMT |
- |
Performance Memory Track |
| .RCM |
- |
Rhythm Composer Memory |
| .TM |
- |
Technical MIDI |
See FDC Subsystem for detailed handler documentation.
HDAE5000 Hard Disk Expansion
Optional expansion providing 1.08GB storage.
Hardware
| Component |
Value |
| Drive |
2.5” IDE HDD |
| Capacity |
1.08GB |
| Interface |
ATA/IDE |
| ATA Address |
0x130010-0x130020 |
| PPI Address |
0x160000-0x160007 |
| ROM |
512KB @ 0x280000 |
Features
| Feature |
Description |
| Quick Load |
Fast file access |
| PC Link |
Transfer via parallel port |
| Large Storage |
1000+ songs |
| Backup |
System data backup |
Addressing Mode
The HDAE5000 uses CHS (Cylinder/Head/Sector) addressing:
| Parameter |
Source |
| Cylinders |
From IDENTIFY DEVICE |
| Heads |
From IDENTIFY DEVICE |
| Sectors |
From IDENTIFY DEVICE |
File System
The HDAE5000 uses a custom filesystem (not FAT):
| Structure |
Description |
| FSB |
File System Block (master) |
| FGB |
File Group Block |
| FEB |
File Entry Block |
See HDAE5000 and HDAE5000 Disk Interface for details.
System Update Procedure
The KN5000 can receive firmware updates via floppy disk. See System Update Discs for full format documentation.
| Component |
Header |
Target Address |
Size |
| Main ROM |
“Technics KN5000 FLASH DATA FILE” |
0xE00000 |
2MB |
| HDAE5000 |
“Technics KN5000 HD-AEPRG DATA FILE” |
0x280000 |
512KB |
Update Process
- Insert update disk
- Power on with specific key held
- Firmware detects update file
- Flash programming begins
- Verification and reboot
No Code Execution from Floppy
The floppy subsystem is strictly a data transport. The firmware never executes code loaded from floppy — all 8 disc types write to flash memory, and standard file I/O handles only data formats (MIDI, styles, registrations). The boot sector is never read, and there is no disc type signature for executable content. Custom code can only be installed via flash update (replacing the entire Program ROM or Extension ROM). See System Update Discs for full analysis.
Related Pages
Code References
Floppy Disk Controller
| Symbol |
Address |
Purpose |
FDC_INIT |
0xF96BBF |
FDC hardware initialization |
FDC_CONFIG_VERIFY |
0xF96BD0 |
FDC configuration verification |
FDC_CMD_EXEC |
0xF976E4 |
FDC command execution |
FDC_ReadSectors |
0xF96E00 |
Read sectors from floppy disc |
FDC_WriteSectors |
0xF97000 |
Write sectors to floppy disc |
Check_for_Floppy_Disk_Change |
0xEF4F5E |
Detect disc insertion/removal |
Detect_Disk_Type |
0xEF42FE |
Identify update disc type (38-byte signature) |
Flash Memory
| Symbol |
Address |
Purpose |
Flash_IdentifyAndValidateChip |
0xEF37A5 |
Probe flash chip (AMD/Fujitsu ID) |
Flash_ProgramWord |
0xEF381A |
Program one word to flash |
FLASH_MEM_UPDATE |
0xEF4F6F |
Main firmware update entry point |
Erase_and_Burn____when_disk_is_valid |
0xEF4745 |
Update type dispatcher |
HDAE5000 Storage
| Symbol |
Address |
Purpose |
ATA_IdentifyDevice |
0x28C000 |
Read drive parameters (HDAE5000 ROM) |
ATA_ReadSectors |
0x28C100 |
Read sectors from HDD |
ATA_WriteSectors |
0x28C200 |
Write sectors to HDD |
FSB_Init |
0x28D000 |
Initialize filesystem block |
External References