annotate level2/modules/scf.asm @ 2018:505c8d261ef6

Futher division of krn, commnents added
author boisy
date Wed, 08 Mar 2006 01:58:50 +0000
parents 1e312b144f4d
children 2004026c8f36
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1 ********************************************************************
1424
32f1dae476b7 Fixed references in source from OS-9 to NitrOS-9 where appropriate
boisy
parents: 1415
diff changeset
2 * SCF - NitrOS-9 Level 2 Sequential Character File Manager
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
3 *
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
4 * $Id$
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
5 *
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
6 * This contains an added SetStat call to allow placing prearranged data
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
7 * into the keyboard buffer of ANY SCF related device.
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
8 *
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
9 * Usage:
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
10 *
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
11 * Entry: X = Pointer to the string
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
12 * Y = Length of the string
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
13 * A = Path number
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
14 * B = SS.Fill ($A0) (syscall SETSTAT function call number)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
15 * NOTE: If high bit of Y is set, no carriage return will be appended to
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
16 * the read buffer (used in Shellplus V2.2 history)
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
17 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
18 * This also includes Kevin Darlings SCF Editor patches.
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
19 *
1348
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
20 * Edt/Rev YYYY/MM/DD Modified by
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
21 * Comment
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
22 * ------------------------------------------------------------------
1348
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
23 * 1993/04/20 ???
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
24 * V1.09:
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
25 * - Speeded up L05CC (write char to device) routine by a few cycles
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
26 * - Slightly optimized Insert char.
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
27 * - Move branch table so Read & ReadLn are 1 cycle faster each; fixed
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
28 * SS.Fill so size is truncated @ 256 bytes.
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
29 * - Added NO CR option to SS.Fill (for use with modified Shellplus V2.2
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
30 * command history).
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
31 *
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
32 * 1993/04/21 ???
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
33 * Slight speedup to some of ReadLn parsing, TFM's in Open/Close.
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
34 * - More optimization to read/write driver calls
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
35 * - Got rid of branch table @ L05E3 for speed
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
36 *
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
37 * 1993/05/21 ???
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
38 * V1.10:
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
39 * Added Boisy Pitre's patch for non-sharable devices.
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
40 * - Saved 4 cycles in routine @ L042B
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
41 * - Modified Boisy's routine to not pshs/puls B (saves 2 cycles).
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
42 * - Changed buffer prefill of CR's to save 1 byte.
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
43 *
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
44 * 1993/07/27 ???
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
45 * V1.11:
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
46 * Changed a BRA to a LBRA to a straight LBRA in L0322.
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
47 * - Optimized path option character routine @ L032C
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
48 *
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
49 * 1993/08/03 ???
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
50 * Modified vector table @ L033F to save 1 cycle on PD.PSC
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
51 * - Sped up uppercase conversion checks for ReadLn & WritLn
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
52 * - Changed 2 BRA's to L02F9 to do an LBRA straight to L05F8 (ReadLn loop)
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
53 * - Moved L0565 routine so Reprint line, Insert & Delete char (on ReadLn)
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
54 * are 1 cycle faster / char printed
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
55 * - Changed 2 references to L0420 to go straight to L0565
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
56 * - Sped up ReadLn loop by 2 or 3 cycles per char read
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
57 *
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
58 * 1993/09/21 ???
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
59 * V1.12:
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
60 * Sped up L0435 by 1 or 2 cycles (depending on branch)
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
61 * - Changed LDD ,S to TFR X,D (saves 1 cycle) @ L04F1 (Write & WritLn)
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
62 * - Modified L04F1 to use W without TFR (+1 byte, -3 cycles) (Write)
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
63 *
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
64 * 1993/11/09 ???
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
65 * Took LDX #0/LDU PD.BUF,y from L03B5 & merged in @ L028A, L02EF & L0381.
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
66 * Also changed BEQ @ L03A5 to skip re-loading X with 0.
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
67 *
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
68 * 1993/11/10 ???
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
69 * Moved L04B2 routine to allow a couple of BSR's instead of LBSR's In READ.
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
70 * - Moved driver call right into READ loop (should save 25 cycles/char read)
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
71 * - Moved driver call right into L0565 (should save 12 cycles/char written on echo,
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
72 * line editing, etc.)
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
73 *
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
74 * 1993/11/26 ???
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
75 * Moved L02FE (ReadLn parsing) to end where ReadLn routine is moved L03E2
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
76 * so Read loop would be optimized for it (read char from driver) instead of
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
77 * L042B (write filled buffer to caller).
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
78 * Changed LDA #C$NULL to CLRA.
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
79 *
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
80 * 1993/12/01 ???
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
81 * Modified device write call (L056F) to preserve Y as well, to cut down on
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
82 * PSHS/PULS.
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
83 * - Changed L03E2 & L03DA to exit immediately if PD.DEV or PD.DV2 (depending
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
84 * on which routine) is empty (eliminated redundant LEAX ,X).
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
85 *
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
86 * 1994/05/31 ???
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
87 * Attempted mode to L03F1 to eliminate LDW #D$READ, changed:
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
88 * LDX V$DRIV,x
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
89 * ADDW M$Exec,x
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
90 * JSR w,x
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
91 * to:
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
92 * LDW V$DRIV,x
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
93 * ADDW M$Exec,w
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
94 * JSR D$READ,w
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
95 * Did same to L05C9 & L056F (should speed up each by 1 cycle)
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
96 *
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
97 * 1994/06/07 ???
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
98 * Attempted to modify all M$Exec calls to use new V$DRIVEX (REQUIRES NEW IOMAN)
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
99 * - L01FA (Get/SetStat), L03F1 (Read), L05C9 (Write), L056F (Write)
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
100 * - Changed L046A to use LDB V.BUSY,x...CMPB ,s...TFR B,A
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
101 *
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
102 * 1994/06/08 ???
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
103 * Changed TST <PD.EKO,y in read loop (L02BC) to LDB PD.EKO,y
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
104 * - Changed LEAX 1,X to LDB #1/ABX @ L02C4
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
105 * - Changed LEAX >L033F,pc @ L032C to use < (8 bit) version
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
106 * - Modified L02E5 to use D instead of X, allowing TSTA, and faster exit on 0 byte
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
107 * just BRAnching to L0453
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
108 *
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
109 * 1994/06/09 ???
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
110 * Changed LEAX 1,X to LDB #1/ABX @ L053D, L05F8, L0312, L0351, L03B8
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
111 * - Changed to L0573: All TST's changed to LDB's
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
112 * - Changed Open/Create init to use LEAX,PC instead of BSR/PULS X
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
113 * - Changed TST PD.CNT,y to LDA PD.CNT,y @ close
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
114 * - Eliminated L010D, changed references to it to go to L0129
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
115 * - Eliminated useless LEAX ,X @ L0182, and changed BEQ @ L0182 to go to L012A
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
116 * instead of L0129 (speeds CLOSE by 5 or 10 cycles)
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
117 * - Moved L06B9 into L012B, eliminate BSR/RTS, plus
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
118 * - Changed TST V.TYPE,x to LDB V.TYPE,x
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
119 * - Moved L0624 to just before L05F8 to eliminate BRA L05F8 (ReadLn)
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
120 * - Changed TST PD.EKO,y @ L0413 to LDB PD.EKO,y
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
121 * - Moved L0413-L0423 routines to later in code to allow short branches
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
122 * - As result of above, changed 6 LBxx to Bxx
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
123 * - Changed TST PD.MIN,y @ L04BB to LDA PD.MIN,y
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
124 * - Changed TST PD.RAW,y/TST PD.UPC,y @ L0523 to LDB's
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
125 * - Changed TST PD.ALF,y @ L052A to LDB
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
126 * - L053D: Moved TST PD.RAW,y to before LDA -1,u to speed up WRITE, changed it to LDB
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
127 *
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
128 * 1994/06/10 ???
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
129 * Changed TST PD.ALF,y to LDB @ L052A
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
130 * - Changed CLR V.WAKE,u to CLRA/STA V.WAKE,u @ L03F1 (Read)
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
131 * - Changed CLR V.BUSY,u to CLRA/STA V.BUSY,u @ L045D
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
132 * - Changed CLR PD.MIN,y to CLRA/STA PD.MIN,y, moved before LDA P$ID,x @ L04A7
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
133 * - Changed CLR PD.RAW,y @ L04BB to STA PD.RAW, since A already 0 to get there
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
134 * - Changed CLR V.PAUS,u to CLRA/STA V.PAUS,u @ L05A2
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
135 * - Changed TST PD.RAW,y to LDA PD.RAW,y @ L05A2
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
136 * - Changed TST PD.ALF,y to LDA PD.ALF,y @ L05A2
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
137 * - Changed CLR V.WAKE,u to CLRB/STB V.WAKE,u @ L05C9
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
138 * - Changed CLR V.WAKE,u to CLRB/STB V.WAKE,u @ L056F
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
139 * - Changed TST PD.UPC,y to LDB PD.UPC,y @ L0322
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
140 * - Changed TST PD.DLO,y/TST PD.EKO,y to LDB's @ L03A5
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
141 *
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
142 * 1994/06/16 ???
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
143 * Changed TST PD.UPC,y to LDB PD.UPC,y @ L0322
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
144 * - Changed TST PD.BSO,y to LDB PD.BSO,y @ L03BF
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
145 * - Changed TST PD.EKO,y to LDB PD.EKO,y @ L03BF
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
146 *
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
147 * 2002/10/11 Boisy G. Pitre
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
148 * Merged NitrOS-9 and TuneUp versions for single-source maintenance. Note that
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
149 * the 6809 version of TuneUp never seemed to call GrfDrv directly to do fast screen
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
150 * writes (see note around g.done label).
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
151 *
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
152 * 16r2 2002/05/16 Boisy G. Pitre
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
153 * Removed pshs/puls of b from sharable code segment for non-NitrOS-9 because it was
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
154 * not needed.
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
155 *
8e804211cb25 Fixed sources to have new style change logs at top
boisy
parents: 1252
diff changeset
156 * 16r3 2002/08/16 Boisy G. Pitre
1424
32f1dae476b7 Fixed references in source from OS-9 to NitrOS-9 where appropriate
boisy
parents: 1415
diff changeset
157 * Now uses V$DRIVEX.
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
158 *
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
159 * 16r4 2004/07/12 Boisy G. Pitre
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
160 * 6809 version now calls the FAST TEXT entry point of GrfDrv.
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
161
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
162 nam SCF
1424
32f1dae476b7 Fixed references in source from OS-9 to NitrOS-9 where appropriate
boisy
parents: 1415
diff changeset
163 ttl NitrOS-9 Level 2 Sequential Character File Manager
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
164
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
165 IFP1
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
166 use defsfile
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
167 use scfdefs
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
168 ENDC
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
169
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
170 tylg set FlMgr+Objct
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
171 atrv set ReEnt+rev
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
172 rev set 4
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
173 edition equ 16
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
174
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
175 mod eom,SCFName,tylg,atrv,SCFEnt,0
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
176
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
177 SCFName fcs /SCF/
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
178 fcb edition
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
179
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
180
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
181 * Default input buffer setting for SCF devices when Opened/Created
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
182 * 123456789!123456789!1234567890
697
2ec2125b6527 Shortened secret message, removed useless ldu
boisy
parents: 536
diff changeset
183 *msg fcc 'by B.Nobel,C.Boyle,W.Gale-1993'
1424
32f1dae476b7 Fixed references in source from OS-9 to NitrOS-9 where appropriate
boisy
parents: 1415
diff changeset
184 msg fcc 'www.nitros9.org'
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
185 msgsize equ *-msg Size of default input buffer message
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
186 fcb C$CR 2nd CR for buffer pad fill
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
187 blksize equ 256-msgsize Size of blank space after it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
188
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
189 * Return bad pathname error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
190 opbpnam puls y
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
191 bpnam comb Set carry for error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
192 ldb #E$BPNam Get error code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
193 openerr rts Return to caller
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
194
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
195 * I$Create/I$Open entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
196 * Entry: Y= Path dsc. ptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
197 open ldx PD.DEV,y Get device table pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
198 stx PD.TBL,y Save it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
199 ldu PD.RGS,y Get callers register stack pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
200 pshs y Save path descriptor pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
201 ldx R$X,u Get pointer to device pathname
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
202 os9 F$PrsNam Parse it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
203 bcs opbpnam Error, exit
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
204 tsta End of pathname?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
205 bmi open1 Yes, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
206 leax ,y Point to actual device name
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
207 os9 F$PrsNam Parse it again
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
208 bcc opbpnam Return to caller with bad path name if more
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
209 open1 sty R$X,u Save updated name pointer to caller
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
210 puls y Restore path descriptor pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
211 ldd #256 Get size of input buffer in bytes
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
212 os9 F$SRqMem Allocate it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
213 bcs openerr Can't allocate it return with error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
214 stu PD.BUF,y Save buffer address to path descriptor
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
215 leax <msg,pc Get ptr to init string
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
216
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
217 IFNE H6309
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
218
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
219 ldw #msgsize get size of default message
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
220 tfm x+,u+ Copy it into buffer (leaves X pointing to 2nd CR)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
221 ldw #blksize Size of rest of buffer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
222 tfm x,u+ Fill rest of buffer with CR's
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
223
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
224 ELSE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
225
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
226 CopyMsg lda ,x+
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
227 sta ,u+
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
228 decb
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
229 cmpa #C$CR
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
230 bne CopyMsg
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
231 CopyCR sta ,u+
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
232 decb
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
233 bne CopyCR
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
234
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
235 ENDC
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
236
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
237 ldu PD.DEV,y Get device table entry address
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
238 beq bpnam Doesn't exist, exit with bad pathname error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
239 ldx V$STAT,u Get devices' static storage address
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
240 lda PD.PAG,y Get devices page length
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
241 sta V.LINE,x Save it to devices static storage
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
242 ldx V$DESC,u Get descriptor address
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
243 ldd PD.D2P,y Get offset to device name (duplicate from dev dsc)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
244 beq L00CF None, skip ahead
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
245
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
246 IFNE H6309
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
247
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
248 addr d,x Point to device name in descriptor
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
249 lda PD.MOD,y Get device mode (Read/Write/Update)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
250 lsrd ??? (swap Read/Write bits around in A?)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
251
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
252 ELSE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
253
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
254 leax d,x
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
255 lda PD.MOD,y Get device mode (Read/Write/Update)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
256 lsra
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
257 rorb
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
258
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
259 ENDC
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
260
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
261 lsra
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
262 rolb
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
263 rola
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
264 rorb
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
265 rola
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
266 pshs y Save path descriptor pointer temporarily
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
267 ldy <D.Proc Get current process pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
268 ldu <D.SysPrc Get system process descriptor pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
269 stu <D.Proc Make system current process
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
270 os9 I$Attach Attempt to attach to device name in device desc.
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
271 sty <D.Proc Restore old current process pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
272 puls y Restore path descriptor pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
273 bcs L0111 Couldn't attach to device, detach & exit with error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
274 stu PD.DV2,y Save new output (echo) device table pointer
697
2ec2125b6527 Shortened secret message, removed useless ldu
boisy
parents: 536
diff changeset
275 * ldu PD.DEV,y Get device table pointer
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
276 L00CF ldu V$STAT,u Point to it's static storage
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
277
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
278 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
279
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
280 clrd
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
281
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
282 ELSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
283
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
284 clra
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
285 clrb
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
286
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
287 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
288
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
289 std PD.PLP,y Clear out path descriptor list pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
290 sta PD.PST,y Clear path status: Carrier not lost
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
291 pshs d Save 0 on stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
292 ldx V.PDLHd,u Get path descriptor list header pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
293 * 05/25/93 mod - Boisy Pitre's non-sharable device patches
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
294 beq Yespath No path's open, so we know we can open it
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
295
1167
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
296 pshs u,x Preserve static mem & path dsc. hdr ptrs
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
297 ldu PD.DEV,y Get device table ptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
298 ldx V$DRIV,u Get ptr to device driver
1167
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
299 IFNE H6309
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
300 tim #SHARE.,M$Mode,x Non-sharable driver?
1167
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
301 ELSE
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
302 ldb M$Mode,x
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
303 bitb #SHARE.
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
304 ENDC
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
305 bne NoShare Yes, driver busy
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
306 ldx V$DESC,u Get ptr to device descriptor
1167
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
307 IFNE H6309
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
308 tim #SHARE.,M$Mode,x Non-sharable device?
1167
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
309 ELSE
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
310 ldb M$Mode,x
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
311 bitb #SHARE.
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
312 ENDC
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
313 beq Shrble No, check for carrier status
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
314 NoShare puls u,x Restore regs
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
315 leas 2,s Eat extra stack (including good path count)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
316 comb
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
317 ldb #E$DevBsy Non-sharable device busy error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
318 bra L0111 Go detach device & exit with error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
319 Shrble puls u,x Restore Static mem & path dsc. ptrs
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
320 bra L00E8 Check carrier status
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
321
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
322 Yespath sty V.PDLHd,u Save path descriptor ptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
323 bra L00F8 Go open the path
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
324
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
325 L00E6 tfr d,x Change to PD.PLP path descriptor
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
326 L00E8 ldb PD.PST,x Get Carrier status
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
327 bne L00EF Carrier was lost, don't update count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
328 inc 1,s Carrier not lost, bump up count of good paths
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
329 L00EF ldd PD.PLP,x Get path descriptor list pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
330 bne L00E6 There is one, go make it the current one
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
331 sty PD.PLP,x Save path descriptor ptr as path dsc. list ptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
332 L00F8 lda #SS.Open Internal open call
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
333 pshs a Save it on the stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
334 inc 2,s Bump counter of good paths up by 1
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
335 lbsr L025B Do the SS.Open call to the driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
336 lda 2,s Get counter of good paths
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
337 leas 3,s Eat stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
338 deca Bump down good path count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
339 bne L0129 If more still open, exit without error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
340 blo L010F If negative, something went wrong
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
341 lbra L0250 Set parity/baud & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
342
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
343 L010F bsr L0149 Error, go clear stuff out
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
344 L0111 pshs b,cc Preserve error status
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
345 bsr L0136 Detach device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
346 puls pc,b,cc Restore error status & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
347
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
348 * I$Close entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
349 close pshs cc Preserve interrupt status
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
350 orcc #IntMasks Disable interrupts
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
351 ldx PD.DEV,y Get device table pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
352 bsr L0182 Check it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
353 ldx PD.DV2,y Get output device table pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
354 bsr L0182 Check it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
355 puls cc Restore interrupts
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
356 lda PD.CNT,y Any open images?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
357 beq L012B No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
358 L0129 clra Clear carry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
359 L012A rts Return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
360
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
361 * Detach device & return buffer memory
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
362 L012B bsr L0149
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
363 lda #SS.Close Get setstat code for close
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
364 ldx PD.DEV,y get pointer to device table
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
365 ldx V$STAT,x get static mem ptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
366 ldb V.TYPE,x Get device type \ WON'T THIS SCREW UP WITH
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
367 bmi L0136 Window, skip ahead / MARK OR SPACE PARITY???
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
368 pshs x,a Save close code & X for SS.Close calling routine
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
369 lbsr L025B Not window, go call driver's SS.Close routine
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
370 leas 3,s Purge stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
371 L0136 ldu PD.DV2,y Get output device pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
372 beq L013D Nothing there, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
373 os9 I$Detach Detach it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
374 L013D ldu PD.BUF,y Get buffer pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
375 beq L0147 None defined go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
376 ldd #256 Get buffer size
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
377 os9 F$SRtMem Return buffer memory to system
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
378 L0147 clra Clear carry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
379 rts Return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
380
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
381 L0149 ldx #1
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
382 pshs cc,d,x,y,u
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
383 ldu PD.DEV,y Get device table pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
384 beq L017B None, skip ahead
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
385 ldu V$STAT,u Get static storage pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
386 beq L017B None, skip ahead
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
387 ldx V.PDLHd,u Get path descriptor list header
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
388 beq L017B None, skip ahead
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
389 ldd PD.PLP,y Get path descriptor list pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
390 cmpy V.PDLHd,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
391 bne L0172
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
392 std V.PDLHd,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
393 bne L017B
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
394 clr 4,s Clear LSB of X on stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
395 bra L017B Return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
396
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
397 L016D ldx PD.PLP,x
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
398 beq L0180
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
399 L0172 cmpy PD.PLP,x
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
400 bne L016D
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
401 std PD.PLP,x
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
402
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
403 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
404
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
405 L017B clrd
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
406
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
407 ELSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
408
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
409 L017B clra
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
410 clrb
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
411
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
412 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
413
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
414 std PD.PLP,y
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
415 L0180 puls cc,d,x,y,u,pc
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
416
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
417
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
418 * Check path number?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
419 * Entry: X=Ptr to device table (just LDX'd)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
420 * Y=Path dsc. ptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
421 L0182 beq L012A No device table, return to caller
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
422 ldx V$STAT,x Get static storage pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
423 ldb PD.PD,y Get system path number from path dsc.
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
424 lda PD.CPR,y Get ID # of process currently using path
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
425 pshs d,x,y Save everything
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
426 cmpa V.LPRC,x Current process same as last process using path?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
427 bne L01CA No, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
428 ldx <D.Proc Get current process pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
429 leax P$Path,x Point to local path table
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
430 clra Start path # = 0 (Std In)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
431 L0198 cmpb a,x Same path as one is process' local path list?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
432 beq L01CA Yes, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
433 inca Move to next path
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
434 cmpa #NumPaths Done all paths?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
435 blo L0198 No, keep going
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
436 pshs y Preserve path descriptor pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
437
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
438 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
439
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
440 lda #SS.Relea Release signals SetStat
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
441 ldf #D$PSTA Get Setstat offset
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
442
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
443 ELSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
444
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
445 ldd #SS.Relea*256+D$PSTA
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
446
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
447 ENDC
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
448
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
449 bsr L01FA Execute driver setstat routine
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
450 puls y Restore path pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
451 ldx <D.Proc Get current process pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
452 lda P$PID,x Get parent process ID
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
453 sta ,s Save it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
454 os9 F$GProcP Get pointer to parent process descriptor
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
455 leax P$Path,y Point to local path table
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
456 ldb 1,s Get path number
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
457 clra Get starting path number
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
458 L01B9 cmpb a,x Same path?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
459 beq L01C4 Yes, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
460 inca Move to next path
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
461 cmpa #NumPaths Done all paths?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
462 blo L01B9 No, keep checking
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
463 clr ,s Clear process ID
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
464 L01C4 lda ,s Get process ID
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
465 ldx 2,s Get static storage pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
466 sta V.LPRC,x Store it as last process
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
467 L01CA puls d,x,y,pc Restore & return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
468
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
469 * I$GetStt entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
470 getstt lda PD.PST,y Path status ok?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
471 lbne L04C6 No, terminate process
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
472 ldx PD.RGS,y Get register stack pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
473 lda R$B,x Get function code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
474 bne L01F8 If not SS.Opt, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
475 * SS.Opt Getstat
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
476 pshs a,x,y Preserve registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
477 lda #SS.ComSt Get code for Comstat
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
478 sta R$B,x Save it in callers B
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
479 ldu R$Y,x Preserve callers Y
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
480 pshs u
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
481 bsr L01F8 Send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
482 puls u Restore callers Y
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
483 puls a,x,y Restore registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
484 sta R$B,x Do SS.OPT
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
485 ldd R$Y,x Get com stat
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
486 stu R$Y,x Put original callers Y back
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
487 bcs L01F6 Return if error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
488 std PD.PAR,y Update path descriptor
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
489 L01F6 clrb Clear carry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
490 L01F7 rts Return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
491
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
492 * Execute device driver Get/Set Status routine
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
493 * Entry: A=GetStat/SetStat code
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
494
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
495 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
496
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
497 L01F8 ldf #D$GSTA Get Getstat driver entry offset
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
498 L01FA ldx PD.DEV,y Get device table pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
499 ldu V$STAT,x Get static storage pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
500 ldx V$DRIVEX,x get execution pointer of driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
501 pshs y,u Preserve registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
502 jsr f,x Execute driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
503 puls y,u,pc Restore & return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
504
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
505 ELSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
506
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
507 L01F8 ldb #D$GSTA
1252
275aea78cb87 SCF now fully uses V$DRIVEX saving time and code size
boisy
parents: 1167
diff changeset
508 L01FA ldx PD.DEV,y
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
509 ldu V$STAT,x
1252
275aea78cb87 SCF now fully uses V$DRIVEX saving time and code size
boisy
parents: 1167
diff changeset
510 ldx V$DRIVEX,x
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
511 pshs u,y
1252
275aea78cb87 SCF now fully uses V$DRIVEX saving time and code size
boisy
parents: 1167
diff changeset
512 jsr b,x
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
513 puls y,u,pc
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
514
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
515 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
516
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
517
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
518 * I$SetStt entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
519 setstt lbsr L04A2
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
520 L0212 bsr L021B Check codes
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
521 pshs cc,b Preserve registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
522 lbsr L0453 Wait for device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
523 puls cc,b,pc Restore & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
524
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
525 putkey cmpa #SS.Fill Buffer preload?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
526 bne L01FA No, go execute driver setstat
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
527 IFEQ H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
528 pshs u,y,x
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
529 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
530 ldx <D.Proc Get current process pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
531 lda R$Y,u Get flag byte for CR/NO CR
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
532 pshs a Save it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
533 lda P$Task,x Get task number
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
534 ldb <D.SysTsk Get system task
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
535 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
536 ldx R$X,u Get pointer to data to move
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
537 ldf R$Y+1,u Get number of bytes (max size of 256 bytes)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
538 ldu PD.BUF,y Get input buffer pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
539 clre High byte of Y
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
540 tfr w,y Move size into proper register for F$Move
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
541 ELSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
542 pshs d
525
2e62fb1ec356 Fix for SCF SS.Fill to recognize hi bit of Y
boisy
parents: 372
diff changeset
543 clra
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
544 ldb R$Y+1,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
545 ldx R$X,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
546 ldu PD.BUF,y
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
547 tfr d,y
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
548 puls d
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
549 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
550 * X=Source ptr from caller, Y=# bytes to move, U=Input buffer ptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
551 os9 F$Move Move it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
552 bcs putkey1 Exit if error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
553 tfr y,d Move number of bytes to D
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
554 lda ,s Get CR flag
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
555 bmi putkey1 Don't want CR appended, exit
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
556 lda #C$CR Get code for carriage return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
557 sta b,u Put it in buffer to terminate string
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
558 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
559 putkey1 puls a,pc Eat stack & return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
560 L021B ldf #D$PSTA Get driver entry offset for setstat
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
561 ELSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
562 putkey1 puls a,x,y,u,pc Eat stack & return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
563 L021B ldb #D$PSTA Get driver entry offset for setstat
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
564 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
565 lda R$B,u Get function code from caller
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
566 bne putkey Not SS.OPT, go check buffer load
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
567 * SS.OPT SETSTAT
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
568 ldx PD.PAU,y Get current pause & page
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
569 pshs y,x Preserve Path pointer & pause/page
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
570 ldx <D.Proc Get current process pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
571 lda P$Task,x Get task number
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
572 ldb <D.SysTsk Get system task number
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
573 ldx R$X,u Get callers destination pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
574 leau PD.OPT,y Point to path options
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
575 ldy #OPTCNT Get option length
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
576 os9 F$Move Move it to caller
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
577 puls y,x Restore Path pointer & page/pause status
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
578 bcs L01F7 Return if error from move
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
579 IFEQ H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
580 pshs x
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
581 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
582 ldd PD.PAU,y Get new page/pause status
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
583 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
584 cmpr d,x Same as old?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
585 ELSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
586 cmpd ,s++
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
587 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
588 beq L0250 Yes, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
589 ldu PD.DEV,y Get device table pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
590 ldu V$STAT,u Get static storage pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
591 beq L0250 Go on if none
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
592 stb V.LINE,u Update new line count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
593 L0250 ldx PD.PAR,y Get parity/baud
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
594 lda #SS.ComSt Get code for ComSt
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
595 pshs a,x Preserve them
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
596 bsr L025B Update parity & baud
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
597 puls a,x,pc Restore & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
598
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
599 * Update path Parity & baud
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
600 L025B pshs x,y,u Preserve everything
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
601 ldx PD.RGS,y Get callers register pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
602 ldu R$Y,x Get his Y
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
603 lda R$B,x Get his B
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
604 pshs a,x,y,u Preserve it all
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
605 ldd $10,s Get current parity/baud
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
606 std R$Y,x Put it in callers Y
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
607 lda $0F,s Get function code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
608 sta R$B,x Put it in callers B
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
609 IFEQ H6309
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
610 ldb #$0C
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
611 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
612 lbsr L04A7 Wait for device to be ready
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
613 lbsr L0212 Send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
614 puls a,x,y,u Restore callers registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
615 stu R$Y,x Put back his Y
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
616 sta R$B,x Put back his B
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
617 bcc L0282 Return if no error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
618 cmpb #E$UnkSvc Unknown service request?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
619 beq L0282 Yes, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
620 coma Set carry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
621 L0282 puls x,y,u,pc Restore & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
622
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
623 * I$Read entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
624 read lbsr L04A2 Go wait for device to be ready for us
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
625 bcc L028A No error, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
626 L0289 rts Return with error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
627 L028A inc PD.RAW,y Make sure we do Raw read
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
628 ldx R$Y,u Get number of characters to read
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
629 beq L02DC Return if zero
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
630 pshs x Save character count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
631 ldx #0
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
632 ldu PD.BUF,y Get buffer address
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
633 bsr L03E2 Read 1 character from device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
634 bcs L02A4 Return if error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
635 tsta Character read zero?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
636 beq L02C4 Yes, go try again
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
637 cmpa PD.EOF,y End of file character?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
638 bne L02BC No, keep checking
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
639 L02A2 ldb #E$EOF Get EOF error code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
640 L02A4 leas 2,s Purge stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
641 pshs b Save error code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
642 bsr L02D5 Return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
643 comb Set carry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
644 puls b,pc Restore & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
645
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
646 ******************************
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
647 *
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
648 * SCF file manager entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
649 *
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
650 * Entry: Y = Path descriptor pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
651 * U = Callers register stack pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
652 *
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
653
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
654 SCFEnt lbra open Create path
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
655 lbra open Open path
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
656 lbra bpnam Makdir
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
657 lbra bpnam Chgdir
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
658 lbra L0129 Delete (return no error)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
659 lbra L0129 Seek (return no error)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
660 bra read Read character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
661 nop
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
662 lbra write Write character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
663 lbra readln ReadLn
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
664 lbra writln WriteLn
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
665 lbra getstt Get Status
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
666 lbra setstt Set Status
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
667 lbra close Close path
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
668
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
669 * MAIN READ LOOP (no editing)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
670 L02AD tfr x,d move character count to D
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
671 tstb past buffer end?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
672 bne L02B7 no, go get character from device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
673 * Not often used: only when buffer is full
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
674 bsr L042B move buffer to caller's buffer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
675 ldu PD.BUF,y reset buffer pointer back to start
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
676 * Main char by char read loop
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
677 L02B7 bsr L03E2 get a character from device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
678 bcs L02A4 exit if error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
679 L02BC ldb PD.EKO,y echo turned on?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
680 beq L02C4 no, don't write it to device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
681 lbsr L0565 send it to device write
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
682 L02C4 ldb #1 Bump up char count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
683 abx
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
684 sta ,u+ save character in local buffer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
685 beq L02CF go try again if it was a null
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
686 cmpa PD.EOR,y end of record charcter?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
687 beq L02D3 yes, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
688 L02CF cmpx ,s done read?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
689 blo L02AD no, keep going till we are
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
690
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
691 L02D3 leas 2,s purge stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
692 L02D5 bsr L042B move local buffer to caller
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
693 ldu PD.RGS,y get register stack pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
694 stx R$Y,u save number of characters read
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
695 L02DC bra L0453 update path descriptor and return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
696
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
697 * Read character from device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
698 L03E2 pshs u,y,x Preserve regs
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
699 ldx PD.DEV,y Get device table pointer for input
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
700 beq L0401 None, exit
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
701 ldu PD.DV2,y Get device table pointer for echoed output
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
702 beq L03F1 No echoed output device, skip ahead
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
703 L03EA ldu V$STAT,u Get device static storage ptr for echo device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
704 ldb PD.PAG,y Get lines per page
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
705 stb V.Line,u Store it in device static
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
706 L03F1 tfr u,d Yes, move echo device' static storage to D
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
707 ldu V$STAT,x Get static storage ptr for input
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
708 std V.DEV2,u Save echo device's static storage into input device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
709 clra
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
710 sta V.WAKE,u Flag input device to be awake
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
711 ldx V$DRIVEX,x Get driver execution pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
712 jsr D$READ,x Execute READ routine in driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
713 L0401 puls pc,u,y,x Restore regs & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
714
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
715 * Move buffer to caller
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
716 * Entry: Y=Path dsc. ptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
717 * X=# chars to move
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
718 L042B pshs y,x Preserve path dsc. ptr & char. count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
719 ldd ,s Get # bytes to move
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
720 beq L0451 Exit if none
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
721 tstb Uneven # bytes (not even page of 256)?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
722 bne L0435 Yes, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
723 deca >256, so bump MSB down
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
724 L0435 clrb Force to even page
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
725 ldu PD.RGS,y Get callers register stack pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
726 ldu R$X,u Get ptr to caller's buffer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
727 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
728 addr d,u Offset to even page into buffer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
729 clre Clear MSB of count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
730 ldf 1,s LSB of count on even page?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
731 bne L0442 No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
732 ince Make it even 256
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
733 L0442 lda <D.SysTsk Get source task number
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
734 ELSE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
735 leau d,u
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
736 clra
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
737 ldb 1,s
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
738 bne L0442 No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
739 inca
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
740 L0442 pshs d
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
741 lda <D.SysTsk Get source task number
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
742 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
743 ldx <D.Proc Get destination task number
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
744 ldb P$Task,x
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
745 ldx PD.BUF,y Get buffer pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
746 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
747 tfr w,y Put count into proper register
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
748 ELSE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
749 puls y
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
750 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
751 os9 F$Move Move it to caller
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
752 L0451 puls pc,y,x Restore & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
753
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
754 * I$ReadLn entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
755 readln bsr L04A2 Go wait for device to be ready for us
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
756 bcc L02E5 No error, continue
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
757 rts Error, exit with it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
758 L02E5 ldd R$Y,u Get character count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
759 beq L0453 If none, mark device as un-busy
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
760 tsta Past 256 bytes?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
761 beq L02EF No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
762 ldd #$0100 Get new character count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
763 L02EF pshs d Save character count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
764 ldd #$FFFF Get maximum character count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
765 std PD.MAX,y Store it in path descriptor
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
766 ldx #0 Set character count so far to 0
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
767 ldu PD.BUF,y Get buffer ptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
768 lbra L05F8 Go process readln
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
769
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
770 * Wait for device - Clears out V.BUSY if either Default or output devices are
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
771 * no longer busy
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
772 * Modifies X and A
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
773 L0453 ldx <D.Proc Get current process
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
774 lda P$ID,x Get it's process ID
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
775 ldx PD.DEV,y Get device table pointer from our path dsc.
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
776 bsr L045D Check if it's busy
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
777 ldx PD.DV2,y Get output device table pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
778 L045D beq L0467 Doesn't exist, exit
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
779 ldx V$STAT,x Get static storage pointer for our device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
780 cmpa V.BUSY,x Same process as current process?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
781 bne L0467 No, device busy return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
782 clra
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
783 sta V.BUSY,x Yes, mark device as free for use
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
784 L0467 rts Return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
785
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
786 L0468 pshs x,a Preserve device table entry pointer & process ID
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
787 L046A ldx V$STAT,x Get device static storage address
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
788 ldb V.BUSY,x Get active process ID
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
789 beq L048A No active process, device not busy go reserve it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
790 cmpb ,s Is it our own process?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
791 beq L049F Yes, return without error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
792 bsr L0453 Go wait for device to no longer be busy
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
793 tfr b,a Get process # busy using device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
794 os9 F$IOQu Put our process into the IO Queue
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
795 inc PD.MIN,y Mark device as not mine
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
796 ldx <D.Proc Get current process
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
797 ldb P$Signal,x Get signal code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
798 lda ,s Get our process id # again for L046A
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
799 beq L046A No signal go try again
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
800 coma Set carry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
801 puls x,a,pc Restore device table ptr (eat a) & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
802
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
803 * Mark device as busy;copy pause/interrupt/quit/xon/xoff chars into static mem
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
804 L048A sta V.BUSY,x Make it as process # busy on this device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
805 sta V.LPRC,x Save it as the last process to use device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
806 lda PD.PSC,y Get pause character from path dsc.
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
807 sta V.PCHR,x Save copy in static storage (faster later)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
808 ldd PD.INT,y Get keyboard interrupt & quit chars
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
809 std V.INTR,x Save copies in static mem
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
810 ldd PD.XON,y Get XON/XOFF chars
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
811 std V.XON,x Save them in static mem too
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
812 L049F clra No error & return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
813 puls pc,x,a Restore A=Process #,X=Dev table entry ptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
814
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
815 * Wait for device?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
816 L04A2 lda PD.PST,y Get path status (carrier)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
817 bne L04C4 If carrier was lost, hang up process
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
818 L04A7 ldx <D.Proc Get current process ID
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
819 clra
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
820 sta PD.MIN,y Flag device is mine
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
821 lda P$ID,x Get process ID #
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
822 ldx PD.DEV,y Get device table pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
823 bsr L0468 Busy?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
824 bcs L04C1 No, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
825 ldx PD.DV2,y Get output device table pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
826 beq L04BB Go on if it doesn't exist
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
827 bsr L0468 Busy?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
828 bcs L04C1 No, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
829 L04BB lda PD.MIN,y Device mine?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
830 bne L04A2 No, go wait for it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
831 sta PD.RAW,y Mark device with editing
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
832 L04C1 ldu PD.RGS,y Get register stack pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
833 rts Return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
834
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
835 * Hangup process
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
836 L04C4 leas 2,s Purge return address
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
837 L04C6 ldb #E$HangUp Get hangup error code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
838 cmpa #S$Abort Termination signal (or carrier lost)?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
839 blo L04D3 Yes, increment status flag & return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
840 lda PD.CPR,y Get current process ID # using path
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
841 ldb #S$Kill Get kill signal
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
842 os9 F$Send Send it to process
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
843 L04D3 inc PD.PST,y Set path status
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
844 orcc #Carry Set carry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
845 rts Return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
846
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
847 * I$WritLn entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
848 writln bsr L04A2 Go wait for device to be ready for us
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
849 bra L04E1 Go write
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
850
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
851 * I$Write entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
852 write bsr L04A2 Go wait for device to be ready for us
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
853 inc PD.RAW,y Mark device for raw write
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
854 L04E1 ldx R$Y,u Get number of characters to write
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
855 lbeq L055A Zero so return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
856 pshs x Save character count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
857 ldx #$0000 Get write data offset
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
858 bra L04F1 Go write data
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
859
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
860 L04EC tfr u,d Move current position in PD.BUF to D
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
861 tstb At 256 (end of PD.BUF)?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
862 bne L0523 No, keep writing from current PD.BUF
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
863
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
864 * Get new block of data to write into [PD.BUF]
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
865 * Only allows up to 32 bytes at a time, and puts them in the last 32 bytes of
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
866 * the 256 byte [PD.BUF] buffer. This way, can use TFR U,D/TSTB to see if fin-
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
867 * inshed
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
868 L04F1 pshs y,x Save write offset & path descriptor pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
869 tfr x,d Move data offset to D
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
870 ldu PD.RGS,y Get register stack pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
871 ldx R$X,u Get pointer to users's WRITE string
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
872 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
873 addr d,x Point to where we are in it now
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
874 ldw R$Y,u Get # chars of original write
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
875 subr d,w Calculate # chars we have left to write
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
876 cmpw #64 More than 64?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
877 bls L0508 No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
878 ldw #64 Max size per chunk=64
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
879 L0508 ldd PD.BUF,y Get buffer ptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
880 inca Point to PD.BUF+256 (1 byte past end
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
881 subr w,d Subtract data size
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
882 ELSE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
883 leax d,x
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
884 ldd R$Y,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
885 subd ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
886 cmpd #$0020
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
887 bls L0508
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
888 ldd #$0020
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
889 L0508 pshs d
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
890 ldd PD.BUF,y
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
891 inca
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
892 subd ,s
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
893 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
894 tfr d,u Move it to U
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
895 lda #C$CR Put a carriage return 1 byte before start
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
896 sta -1,u of write portion of buffer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
897 ldy <D.Proc Get current process pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
898 lda P$Task,y Get the task number
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
899 ldb <D.SysTsk Get system task number
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
900 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
901 tfr w,y Get number of bytes to move
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
902 ELSE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
903 puls y
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
904 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
905 os9 F$Move Move data to buffer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
906 puls y,x Restore path descriptor pointer and data offset
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
907
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
908 * at this point, we have
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
909 * 0,s = end address of characters to write
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
910 * X = number of characters written
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
911 * Y = PD pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
912 * U = pointer to data buffer to write
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
913 * Use callcode $06 to call grfdrv (old DWProtSW from previous versions,
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
914 * now unused by GrfDrv
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
915 L0523 ldb PD.PAR,y get device parity: bit 7 set = window
1933
1e312b144f4d Major changes:
boisy
parents: 1650
diff changeset
916 cmpb #$80 is it even potentially a CoWin window?
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
917 bne L0524 no, skip the rest of the crap
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
918
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
919 clrb set to no uppercase conversion
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
920 lda PD.RAW,y get raw output flag
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
921 bne g.raw if non-zero, we do raw writes: no conversion
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
922 ldb PD.UPC,y get uppercase conversion flag: 1 = do uppercase
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
923
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
924 g.raw pshs b,x,y,u save length, PD, data buffer pointers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
925
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
926 lbsr get.wptr get window table ptr into Y
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
927 bcs no.wptr do old method on error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
928
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
929 * now we find out the number of non-control characters to write...
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
930 g.fast lda 5,s grab page number
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
931 inca go to the next page
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
932 clrb at the top of it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
933 subd 5,s take out number of bytes left to write
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
934 pshs b max. number of characters
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
935
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
936 clrb always <256 characters to write
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
937 g.loop lda ,u+ get a character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
938 cmpa #$20 is it a control character?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
939 blo g.done yes, we're done this stint
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
940 tst 1,s get uppercase conversion flag
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
941 beq g.loop1 don't convert
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
942 lbsr L0403 do a lower-uppercase conversion, if necessary
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
943 sta -1,u save again
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
944
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
945 g.loop1 incb done one more character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
946 cmpb ,s done as many as we can?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
947 bne g.loop
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
948
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
949 g.done leas 1,s kill max. count of characters to use
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
950 cmpb #1 one or fewer characters?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
951 bls no.wptr yes, go use old method
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
952
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
953 * IFEQ H6309
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
954 * Note: this was present in the TuneUp version of SCF, and seems to
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
955 * never allow grfdrv to be called directly, so did fast text screens
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
956 * ever work in TuneUp??? - BGP
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
957 * bra no.wptr
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
958 * ENDC
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
959
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
960 * now we call grfdrv...
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
961 ldu 5,s get start pointer again
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
962 abx done B more characters...
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
963 stx 1,s save on-stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
964 lbsr call.grf go call grfdrv: no error possible on return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
965 leau b,u go up B characters in U, too
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
966 stu 5,s save old U, too
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
967 puls b,x,y,u restore registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
968 bra L0544 do end-buffer checks and continue
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
969
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
970 no.wptr puls b,x,y,u restore all registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
971
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
972 L0524 lda ,u+ Get character to write
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
973 ldb PD.RAW,y Raw mode?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
974 bne L053D Yes, go write it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
975 ldb PD.UPC,y Force uppercase?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
976 beq L052A No, continue
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
977 bsr L0403 Make it uppercase
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
978 L052A cmpa #C$LF Is it a Line feed?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
979 bne L053D No, go print it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
980 lda #C$CR Get code for carriage return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
981 ldb PD.ALF,y Auto Line feed?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
982 bne L053D Yes, go print carriage return first
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
983 bsr L0573 Print carriage return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
984 bcs L055D If error, go wait for device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
985 lda #C$LF Now, print the line feed
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
986
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
987 * Write character to device (call driver)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
988 L053D bsr L0573 Go write it to device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
989 bcs L055D If error, go wait for device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
990 ldb #1 Bump up # chars we have written
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
991 abx
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
992 L0544 cmpx ,s Done whole WRITE call?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
993 bhs L0554 Yes, go save # chars written & exit
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
994 ldb PD.RAW,y Raw mode?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
995 lbne L04EC Yes, keep writing
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
996 lda -1,u Get the char we wrote
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
997 lbeq L04EC NUL, keep writing
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
998 cmpa PD.EOR,y End of record?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
999 lbne L04EC No, keep writing
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1000 L0554 leas 2,s Eof record, stop & Eat end of buffer ptr???
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1001 L0556 ldu PD.RGS,y Get callers register pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1002 stx R$Y,u Save character count to callers Y
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1003 L055A lbra L0453 Mark device write clear and return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1004
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1005 * Check for forced uppercase
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1006 L0403 cmpa #'a Less then 'a'?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1007 blo L0412 Yes, leave it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1008 cmpa #'z Higher than 'z'?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1009 bhi L0412 Yes, leave it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1010 suba #$20 Make it uppercase
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1011 L0412 rts Return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1012
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1013 L055D leas 2,s Purge stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1014 pshs b,cc Preserve registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1015 bsr L0556 Wait for device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1016 puls pc,b,cc Restore & return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1017
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1018 * Check for end of page (part of send char to driver)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1019 L0573 pshs u,y,x,a Preserve registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1020 ldx PD.DEV,y Get device table pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1021 cmpa #C$CR Carriage return?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1022 bne L056F No, go print it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1023 ldu V$STAT,x Get pointer to device stactic storage
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1024 ldb V.PAUS,u Pause request?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1025 bne L0590 Yes, go pause device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1026 ldb PD.RAW,y Raw output mode?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1027 bne L05A2 Yes, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1028 ldb PD.PAU,y End of page pause enabled?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1029 beq L05A2 No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1030 dec V.LINE,u Subtract a line
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1031 bne L05A2 Not done, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1032 ldb #$ff do a immediate pause request
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1033 stb V.PAUS,u
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1034 bra L059A Go read next character
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1035
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1036 L03DA pshs u,y,x Preserve registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1037 ldx PD.DV2,y Get output device table pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1038 beq NoOut None, exit
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1039 ldu PD.DEV,y Get device table pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1040 lbra L03EA Process & return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1041
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1042 NoOut puls pc,u,y,x No output device so exit
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1043
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1044 * Wait for pause release
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1045 L0590 bsr L03DA Read next character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1046 bcs L059A Error, try again
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1047 cmpa PD.PSC,y Pause char?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1048 bne L0590 No, try again
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1049
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1050 L059A bsr L03DA Reset line count and read a character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1051 cmpa PD.PSC,y Pause character?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1052 beq L059A Yes, go read again
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1053
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1054 * Process Carriage return - do auto linefeed & Null's if necessary
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1055 * Entry: A=CHR$($0D)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1056 L05A2 ldu V$STAT,x Get static storage pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1057 clra
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1058 sta V.PAUS,u Clear pause request
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1059 lda #C$CR Carriage return (in cases from pause)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1060 bsr L05C9 Send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1061 lda PD.RAW,y Raw mode?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1062 bne L05C7 Yes, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1063 ldb PD.NUL,y Get end of line null count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1064 pshs b Save it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1065 lda PD.ALF,y Auto line feed enabled?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1066 beq L05BE No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1067 lda #C$LF Get line feed code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1068 L05BA bsr L05C9 Execute driver write routine
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1069 bcs L05C5 Error, purge stack and return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1070 L05BE clra Get null character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1071 dec ,s Done null count?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1072 bpl L05BA No, go send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1073 clra Clear carry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1074 L05C5 leas 1,s Purge stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1075 L05C7 puls pc,u,y,x,a Restore & return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1076
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1077 * Execute device driver write routine
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1078 * Entry: A=Character to write
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1079 * Execute device driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1080 * Entry: W=Entry offset (for type of function, ex. Write, Read)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1081 * A=Code to send to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1082 L05C9 ldu V$STAT,x Get device static storage pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1083 pshs y,x Preserve registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1084 clrb
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1085 stb V.WAKE,u Wake it up
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1086 ldx V$DRIVEX,x Get driver execution pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1087 jsr D$WRIT,x Execute driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1088 puls pc,y,x Restore & return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1089
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1090 * Send character to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1091 L0565 pshs u,y,x,a Preserve registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1092 ldx PD.DV2,y Get output device table pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1093 beq L0571 Return if none
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1094 cmpa #C$CR Carriage return?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1095 beq L05A2 Yes, go process it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1096 L056F ldu V$STAT,x Get device static storage pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1097 clrb
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1098 stb V.WAKE,u Wake it up
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1099 ldx V$DRIVEX,x Get driver execution pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1100 jsr D$WRIT,x Execute driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1101 L0571 puls pc,u,y,x,a Restore & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1102
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1103 * Check for printable character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1104 L0413 ldb PD.EKO,y Echo turned on?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1105 beq NoEcho No, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1106 L0418 cmpa #C$SPAC CHR$(32) or higher?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1107 bhs L0565 Yes, go send to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1108 cmpa #C$CR Carriage return?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1109 bne L0423 No, change it to a period
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1110 bra L0565 Anything else output to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1111
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1112 NoEcho rts
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1113
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1114 L0423 pshs a Save code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1115 lda #'. Get code for period
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1116 bsr L0565 Output it to device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1117 puls pc,a Restore & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1118
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1119 L0624 bsr L0418 check if it's printable and send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1120 * Process ReadLn
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1121 L05F8 lbsr L03E2 get a character from device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1122 lbcs L0370 return if error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1123 tsta usable character?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1124 lbeq L02FE no, check path descriptor special characters
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1125 ldb PD.RPR,y get reprint line code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1126 cmpb #C$RPRT cntrl D?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1127 lbeq L02FE yes, check path descriptor special characters
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1128 cmpa PD.RPR,y reprint line?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1129 bne L0629 no, Check line editor keys
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1130 cmpx PD.MAX,y character count at maximum?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1131 beq L05F8 yes, go read next character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1132 ldb #1 Bump char count up by 1
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1133 abx
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1134 cmpx ,s done?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1135 bhs L0620 yes, exit
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1136 lda ,u+ get character read
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1137 beq L0624 null, go send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1138 cmpa PD.EOR,y end of record character?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1139 bne L0624 no, go send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1140 leau -1,u bump buffer pointer back 1
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1141 L0620 leax -1,x bump character count back 1
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1142 bra L05F8 go read next character
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1143
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1144 * Process print rest of line
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
1145 L0629 cmpa #C$PLINE Print rest of line code?
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1146 bne L0647 No, check insert
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1147 L062D pshs u Save buffer pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1148 lbsr L038B Go print rest of line
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1149 lda PD.BSE,y Get backspace echo character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1150 L0634 cmpu ,s Beginning of buffer?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1151 beq L0642 Yes, exit
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1152 leau -1,u Bump buffer pointer back 1
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1153 leax -1,x Bump character count back 1
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1154 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1155 bsr L0565 Print it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1156 ELSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1157 lbsr L0565 Print it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1158 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1159 bra L0634 Keep going
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1160 L0642 leas 2,s Purge buffer pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1161 bra L05F8 Return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1162
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1163 * Process Insert character (NOTE:Currently destroys W)
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
1164 L0647 cmpa #C$INSERT Insert character code?
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1165 bne L0664 No, check delete
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1166 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1167 pshs x,y Preserve x&y a moment
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1168 tfr u,w Dupe buffer pointer into w
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1169 ldf #$fe End of buffer -1
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1170 tfr w,x Source copy address
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1171 incw Include char we are on & dest address is+1
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1172 tfr w,y Destination copy address
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1173 subr u,w w=w-u (Size of copy)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1174 tfm x-,y- Move buffer up one
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1175 puls y,x Get back original y & x
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1176 lda #C$SPAC Get code for space
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1177 sta ,u Save it there
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1178 ELSE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1179 pshs u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1180 tfr u,d
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1181 ldb #$FF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1182 tfr d,u
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1183 L06DE lda ,-u
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1184 sta 1,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1185 cmpu ,s
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1186 bne L06DE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1187 lda #C$SPAC
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1188 sta ,u
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1189 leas 2,s
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1190 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1191 bra L062D Go print rest of line
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1192
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1193 * Process delete line
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
1194 L0664 cmpa #C$DELETE Delete character code?
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1195 bne L068B No, check end of line
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1196 pshs u Save buffer pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1197 lda ,u Get character there
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1198 cmpa PD.EOR,y End of record?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1199 beq L0687 Yes, don't bother to delete it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1200 L0671 lda 1,u Get character beside it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1201 cmpa PD.EOR,y This an end of record?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1202 beq L067C Yes, delete it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1203 sta ,u+ Bump character back
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1204 bra L0671 Go do next character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1205 L067C lda #C$SPAC Get code for space
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1206 cmpa ,u Already there?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1207 bne L0685 No, put it in
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1208 lda PD.EOR,y Get end of record code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1209 L0685 sta ,u Put it there
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1210 L0687 puls u Restore buffer pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1211 bra L062D Go print rest of line
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1212
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1213 * Delete rest of buffer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1214 L068B cmpa PD.EOR,y End of record code?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1215 bne L02FE No, check for special path dsc. chars
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1216 pshs u Save buffer pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1217 bra L069F Go erase rest of buffer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1218
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1219 L0696 pshs a Save code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1220 lda #C$SPAC Get code for space
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1221 lbsr L0565 Print it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1222 puls a Restore code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1223 L069F cmpa ,u+ End of record?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1224 bne L0696 No, go print a space
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1225 puls u Restore buffer pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1226
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1227 * Check character read against path descriptor
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1228 L02FE tsta Usable character?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1229 beq L030C No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1230 ldb #PD.BSP Get start point in path descriptor
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1231 L0303 cmpa b,y Match code in descriptor?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1232 beq L032C Yes, go process it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1233 incb Move to next one
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1234 cmpb #PD.QUT Done check?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1235 bls L0303 No, keep going
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1236 L030C cmpx PD.MAX,y Past maximum character count?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1237 bls L0312 No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1238 stx PD.MAX,y Update maximum character count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1239 L0312 ldb #1 Add 1 char
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1240 abx
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1241 cmpx ,s Past requested amount?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1242 blo L0322 No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1243 lda PD.OVF,y Get overflow character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1244 lbsr L0565 Send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1245 leax -1,x Subtract a character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1246 lbra L05F8 Go try again
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1247
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1248 L0322 ldb PD.UPC,y Force uppercase?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1249 beq L0328 No, put char in buffer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1250 lbsr L0403 Make character uppercase
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1251 L0328 sta ,u+ Put character in buffer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1252 lbsr L0413 Check for printable
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1253 lbra L05F8 Go try again
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1254
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1255 * Process path option characters
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1256 L032C pshs x,pc Preserve character count & PC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1257 leax <L033F,pc Point to branch table
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1258 subb #PD.BSP Subtract off first code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1259 lslb Account for 2 bytes a entry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1260 abx Point to entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1261 stx 2,s Save it in PC on stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1262 puls x Restore X
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1263 jsr [,s++] Execute routine
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1264 lbra L05F8 Continue on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1265
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1266 * Vector points for PD.BSP-PD.QUT
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1267 L033F bra L03BB Process PD.BSP
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1268 bra L03A5 Process PD.DEL
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1269 bra L0351 Process PD.EOR
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1270 bra L0366 Process PD.EOF
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1271 bra L0381 Process PD.RPR
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1272 bra L038B Process PD.DUP
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1273 rts PD.PSC we don't worry about
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1274 nop
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1275 bra L03A5 Process PD.INT
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1276 bra L03A5 Process PD.QUT
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1277
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1278 * Process PD.EOR character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1279 L0351 leas 2,s Purge return address
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1280
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1281 sta ,u Save character in buffer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1282 lbsr L0413
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1283 ldu PD.RGS,y Get callers register stack pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1284 ldb #1 Bump up char count by 1
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1285 abx
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1286 stx R$Y,u Store it in callers Y
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1287 lbsr L042B
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1288 leas 2,s
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1289 lbra L0453
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1290
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1291 * Process PD.EOF
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1292 L0366 leas 2,s Purge return address
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1293 leax ,x read anything?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1294 lbeq L02A2
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1295 bra L030C
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1296
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1297 L0370 pshs b
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1298 lda #C$CR
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1299 sta ,u
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1300 lbsr L0565 Send it to the driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1301 puls b
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1302 lbra L02A4
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1303
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1304 * Process PD.RPR
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1305 L0381 lda PD.EOR,y Get end of record character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1306 sta ,u Put it in buffer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1307 ldx #0
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1308 ldu PD.BUF,y Get buffer ptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1309 L0388 lbsr L0418 Send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1310 L038B cmpx PD.MAX,y Character maximum?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1311 beq L03A2 Yes, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1312 ldb #1 Bump char count up by 1
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1313 abx
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1314 cmpx 2,s Done count?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1315 bhs L03A0 Yes, exit
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1316 lda ,u+ Get character from buffer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1317 beq L0388 Null, go send it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1318 cmpa PD.EOR,y Done line?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1319 bne L0388 No go send it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1320 leau -1,u Move back a character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1321 L03A0 leax -1,x Move character count back
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1322 L03A2 rts Return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1323
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1324 L03A3 bsr L03BF
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1325 * PD.DEL/PD.QUT/PD.INT processing
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1326 L03A5 leax ,x Any characters?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1327 beq L03B8 No, reset buffer ptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1328 ldb PD.DLO,y Backspace over line?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1329 beq L03A3 Yes, go do it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1330 ldb PD.EKO,y Echo character?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1331 beq L03B5 No, zero out buffer pointers & return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1332 lda #C$CR Send CR to the driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1333 lbsr L0565 send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1334 L03B5 ldx #0 zero out count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1335 L03B8 ldu PD.BUF,y reset buffer pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1336 L03BA rts return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1337
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1338 * Process PD.BSP
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1339 L03BB leax ,x Any characters?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1340 beq L03A2 No, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1341 L03BF leau -1,u Mover buffer pointer back 1 character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1342 leax -1,x Move character count back 1
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1343 ldb PD.EKO,y Echoing characters?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1344 beq L03BA No, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1345 ldb PD.BSO,y Which backspace method?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1346 beq L03D4 Use BSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1347 bsr L03D4 Do a BSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1348 lda #C$SPAC Get code for space
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1349 lbsr L0565 Send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1350 L03D4 lda PD.BSE,y Get BSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1351 lbra L0565 Send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1352
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1353 * check PD.DTP,y and update PD.WPTR,y if it's device type $10 (grfdrv)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1354 get.wptr pshs x,u
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1355 ldu PD.DEV,y get device table entry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1356 ldx V$DRIV,u get device driver module
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1357 ldd M$Name,x offset to name
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1358 ldd d,x
1933
1e312b144f4d Major changes:
boisy
parents: 1650
diff changeset
1359 cmpd #"VT is it VTIO?
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1360 bne no.fast no, don't do the fast stuff
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1361 ldd >WGlobal+G.GrfEnt does GrfDrv have an entry address?
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1362 beq no.fast nope, don't bother calling it.
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1363
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1364 ldu V$STAT,u and device static storage
1415
76137b27060d cc3io.asm: fixed issue with keyboard mouse being reset when CLEARing, still
boisy
parents: 1348
diff changeset
1365 tst V.ParmCnt,u are we busy getting more parameters?
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1366 bne no.fast yes, don't do buffered writes
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1367
1933
1e312b144f4d Major changes:
boisy
parents: 1650
diff changeset
1368 * Get window table pointer & verify it: copied from CoWin and modified
1415
76137b27060d cc3io.asm: fixed issue with keyboard mouse being reset when CLEARing, still
boisy
parents: 1348
diff changeset
1369 ldb V.WinNum,u Get window # from device mem
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1370 lda #Wt.Siz Size of each entry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1371 mul Calculate window table offset
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1372 addd #WinBase Point to specific window table entry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1373 tfr d,y Move to y, the register we want
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1374 lda Wt.STbl,y Get MSB of scrn tbl ptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1375 bgt VerExit If $01-$7f, should be ok
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1376
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1377 * Return illegal window definition error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1378 no.fast comb set carry: no error code, it's an internal routine
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1379 puls x,u,pc
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1380
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1381 VerExit clra No error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1382 puls x,u,pc
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1383
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1384 call.grf pshs d,x,y,u save registers
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1385 ldx #$0180 where to put the text
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1386 IFNE H6309
1650
8b6ca619d106 Fixed 12th hour problem with SCF under 6309
boisy
parents: 1635
diff changeset
1387 pshs cc save old CC
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1388 ELSE
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1389 tfr cc,a
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1390 sta -2,x
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1391 ENDC
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1392 orcc #IntMasks+Entire shut everything else off
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1393
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1394 IFNE H6309
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1395 clra make sure high byte=0
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1396 tfr d,w
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1397 tfm u+,x+ move the data into low memory
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1398 ELSE
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1399 l@ lda ,u+
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1400 sta ,x+
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1401 decb
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1402 bne l@
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1403 ENDC
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1404
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1405 ldb #6 alpha put
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1406 stb >WGlobal+G.GfBusy flag grfdrv busy
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1407 IFNE H6309
1650
8b6ca619d106 Fixed 12th hour problem with SCF under 6309
boisy
parents: 1635
diff changeset
1408 lde ,s+ grab old CC off of the stack
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1409 lda 1,s get the number of characters to write
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1410 ELSE
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1411 * ldb ,s+ grab old CC off of the stack
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1412 lda 1,s get the number of characters to write
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1413 ENDC
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1414 * A = number of bytes at $0180 to write out...
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1415 bsr do.grf do the call
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1416 * ignore errors : none possible from this particular call
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1417 call.out puls d,x,y,u,pc and return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1418
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1419 * this routine should always be called by a BSR, and grfdrv will use the
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1420 * PC saved on-stack to return to the calling routine.
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1421 * ALL REGISTERS WILL BE TRASHED
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1422 do.grf sts >WGlobal+G.GrfStk stack pointer for GrfDrv
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1423 lds <D.CCStk get new stack pointer
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1424 IFNE H6309
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1425 pshs dp,x,y,u,pc
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1426 pshsw
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1427 pshs cc,d save all registers
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1428 ELSE
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1429 pshs dp,cc,d,x,y,u,pc
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1430 ENDC
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1431
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1432 ldx >WGlobal+G.GrfEnt get GrfDrv entry address
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1433
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1434 stx R$PC,s save grfdrv entry address as PC on the stack
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1435 IFNE H6309
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1436 ste R$CC,s save CC onto CC on the stack
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1437 ELSE
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1438 stb R$B,s
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1439 ldb $017E
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1440 stb R$CC,s
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1441 ENDC
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1442 jmp [>D.FLip1] flip to grfdrv and execute it
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1443
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1444 * GrfDrv will execute function, and then call [D.Flip0] to return here. It
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1445 * will use an RTS to return to the code that called here in the first place
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1446 * Only SP, PC & CC are set up - ALL OTHER REGISTERS MAY BE MODIFIED
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1447
1635
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1448 * ELSE
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1449 *
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1450 *call.grf pshs u,y,x,d
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1451 * tfr cc,a
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1452 * orcc #IntMasks+Entire
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1453 * ldx #$0180
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1454 * sta -2,x
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1455 *call.lp lda ,u+
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1456 * sta ,x+
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1457 * decb
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1458 * bne call.lp
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1459 * stb ,x
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1460 * lda 1,s
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1461 * bsr do.grf
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1462 * puls u,y,x,d,pc
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1463 *
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1464 *do.grf sts >$1007
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1465 * lds <D.CCStk
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1466 * ldu #$1100
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1467 * ldb #$3A
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1468 * stb >$1002
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1469 * stb >$017F
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1470 * pshs pc,u,y,x,dp,b,a,cc
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1471 * ldx >$106E
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1472 * stx R$PC,s
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1473 * ldb >$107E
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1474 * stb ,s
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1475 * jmp [>D.Flip1]
8621ecec7368 6809 version of SCF now calls GRFDRV's fast text output routine, resulting in
boisy
parents: 1424
diff changeset
1476 * ENDC
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1477
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1478 emod
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1479 eom equ *
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1480 end
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1481