Table of Contents

IOCS WORK MANUAL

IOCS Work List(ROM version 1.10)

Keyboard

AddressSizeDescription
$80016.bKey press state
$810 1.bKeyboard LED status
$811 1.bShift key state
$812 1.wKey buffer data bytes
$814 1.l〃 write pointer
$818 1.l〃 read pointer
$81c64.wkey buffer

Serial

AddressSizeDescription
$89c 1.wRS-232C receive buffer data byte count
$89e 1.l〃 〃 write pointer
$8a2 1.l〃 〃 read pointer
$8a664.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

AddressSizeDescription
$92a 1.wMouse data receive byte count
$92c 1.l〃 receive buffer write pointer
$930 3.b〃 receive buffer
$933 1.bCurrent MSCTRL terminal state
$934 1.lMouse receive data processing address (soft keyboard)
$948 1.l〃 (mouse cursor)
$93c 1.bCRT mode

T-VRAM

AddressSizeDescription
$93d 1.bNumber of graphic pages(?)
$93e 1.lText number of bytes in 1 line
$942 1.wText operation target page number
$944 1.l〃 starting address of plane
$948 1.lText display start address offset
$94c 1.lStart address of soft keyboard drawing plane(X68000 only)
$950 1.w〃 display X coordinate
$952 1.w〃 Y
$954 1.wText 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

AddressSizeDescription
$95c 1.lStart address of graphics operation page
$960 1.lNumber 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

AddressSizeDescription
$970 1.wNumber of text digits - 1
$972 1.wNumber of text rows - 1
$974 1.wCursor X coordinate
$976 1.w〃 Y coordinate
$978 1.lBEEP sound PCM data address
$97c 1.w〃 Data length
$97e 1.lExtended ESC sequence processing address
$982 1.lESC sequence buffer write pointer
$98610.bESC sequence buffer (from ESC next)
$990 1.b1st byte of double-byte character
$991 1.bCursor display status (0:off !0:on)
$992 1.bCursor flashing switch (0:off !0:on)
$993 1.bApplication cursor flashing switch (0:on !0:off)
$994 1.bText display color
$995 1.b〃 save buffer
$996 1.lcursor coordinate storage buffer

Font Addresses

AddressSizeDescription
$99a 1.lFont 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

AddressSizeDescription
$9b2 1.wMouse data receive timer initial value
$9b4 1.w〃 timer counter
$9b6 1.l〃 processing address
$9ba 1.wCursor flashing timer initial value
$9bc 1.w〃 timer counter
$9be 1.l〃 processing address
$9c2 1.wFD motor stop timer initial value
$9c4 1.w〃 timer counter
$9c6 1.l〃 processing address
$9ca 1.wAlarm power off timer initial value
$9cc 1.w〃 timer counter
$9ce 1.l〃 processing address

Misc

AddressSizeDescription
$9d2 1.lTime to power off
$9d6 1.lUptime (1 minute granularity)
$9da 1.bSetting value of OPM register $1b
$9db 1.bUnused
$9dc 1.bGraphics screen usage mode
$9dd 1.bText 〃
$9de 1.bROM debugger start switch (0: off !0: on)
$9df 1.bHow to start
$9e0 1.bStartup unit number(PDA)

Peripheral Status

AddressSizeDescription
$9e1 1.bFD 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.bFDC LEDCTRL/EJECTMASK setting
$9e6 4.w〃 drive status/disk exchange flag
$9ee10.b〃 command buffer
$9f8 6.bSASI command buffer
$9fe16.b〃 capacity flag(?)
$a0e 1.wRunning IOCS call number(-1 if not running)

Printer

AddressSizeDescription
$a10 1.bPrinter abort flag
$a11 1.b〃 kanji mode flag (0:alhpanumeric !0:kanji)
$a12 1.b〃 1st byte of double-byte character
$a13 1.bNumber of printed lines to date
$a14 1.w〃 number of printed digits
$a1698.bPrinter parameters
$a78 1.bNumber of lines of 1 page - 1
$a79 1.bNumber of digits of one line - 1

Soft keyboard/Mouse cursor

AddressSizeDescription
$a7a 1.lSoft keyboard display plane start address (plane 3)
$a7e 1.l〃 (plane 2)
$a82 1.wVSYNC check flag when drawing mouse cursor (0:off !0:on)
$a84 1.wMinimum travel distance to consider as dragging - 1
$a86 1.wAnimation speed of mouse cursor
$a88 1.wUnknown($0000)
$a8a 1.wUnknown($00f6)
$a8c 1.wColumn 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.wUnknown(1024)
$a96 1.wUnknown(1008)
$a98 1.wNumber of text bytes per line
$a9a 1.wMouse 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.bMouse cursor display switch (0: Erase !0: Display)
$aa3 1.bNot used
$aa4 7.lPointer to pattern data base (6+1 pieces)(?)
$ac0 1.wMouse cursor animation display number
$ac2 1.w〃 speed counter
$ac4 1.wMouse cursor animation flag (-1: animate)
$ac6 1.wMouse left button state (0: not pressed -1: pressed)
$ac8 1.w〃 right button〃
$aca 1.wMovement amount in mouse X direction
$acc 1.w〃 Y direction〃
$ace 1.wMouse cursor X coordinate
$ad0 1.w〃 Y coordinate
$ad2 1.w〃 X coordinate save buffer
$ad4 1.w〃 Y coordinate〃
$ad6 1.wHotspot X coordinate
$ad8 1.w〃 Y coordinate
$ada 1.wMouse cursor display start column
$adc 1.w〃 line
$ade 1.wMouse IOCS call processing flag (-1: in processing)
$ae4 6.w〃 register temporary storage area
$af064.bText save buffer (plane 2)
$b3064.b〃 (plane 3)
$b7016.lPointer to mouse cursor pattern data
$bb0 1.wSoft keyboard X coordinate
$bb2 1.w〃 Y coordinate
$bb4 1.wDrag start X coordinate
$bb6 1.w〃 Y coordinate
$bb8 1.wKey code of the key pressed on the soft keyboard
$bba 1.l〃 key data address
$bbe 1.bMouse status at the last processing (button state)
$bbf 1.bMouse receive data processing flag (bit 7=1: processing bit 0=1: Soft keyboard displayed)
$bc0 1.bSoft keyboard key input repeat counter
$bc1 1.bSoft keyboard control mode
$bc2 1.bMouse cursor/soft keyboard display status
$bc3 1.bSoft keyboard key pressed flag (0: not pressed 1: pressed)
$bc4 1.bSoft keyboard processing flag (-1: processing)
$bc5 1.bSpecial key processing flag (bit 0~3: corresponding to trap #10~13)

On-screen calculator

AddressSizeDescription
$bc6 1.bCalculator 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
$bd022.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)
$c1b16.b〃 numeric string buffer
$c2b 6.b〃 base number 〃
$c31 1.bUnused

ADPCM

AddressSizeDescription
$c32 1.bADPCM playback/recording mode (bit 8=1: split transfer mode)
$c33 1.b〃 DMA transfer error status
$c34 1.bDMA channel 2 transfer mode
$c35 1.b〃 error status

Font Stuff

AddressSizeDescription
$c3616.b6*12 buffer for font acquisition
$c4672.bBuffer for creating fonts
$c8e 1.bUnused

FDD Status

AddressSizeDescription
$c8f 1.bFDD receive result flag
$c90 8.bFD0 receive buffer result status
$c98 8.bFD1 〃
$ca0 8.bFD2 〃
$ca8 8.bFD3 〃

Misc

AddressSizeDescription
$cb0 1.bUnused
$cb1 3.bMouse receive data (set after 3 bytes are ready
$cb4 1.bNumber of SASI-HD
$cb5 1.bRS-232C Receive data mask (low bit becomes 1 by bit length(?))

Sysport

AddressSizeDescription
$cb6 1.bSystem 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.bROM wait loop count (1ms time in dbra empty loop)
$cba 1.bRAM〃

IOCS Work List(ROM version 1.30)

Sysport

AddressSizeDescription
$cbc1.bMPU type (0:68000 1:68010 2:68020 3:68030 4:68040 6:68060)
$cbd1.bFPU present (0:no 1:yes)
$cbe1.bMMU present (〃)
$cbf1.bStartup information (0:Power on -1:Reset -2:Hot start)
$cc01.bSCSI transfer size
$cc11.bUnused
$cc21.bMain body ID conformance inspection flag (-1: checked)
$cc31.bSCSI not connected flag (if bit for each ID is 1 it is unusable)

IOCS Disk Stuff?

AddressSizeDescription
$cc41.lIOCS _B_VERIFY Process address storage buffer
$cc82.lUnknown
$cd01.lIOCS _B_WRITE 〃
$cd41.lIOCS _B_READ 〃
$cd83.lUnknown
$ce41.lIOCS _B_FORMAT 〃

Various

AddressSizeDescription
$d001.lFD extended PDA constant table address acquisition processing address
$d041.lExtended FDD address of motor-on processing
$d081.wText scrolling method (0: raster copy -1: soft control)
$d0a1.wSmooth scroll mode (0: jump 4, 8, 16: smooth)
$d0c1.wCursor flashing enable switch (0: blinking -1: displayed)
$d0e1.w〃 inverted start line x 4
$d102.b〃 inversion pattern
$d121.lBEEP sound processing address (valid when BEEP sound address is -1)
$d161.lESC processing address (^[[ system only, standard if 0)
$d1a1.wGraphics drawing mode (0: normal 1: inverted)
$d1c1.w_TXXLINE/_TXYLINE length decrease value

Others

AddressSizeDescription
$cec1.bSCHDISK build-in flag (bit for each ID is already set to 1)