Persistent storage in the Taleä Computer System comes in two flavors: Tiny Portable Storage (TPS), and regular disk storage. TPS is capable of storaging up to 128 Kib of data, and the system has two drives for it. The disk storage is much larger at 128 Mib, but it is not removable nor portable.
The TPS drives are controlled through this registers:
╭───────┬─────╮
│COMMAND│ 0x00│
├───────┼─────┤
│DATA │ 0x01│
├───────┼─────┤
│POINTH │ 0x02│
├───────┼─────┤
│POINTL │ 0x03│
├───────┼─────┤
│STATUSH│ 0x04│
├───────┼─────┤
│STATUSL│ 0x05│
╰───────┴─────╯
The commands available to address the TPS drive are the following:
0x00
) Nop: does nothing.0x01
) Store Sector: stores the sector specified in pointh-pointl
into the sector data
.0x02
) Load Sector: loads the sector specified in data
into pointh-pointl
(final address computed multiplying by sector size).0x03
) Is Bootable: returns 1
in STATUSL
if the selected drive is bootable.0x04
) Is Present: returns 1
in STATUSL
if the selected drive is present.0x05
) Open: opens the selected drive.0x06
) Close: closes the selected drive.0x07
) Set Current: selects the drive indicated by DATA
(0 for A, 1 for B).0x08
) Size: returns number of sectors - 1 in STATUSH
and size of sector in STATUSL
(as a multiple of 256).The Disk drive is controlled through this registers:
╭───────┬─────╮
│COMMAND│ 0x00│
├───────┼─────┤
│DATA │ 0x01│
├───────┼─────┤
│SECTORH│ 0x02│
├───────┼─────┤
│SECTORL│ 0x03│
├───────┼─────┤
│POINTH │ 0x04│
├───────┼─────┤
│POINTL │ 0x05│
├───────┼─────┤
│STATUS0│ 0x06│
├───────┼─────┤
│STATUS1│ 0x07│
╰───────┴─────╯
The commands available to address the Disk Drive are the following:
0x00
) Nop: does nothing.0x01
) Store Sector: stores the sector at point
into sector
at data
disk.0x02
) Load Sector: loads the sector at sector
at data
disk into point
.0x03
) Is Bootable: returns 1
in STATUS1
if the disk at data
is bootable.0x04
) Is Present: returns 1
in STATUS1
if the disk at data
is present.0x08
) Size: returns the number of disks in STATUS0
and size of sector in STATUS1
as a multiple of 256, it is assumed that there are 65536 sectors per disk.