x68000:iocs_work_area
Table of Contents
IOCS WORK MANUAL
IOCS Work List(ROM version 1.10)
Keyboard
| Address | Size | Description |
|---|---|---|
| $800 | 16.b | Key press state |
| $810 | 1.b | Keyboard LED status |
| $811 | 1.b | Shift key state |
| $812 | 1.w | Key buffer data bytes |
| $814 | 1.l | 〃 write pointer |
| $818 | 1.l | 〃 read pointer |
| $81c | 64.w | key buffer |
Serial
| Address | Size | Description |
|---|---|---|
| $89c | 1.w | RS-232C receive buffer data byte count |
| $89e | 1.l | 〃 〃 write pointer |
| $8a2 | 1.l | 〃 〃 read pointer |
| $8a6 | 64.w | 〃 receive buffer |
| $926 | 1.w | 〃 communication mode |
| $928 | 1.b | 〃 SI/SO State 0:SO 1:SI (bit0:Receive bit1:Send) |
| $929 | 1.b | 〃 XON/XOFF State 0:XOFF 1:XON(〃) |
Mouse
| Address | Size | Description |
|---|---|---|
| $92a | 1.w | Mouse data receive byte count |
| $92c | 1.l | 〃 receive buffer write pointer |
| $930 | 3.b | 〃 receive buffer |
| $933 | 1.b | Current MSCTRL terminal state |
| $934 | 1.l | Mouse receive data processing address (soft keyboard) |
| $948 | 1.l | 〃 (mouse cursor) |
| $93c | 1.b | CRT mode |
T-VRAM
| Address | Size | Description |
|---|---|---|
| $93d | 1.b | Number of graphic pages(?) |
| $93e | 1.l | Text number of bytes in 1 line |
| $942 | 1.w | Text operation target page number |
| $944 | 1.l | 〃 starting address of plane |
| $948 | 1.l | Text display start address offset |
| $94c | 1.l | Start address of soft keyboard drawing plane(X68000 only) |
| $950 | 1.w | 〃 display X coordinate |
| $952 | 1.w | 〃 Y |
| $954 | 1.w | Text clipping range (X minimum value) |
| $956 | 1.w | 〃 (Y minimum value) |
| $958 | 1.w | 〃 (X maximum value+1) |
| $95a | 1.w | 〃 (Y maximum value+1) |
G-VRAM
| Address | Size | Description |
|---|---|---|
| $95c | 1.l | Start address of graphics operation page |
| $960 | 1.l | Number of bytes per line 〃 |
| $964 | 1.w | 〃 screen color number-1 (not available if 0) |
| $966 | 1.w | 〃 drawing color code |
| $968 | 1.w | 〃 clipping range (X minimum value) |
| $96a | 1.w | 〃 (Y minimum value) |
| $96c | 1.w | 〃 (X maximum value) |
| $96e | 1.w | 〃 (Y maximum value) |
Text Processing
| Address | Size | Description |
|---|---|---|
| $970 | 1.w | Number of text digits - 1 |
| $972 | 1.w | Number of text rows - 1 |
| $974 | 1.w | Cursor X coordinate |
| $976 | 1.w | 〃 Y coordinate |
| $978 | 1.l | BEEP sound PCM data address |
| $97c | 1.w | 〃 Data length |
| $97e | 1.l | Extended ESC sequence processing address |
| $982 | 1.l | ESC sequence buffer write pointer |
| $986 | 10.b | ESC sequence buffer (from ESC next) |
| $990 | 1.b | 1st byte of double-byte character |
| $991 | 1.b | Cursor display status (0:off !0:on) |
| $992 | 1.b | Cursor flashing switch (0:off !0:on) |
| $993 | 1.b | Application cursor flashing switch (0:on !0:off) |
| $994 | 1.b | Text display color |
| $995 | 1.b | 〃 save buffer |
| $996 | 1.l | cursor coordinate storage buffer |
Font Addresses
| Address | Size | Description |
|---|---|---|
| $99a | 1.l | Font address of external character group 0 |
| $99e | 1.l | 〃 1〃 |
| $9a2 | 1.l | 〃 2〃 |
| $9a6 | 1.l | 〃 3〃 |
| $9aa | 1.l | 〃 4〃 |
| $9ae | 1.l | 〃 5〃 |
Perihpheral Timers
| Address | Size | Description |
|---|---|---|
| $9b2 | 1.w | Mouse data receive timer initial value |
| $9b4 | 1.w | 〃 timer counter |
| $9b6 | 1.l | 〃 processing address |
| $9ba | 1.w | Cursor flashing timer initial value |
| $9bc | 1.w | 〃 timer counter |
| $9be | 1.l | 〃 processing address |
| $9c2 | 1.w | FD motor stop timer initial value |
| $9c4 | 1.w | 〃 timer counter |
| $9c6 | 1.l | 〃 processing address |
| $9ca | 1.w | Alarm power off timer initial value |
| $9cc | 1.w | 〃 timer counter |
| $9ce | 1.l | 〃 processing address |
Misc
| Address | Size | Description |
|---|---|---|
| $9d2 | 1.l | Time to power off |
| $9d6 | 1.l | Uptime (1 minute granularity) |
| $9da | 1.b | Setting value of OPM register $1b |
| $9db | 1.b | Unused |
| $9dc | 1.b | Graphics screen usage mode |
| $9dd | 1.b | Text 〃 |
| $9de | 1.b | ROM debugger start switch (0: off !0: on) |
| $9df | 1.b | How to start |
| $9e0 | 1.b | Startup unit number(PDA) |
Peripheral Status
| Address | Size | Description |
|---|---|---|
| $9e1 | 1.b | FD drive status (bit 7 = 1: accessing bit 6 = 1: motor on) %10 During access, motor on %01 Access terminated, motor on on(turned off by Timer-C interrupt) %00 Access terminated, motor off |
| $9e2 | 1.b | FDC LEDCTRL/EJECTMASK setting |
| $9e6 | 4.w | 〃 drive status/disk exchange flag |
| $9ee | 10.b | 〃 command buffer |
| $9f8 | 6.b | SASI command buffer |
| $9fe | 16.b | 〃 capacity flag(?) |
| $a0e | 1.w | Running IOCS call number(-1 if not running) |
Printer
| Address | Size | Description |
|---|---|---|
| $a10 | 1.b | Printer abort flag |
| $a11 | 1.b | 〃 kanji mode flag (0:alhpanumeric !0:kanji) |
| $a12 | 1.b | 〃 1st byte of double-byte character |
| $a13 | 1.b | Number of printed lines to date |
| $a14 | 1.w | 〃 number of printed digits |
| $a16 | 98.b | Printer parameters |
| $a78 | 1.b | Number of lines of 1 page - 1 |
| $a79 | 1.b | Number of digits of one line - 1 |
Soft keyboard/Mouse cursor
| Address | Size | Description |
|---|---|---|
| $a7a | 1.l | Soft keyboard display plane start address (plane 3) |
| $a7e | 1.l | 〃 (plane 2) |
| $a82 | 1.w | VSYNC check flag when drawing mouse cursor (0:off !0:on) |
| $a84 | 1.w | Minimum travel distance to consider as dragging - 1 |
| $a86 | 1.w | Animation speed of mouse cursor |
| $a88 | 1.w | Unknown($0000) |
| $a8a | 1.w | Unknown($00f6) |
| $a8c | 1.w | Column at which the mouse cursor can be displayed starting position(0) |
| $a8e | 1.w | 〃 line start position(0) |
| $a90 | 1.w | 〃 column end position(128) |
| $a92 | 1.w | 〃 line end position(1008) |
| $a94 | 1.w | Unknown(1024) |
| $a96 | 1.w | Unknown(1008) |
| $a98 | 1.w | Number of text bytes per line |
| $a9a | 1.w | Mouse cursor movement range (X minimum value) |
| $a9c | 1.w | 〃 (Y minimum value) |
| $a9e | 1.w | 〃 (X maximum value) |
| $aa0 | 1.w | 〃 (Y maximum value) |
| $aa2 | 1.b | Mouse cursor display switch (0: Erase !0: Display) |
| $aa3 | 1.b | Not used |
| $aa4 | 7.l | Pointer to pattern data base (6+1 pieces)(?) |
| $ac0 | 1.w | Mouse cursor animation display number |
| $ac2 | 1.w | 〃 speed counter |
| $ac4 | 1.w | Mouse cursor animation flag (-1: animate) |
| $ac6 | 1.w | Mouse left button state (0: not pressed -1: pressed) |
| $ac8 | 1.w | 〃 right button〃 |
| $aca | 1.w | Movement amount in mouse X direction |
| $acc | 1.w | 〃 Y direction〃 |
| $ace | 1.w | Mouse cursor X coordinate |
| $ad0 | 1.w | 〃 Y coordinate |
| $ad2 | 1.w | 〃 X coordinate save buffer |
| $ad4 | 1.w | 〃 Y coordinate〃 |
| $ad6 | 1.w | Hotspot X coordinate |
| $ad8 | 1.w | 〃 Y coordinate |
| $ada | 1.w | Mouse cursor display start column |
| $adc | 1.w | 〃 line |
| $ade | 1.w | Mouse IOCS call processing flag (-1: in processing) |
| $ae4 | 6.w | 〃 register temporary storage area |
| $af0 | 64.b | Text save buffer (plane 2) |
| $b30 | 64.b | 〃 (plane 3) |
| $b70 | 16.l | Pointer to mouse cursor pattern data |
| $bb0 | 1.w | Soft keyboard X coordinate |
| $bb2 | 1.w | 〃 Y coordinate |
| $bb4 | 1.w | Drag start X coordinate |
| $bb6 | 1.w | 〃 Y coordinate |
| $bb8 | 1.w | Key code of the key pressed on the soft keyboard |
| $bba | 1.l | 〃 key data address |
| $bbe | 1.b | Mouse status at the last processing (button state) |
| $bbf | 1.b | Mouse receive data processing flag (bit 7=1: processing bit 0=1: Soft keyboard displayed) |
| $bc0 | 1.b | Soft keyboard key input repeat counter |
| $bc1 | 1.b | Soft keyboard control mode |
| $bc2 | 1.b | Mouse cursor/soft keyboard display status |
| $bc3 | 1.b | Soft keyboard key pressed flag (0: not pressed 1: pressed) |
| $bc4 | 1.b | Soft keyboard processing flag (-1: processing) |
| $bc5 | 1.b | Special key processing flag (bit 0~3: corresponding to trap #10~13) |
On-screen calculator
| Address | Size | Description |
|---|---|---|
| $bc6 | 1.b | Calculator display flag (0: erase 1: display) |
| $bc7 | 1.b | 〃 radix (0: decimal 1: hexadecimal) |
| $bc8 | 1.b | 〃 addition, subtraction, multiplication, division (1:+ 2:- 3:* 4:/) |
| $bc9 | 1.b | 〃 decimal point flag (0: integer 1: decimal) |
| $bca | 1.w | 〃 output counter |
| $bcc | 1.l | 〃 output read pointer |
| $bd0 | 22.w | 〃 output buffer |
| $bfc | 1.w | 〃 X coordinate |
| $bfe | 1.w | 〃 Y coordinate |
| $c00 | 2.l | 〃 stored numeric value (floating point) |
| $c08 | 2.l | 〃 calculation result (〃) |
| $c10 | 2.l | 〃 working (〃) |
| $c18 | 1.w | 〃 number of input digits |
| $c1a | 1.b | 〃 error flag (0: normal 1: error) |
| $c1b | 16.b | 〃 numeric string buffer |
| $c2b | 6.b | 〃 base number 〃 |
| $c31 | 1.b | Unused |
ADPCM
| Address | Size | Description |
|---|---|---|
| $c32 | 1.b | ADPCM playback/recording mode (bit 8=1: split transfer mode) |
| $c33 | 1.b | 〃 DMA transfer error status |
| $c34 | 1.b | DMA channel 2 transfer mode |
| $c35 | 1.b | 〃 error status |
Font Stuff
| Address | Size | Description |
|---|---|---|
| $c36 | 16.b | 6*12 buffer for font acquisition |
| $c46 | 72.b | Buffer for creating fonts |
| $c8e | 1.b | Unused |
FDD Status
| Address | Size | Description |
|---|---|---|
| $c8f | 1.b | FDD receive result flag |
| $c90 | 8.b | FD0 receive buffer result status |
| $c98 | 8.b | FD1 〃 |
| $ca0 | 8.b | FD2 〃 |
| $ca8 | 8.b | FD3 〃 |
Misc
| Address | Size | Description |
|---|---|---|
| $cb0 | 1.b | Unused |
| $cb1 | 3.b | Mouse receive data (set after 3 bytes are ready |
| $cb4 | 1.b | Number of SASI-HD |
| $cb5 | 1.b | RS-232C Receive data mask (low bit becomes 1 by bit length(?)) |
Sysport
| Address | Size | Description |
|---|---|---|
| $cb6 | 1.b | System port MPU type(0:68000 1:68010 2:68020 3:68030 4:68040) |
| $cb7 | 1.b | 〃 MPU clock (0:10 1:16 2:20 3:25 4:33 5:40 6:50 MHz unit) |
| $cb8 | 1.b | ROM wait loop count (1ms time in dbra empty loop) |
| $cba | 1.b | RAM〃 |
IOCS Work List(ROM version 1.30)
Sysport
| Address | Size | Description |
|---|---|---|
| $cbc | 1.b | MPU type (0:68000 1:68010 2:68020 3:68030 4:68040 6:68060) |
| $cbd | 1.b | FPU present (0:no 1:yes) |
| $cbe | 1.b | MMU present (〃) |
| $cbf | 1.b | Startup information (0:Power on -1:Reset -2:Hot start) |
| $cc0 | 1.b | SCSI transfer size |
| $cc1 | 1.b | Unused |
| $cc2 | 1.b | Main body ID conformance inspection flag (-1: checked) |
| $cc3 | 1.b | SCSI not connected flag (if bit for each ID is 1 it is unusable) |
IOCS Disk Stuff?
| Address | Size | Description |
|---|---|---|
| $cc4 | 1.l | IOCS _B_VERIFY Process address storage buffer |
| $cc8 | 2.l | Unknown |
| $cd0 | 1.l | IOCS _B_WRITE 〃 |
| $cd4 | 1.l | IOCS _B_READ 〃 |
| $cd8 | 3.l | Unknown |
| $ce4 | 1.l | IOCS _B_FORMAT 〃 |
Various
| Address | Size | Description |
|---|---|---|
| $d00 | 1.l | FD extended PDA constant table address acquisition processing address |
| $d04 | 1.l | Extended FDD address of motor-on processing |
| $d08 | 1.w | Text scrolling method (0: raster copy -1: soft control) |
| $d0a | 1.w | Smooth scroll mode (0: jump 4, 8, 16: smooth) |
| $d0c | 1.w | Cursor flashing enable switch (0: blinking -1: displayed) |
| $d0e | 1.w | 〃 inverted start line x 4 |
| $d10 | 2.b | 〃 inversion pattern |
| $d12 | 1.l | BEEP sound processing address (valid when BEEP sound address is -1) |
| $d16 | 1.l | ESC processing address (^[[ system only, standard if 0) |
| $d1a | 1.w | Graphics drawing mode (0: normal 1: inverted) |
| $d1c | 1.w | _TXXLINE/_TXYLINE length decrease value |
Others
| Address | Size | Description |
|---|---|---|
| $cec | 1.b | SCHDISK build-in flag (bit for each ID is already set to 1) |
x68000/iocs_work_area.txt · Last modified: by neko68k
