diff CoCoOS9/defs/l51.defs @ 31:bd2b07db8917 cocoos9lv2v3

CoCoOS9 version
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Jul 2018 15:16:13 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CoCoOS9/defs/l51.defs	Sat Jul 14 15:16:13 2018 +0900
@@ -0,0 +1,98 @@
+
+* miscellaneous definitions
+HResMaxX equ   639        high resolution X limit
+HResMaxY equ   191        high resolution Y limit
+MousData equ   $0008      arbitrary choice for mouse data area ($0008-$000F)
+PcktSize equ   5          number of bytes in mouse data packet
+SyncData equ   %10000000  initial mouse data byte pattern
+SyncMask equ   %11111000  mask for initial mouse data byte pattern
+
+* 6551 register definitions
+         org   0
+DataReg  rmb   1          receive/transmit data
+StatReg  rmb   1          IRQ/DSR/DCD/error status (read only)
+PRstReg  equ   StatReg    programmed reset (write only)
+CmdReg   rmb   1          command (parity/echo/Tx IRQ/Rx IRQ/DTR)
+CtrlReg  rmb   1          control (stop bits/word length/Rx clock/baud rate)
+
+* Status bit definitions
+Stat.IRQ equ   %10000000  IRQ occurred
+Stat.DSR equ   %01000000  current DSR input level (0=enabled, 1=disabled)
+Stat.DCD equ   %00100000  current DCD input level (0=enabled, 1=disabled)
+Stat.TxE equ   %00010000  Tx register empty
+Stat.RxF equ   %00001000  Rx register full
+Stat.Ovn equ   %00000100  overrun error
+Stat.Frm equ   %00000010  framing error
+Stat.Par equ   %00000001  parity error
+
+Stat.Err equ   Stat.Ovn!Stat.Frm!Stat.Par status error bits
+Stat.Flp equ   $00        all status bits active when set
+Stat.Msk equ   Stat.RxF!Stat.Ovn!Stat.Frm!Stat.Par active IRQ bits
+
+* Command bit definitions
+Cmd.Par  equ   %11100000  see parity table below
+Cmd.Echo equ   %00010000  Rx echo (0=disabled, 1=enabled)
+Cmd.TxIC equ   %00001100  see Tx IRQ control table below
+Cmd.RxIE equ   %00000010  Rx IRQ enable (0=enabled, 1=disabled)
+Cmd.DTR  equ   %00000001  DTR output (0=disabled, 1=enabled)
+
+* parity table
+Par.None equ   %00000000
+Par.Odd  equ   %00100000
+Par.Even equ   %01100000
+Par.Mark equ   %10100000
+Par.Spac equ   %11100000
+
+* Tx IRQ control table
+TIC.Off  equ   %00000000  RTS disabled, Tx IRQ disabled
+TIC.On   equ   %00000100  RTS enabled, Tx IRQ enabled
+TIC.RTS  equ   %00001000  RTS enabled, Tx IRQ disabled
+TIC.Brk  equ   %00001100  RTS enabled, Tx line break
+
+* Control bit definitions
+Ctl.Stop equ   %10000000  stop bits (clear=1, set=2)
+Ctl.DBit equ   %01100000  see data bit table below
+Ctl.RClk equ   %00010000  Rx clock source (0=external, 1=internal)
+Ctl.Baud equ   %00001111  see baud rate table below
+
+* data bit table
+DB.5     equ   %01100000  five data bits per character
+DB.6     equ   %01000000  six data bits per character
+DB.7     equ   %00100000  seven data bits per character
+DB.8     equ   %00000000  eight data bits per character
+
+* baud rate table
+         org   0
+BR.ExClk rmb   1          16x external clock
+BR.00050 rmb   1          50 baud
+BR.00075 rmb   1          75 baud
+BR.00110 rmb   1          109.92 baud
+BR.00135 rmb   1          134.58 baud
+BR.00150 rmb   1          150 baud
+BR.00300 rmb   1          300 baud
+BR.00600 rmb   1          600 baud
+BR.01200 rmb   1          1200 baud
+BR.01800 rmb   1          1800 baud
+BR.02400 rmb   1          2400 baud
+BR.03600 rmb   1          3600 baud
+BR.04800 rmb   1          4800 baud
+BR.07200 rmb   1          7200 baud
+BR.09600 rmb   1          9600 baud
+BR.19200 rmb   1          19200 baud
+
+* Btn.Cntr bit definitions
+BC.Butn1 equ   %00100000  button #1 (left, 1 = pressed)
+BC.Butn2 equ   %00010000  button #2 (middle, 1 = pressed)
+BC.Butn3 equ   %00001000  button #3 (right, 1 = pressed)
+BC.RxCnt equ   %00000111  Rx data counter
+
+BC.Butns equ   BC.Butn1!BC.Butn2!BC.Butn3 mask for all buttons
+
+
+* mouse static data area definitions
+         org   0
+Btn.Cntr rmb   1          mouse button status and Rx data counter
+Buffer   rmb   3          Rx buffer for 1st 3 bytes of XY mouse data (must start at 1,u)
+CrntXPos rmb   2          mouse X position (0 to HResMaxX)
+CrntYPos rmb   2          mouse Y position (0 to HResMaxY*2)
+