1629
|
1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
2 ; scf
|
|
3 ;
|
|
4 ; $Id$
|
|
5 ;
|
|
6 ; SCF stands for 'Sequential Character Filemanager' and is a package of subroutines
|
|
7 ; that define the logical structure of a serial device.
|
|
8 ;
|
|
9 ; The data structures in this file give SCF its 'personality' and are used
|
|
10 ; by SCF itself, as well as applications that will require disk I/O.
|
|
11 ;
|
|
12 ; Edt/Rev YYYY/MM/DD Modified by
|
|
13 ; Comment
|
|
14 ; ------------------------------------------------------------------
|
|
15 ; 2004/07/02 Boisy G. Pitre
|
|
16 ; Started
|
|
17
|
|
18 .title Sequential File Manager Definitions
|
|
19
|
|
20 .area SCF (ABS)
|
|
21
|
|
22 .page
|
|
23 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
24 ; SCF Device Descriptor Offsets
|
|
25 ;
|
|
26 ; These definitions are for SCF device descriptors.
|
|
27
|
|
28 .org M$DTyp
|
|
29 IT.DVC:: .rmb 1 ; Device type (DT.SCF)
|
|
30 IT.UPC:: .rmb 1 ; Uppercase flag
|
|
31 IT.BSO:: .rmb 1 ; Backspace behavior
|
|
32 IT.DLO:: .rmb 1 ; Delete behavior
|
|
33 IT.EKO:: .rmb 1 ; Echo flag
|
|
34 IT.ALF:: .rmb 1 ; Auto linefeed flag
|
|
35 IT.NUL:: .rmb 1 ; End-of-line null count
|
|
36 IT.PAU:: .rmb 1 ; Page pause flag
|
|
37 IT.PAG:: .rmb 1 ; Number of lines per page
|
|
38 IT.BSP:: .rmb 1 ; Backspace character
|
|
39 IT.DEL:: .rmb 1 ; Delete-line character
|
|
40 IT.EOR:: .rmb 1 ; End-of-record character
|
|
41 IT.EOF:: .rmb 1 ; End-of-file character
|
|
42 IT.RPR:: .rmb 1 ; Reprint-line character
|
|
43 IT.DUP:: .rmb 1 ; Duplicate-last-line character
|
|
44 IT.PSC:: .rmb 1 ; Pause character
|
|
45 IT.INT:: .rmb 1 ; Interrupt character
|
|
46 IT.QUT:: .rmb 1 ; Quit character
|
|
47 IT.BSE:: .rmb 1 ; Backspace echo character
|
|
48 IT.OVF:: .rmb 1 ; Bell character
|
|
49 IT.PAR:: .rmb 1 ; Parity
|
|
50 IT.BAU:: .rmb 1 ; Baud rate
|
|
51 IT.D2P:: .rmb 2 ; Attached device name string offset
|
|
52 IT.XON:: .rmb 1 ; X-ON character
|
|
53 IT.XOFF:: .rmb 1 ; X-OFF character
|
|
54 IT.COL:: .rmb 1 ; Number of columns for display
|
|
55 IT.ROW:: .rmb 1 ; Number of rows for display
|
|
56 IT.XTYP:: .rmb 1 ; Extended type (added by BRI)
|
|
57
|
|
58 .ifgt Level-1
|
|
59 ; Window Descriptor Additions
|
|
60 ; For CoCo window, where IT.PAR = $80
|
|
61 .org IT.ROW+1
|
|
62 IT.WND:: .rmb 1 ; Window number (matches device name) ($2E)
|
|
63 IT.VAL:: .rmb 1 ; Use defaults on Init (0=no, 1=yes)
|
|
64 IT.STY:: .rmb 1 ; Screen type default
|
|
65 IT.CPX:: .rmb 1 ; Column start default
|
|
66 IT.CPY:: .rmb 1 ; Row start default
|
|
67 IT.FGC:: .rmb 1 ; Foreground color default
|
|
68 IT.BGC:: .rmb 1 ; Background color default
|
|
69 IT.BDC:: .rmb 1 ; Border color default
|
|
70 .endif
|
|
71
|
|
72
|
|
73 .page
|
|
74 ;;;;;;;;;;;;;;;;;;;;
|
|
75 ; SCF Static Storage
|
|
76 ;
|
|
77 ; SCF devices must reserve this space for SCF
|
|
78 ;
|
|
79 .org V.USER
|
|
80 V.TYPE:: .rmb 1 ; Device type or parity
|
|
81 V.LINE:: .rmb 1 ; Lines left until end of page
|
|
82 V.PAUS:: .rmb 1 ; Immediate Pause request
|
|
83 V.DEV2:: .rmb 2 ; Attached device's static
|
|
84 V.INTR:: .rmb 1 ; Interrupt char
|
|
85 V.QUIT:: .rmb 1 ; Quit char
|
|
86 V.PCHR:: .rmb 1 ; Pause char
|
|
87 V.ERR:: .rmb 1 ; Accumulated errors
|
|
88 V.XON:: .rmb 1 ; X-On char
|
|
89 V.XOFF:: .rmb 1 ; X-Off char
|
|
90 V.KANJI:: .rmb 1 ; Kanji mode flag
|
|
91 V.KBUF:: .rmb 2 ; Kana - Kanji convert routine work address
|
|
92 V.MODADR:: .rmb 2 ; Kana - Kanji convert module address
|
|
93 V.PDLHd:: .rmb 2 ; Open path descriptor list head pointer
|
|
94 V.RSV:: .rmb 5 ; Reserve bytes for future expansion
|
|
95 V.SCF == . ; Total SCF manager static overhead
|
|
96
|
|
97 .page
|
|
98 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
99 ; Sequential Character Path Descriptor Format
|
|
100 ;
|
|
101 ; A path descriptor is created for every new path that is open
|
|
102 ; via the I$Open system call (processed by IOMan). Process
|
|
103 ; descriptors track state information of a path.
|
|
104 ;
|
|
105 .org PD.FST
|
|
106 PD.DV2:: .rmb 2 ; Output device table pointer
|
|
107 PD.RAW:: .rmb 1 ; Read/Write or ReadLn/WritLn mode
|
|
108 PD.MAX:: .rmb 2 ; ReadLn high byte count
|
|
109 PD.MIN:: .rmb 1 ; Devices are "mine" if clear
|
|
110 PD.STS:: .rmb 2 ; Status routine module addr
|
|
111 PD.STM:: .rmb 2 ; Reserved for status routine
|
|
112 .org PD.OPT
|
|
113 .rmb 1 ; Device type
|
|
114 PD.UPC:: .rmb 1 ; Case (0=both, 1=upper only)
|
|
115 PD.BSO:: .rmb 1 ; Backspace (0=BSE, 1=BSE,SP,BSE)
|
|
116 PD.DLO:: .rmb 1 ; Delete (0=BSE over line, 1=CRLF)
|
|
117 PD.EKO:: .rmb 1 ; Echo (0=No Echo)
|
|
118 PD.ALF:: .rmb 1 ; Auto linefeed (0=No auto LF)
|
|
119 PD.NUL:: .rmb 1 ; End of Line null count
|
|
120 PD.PAU:: .rmb 1 ; Page pause (0=No end of page pause)
|
|
121 PD.PAG:: .rmb 1 ; Lines per page
|
|
122 PD.BSP:: .rmb 1 ; Backspace character
|
|
123 PD.DEL:: .rmb 1 ; Delete Line character
|
|
124 PD.EOR:: .rmb 1 ; End of Record character (read only)
|
|
125 PD.EOF:: .rmb 1 ; End of File character
|
|
126 PD.RPR:: .rmb 1 ; Reprint Line character
|
|
127 PD.DUP:: .rmb 1 ; Dup Last Line character
|
|
128 PD.PSC:: .rmb 1 ; Pause character
|
|
129 PD.INT:: .rmb 1 ; Keyboard interrupt character (CTRL-C)
|
|
130 PD.QUT:: .rmb 1 ; Keyboard quit character (CTRL-E)
|
|
131 PD.BSE:: .rmb 1 ; Backspace echo character
|
|
132 PD.OVF:: .rmb 1 ; Line overflow character (BELL)
|
|
133 PD.PAR:: .rmb 1 ; Parity code
|
|
134 PD.BAU:: .rmb 1 ; ACIA baud rate (Color Computer)
|
|
135 PD.D2P:: .rmb 2 ; Offset of DEV2 name
|
|
136 PD.XON:: .rmb 1 ; ACIA X-ON character
|
|
137 PD.XOFF:: .rmb 1 ; ACIA X-OFF character
|
|
138 OPTCNT == .-PD.OPT ; Total user settable options
|
|
139 PD.ERR:: .rmb 1 ; Most recent I/O error status
|
|
140 PD.TBL:: .rmb 2 ; Device table addr (copy)
|
|
141 PD.PLP:: .rmb 2 ; Path Descriptor List Pointer
|
|
142 PD.PST:: .rmb 1 ; Current path status
|
|
143
|
|
144
|
|
145 ; PD.PST values Path Descriptor Status byte
|
|
146 ;
|
|
147 PST.DCD == 0b00000001 ; Set if DCD is lost on Serial port
|
|
148
|
|
149
|
|
150 ; PD.PAR definitions
|
|
151 ;
|
|
152 ; Parity
|
|
153 PARNONE == 0b00000000
|
|
154 PARODD == 0b00100000
|
|
155 PAREVEN == 0b01100000
|
|
156 PARMARK == 0b10100000
|
|
157 PARSPACE == 0b11100000
|
|
158
|
|
159 ; PD.BAU definitions
|
|
160 ;
|
|
161 ; Baud rate
|
|
162 B110 == 0b00000000
|
|
163 B300 == 0b00000001
|
|
164 B600 == 0b00000010
|
|
165 B1200 == 0b00000011
|
|
166 B2400 == 0b00000100
|
|
167 B4800 == 0b00000101
|
|
168 B9600 == 0b00000110
|
|
169 B19200 == 0b00000111
|
|
170 B38400 == 0b00001000
|
|
171 B57600 == 0b00001001
|
|
172 B115200 == 0b00001010
|
|
173 ; Word size
|
|
174 WORD8 == 0b00000000
|
|
175 WORD7 == 0b00100000
|
|
176 ; Stop bits
|
|
177 STOP1 == 0b00000000
|
|
178 STOP2 == 0b00010000
|