annotate level2/modules/scf.asm @ 1631:ec6fb5543b22

Robert Gault's modifications for correcting timing errors
author boisy
date Mon, 12 Jul 2004 01:38:08 +0000
parents 32f1dae476b7
children 8621ecec7368
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.
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
158
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
159 nam SCF
1424
32f1dae476b7 Fixed references in source from OS-9 to NitrOS-9 where appropriate
boisy
parents: 1415
diff changeset
160 ttl NitrOS-9 Level 2 Sequential Character File Manager
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
161
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
162 IFP1
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
163 use defsfile
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
164 use scfdefs
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
165 ENDC
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
166
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
167 tylg set FlMgr+Objct
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
168 atrv set ReEnt+rev
1252
275aea78cb87 SCF now fully uses V$DRIVEX saving time and code size
boisy
parents: 1167
diff changeset
169 rev set 3
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
170 edition equ 16
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
171
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
172 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
173
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
174 SCFName fcs /SCF/
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
175 fcb edition
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
176
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
177
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
178 * 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
179 * 123456789!123456789!1234567890
697
2ec2125b6527 Shortened secret message, removed useless ldu
boisy
parents: 536
diff changeset
180 *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
181 msg fcc 'www.nitros9.org'
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
182 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
183 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
184 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
185
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
186 * Return bad pathname error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
187 opbpnam puls y
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
188 bpnam comb Set carry for error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
189 ldb #E$BPNam Get error code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
190 openerr rts Return to caller
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
191
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
192 * I$Create/I$Open entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
193 * Entry: Y= Path dsc. ptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
194 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
195 stx PD.TBL,y Save it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
196 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
197 pshs y Save path descriptor pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
198 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
199 os9 F$PrsNam Parse it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
200 bcs opbpnam Error, exit
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
201 tsta End of pathname?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
202 bmi open1 Yes, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
203 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
204 os9 F$PrsNam Parse it again
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
205 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
206 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
207 puls y Restore path descriptor pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
208 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
209 os9 F$SRqMem Allocate it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
210 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
211 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
212 leax <msg,pc Get ptr to init string
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
213
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
214 IFNE H6309
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
215
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
216 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
217 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
218 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
219 tfm x,u+ Fill rest of buffer with CR's
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
220
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
221 ELSE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
222
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
223 CopyMsg lda ,x+
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
224 sta ,u+
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
225 decb
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
226 cmpa #C$CR
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
227 bne CopyMsg
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
228 CopyCR sta ,u+
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
229 decb
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
230 bne CopyCR
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
231
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
232 ENDC
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
233
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
234 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
235 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
236 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
237 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
238 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
239 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
240 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
241 beq L00CF None, skip ahead
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
242
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
243 IFNE H6309
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
244
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
245 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
246 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
247 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
248
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
249 ELSE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
250
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
251 leax d,x
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
252 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
253 lsra
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
254 rorb
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
255
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
256 ENDC
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
257
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
258 lsra
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
259 rolb
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
260 rola
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
261 rorb
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
262 rola
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
263 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
264 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
265 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
266 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
267 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
268 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
269 puls y Restore path descriptor pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
270 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
271 stu PD.DV2,y Save new output (echo) device table pointer
697
2ec2125b6527 Shortened secret message, removed useless ldu
boisy
parents: 536
diff changeset
272 * 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
273 L00CF ldu V$STAT,u Point to it's static storage
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
274
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
275 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
276
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
277 clrd
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
278
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
279 ELSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
280
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
281 clra
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
282 clrb
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
283
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
284 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
285
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
286 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
287 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
288 pshs d Save 0 on stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
289 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
290 * 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
291 beq Yespath No path's open, so we know we can open it
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
292
1167
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
293 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
294 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
295 ldx V$DRIV,u Get ptr to device driver
1167
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
296 IFNE H6309
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
297 tim #SHARE.,M$Mode,x Non-sharable driver?
1167
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
298 ELSE
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
299 ldb M$Mode,x
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
300 bitb #SHARE.
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
301 ENDC
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
302 bne NoShare Yes, driver busy
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
303 ldx V$DESC,u Get ptr to device descriptor
1167
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
304 IFNE H6309
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
305 tim #SHARE.,M$Mode,x Non-sharable device?
1167
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
306 ELSE
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
307 ldb M$Mode,x
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
308 bitb #SHARE.
a3d0ac951684 Miscellaneous source improvements
boisy
parents: 939
diff changeset
309 ENDC
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
310 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
311 NoShare puls u,x Restore regs
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
312 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
313 comb
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
314 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
315 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
316 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
317 bra L00E8 Check carrier status
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
318
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
319 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
320 bra L00F8 Go open the path
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
321
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
322 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
323 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
324 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
325 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
326 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
327 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
328 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
329 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
330 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
331 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
332 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
333 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
334 leas 3,s Eat stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
335 deca Bump down good path count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
336 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
337 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
338 lbra L0250 Set parity/baud & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
339
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
340 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
341 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
342 bsr L0136 Detach device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
343 puls pc,b,cc Restore error status & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
344
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
345 * I$Close entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
346 close pshs cc Preserve interrupt status
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
347 orcc #IntMasks Disable interrupts
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
348 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
349 bsr L0182 Check it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
350 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
351 bsr L0182 Check it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
352 puls cc Restore interrupts
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
353 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
354 beq L012B No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
355 L0129 clra Clear carry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
356 L012A rts Return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
357
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
358 * Detach device & return buffer memory
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
359 L012B bsr L0149
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
360 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
361 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
362 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
363 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
364 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
365 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
366 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
367 leas 3,s Purge stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
368 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
369 beq L013D Nothing there, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
370 os9 I$Detach Detach it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
371 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
372 beq L0147 None defined go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
373 ldd #256 Get buffer size
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
374 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
375 L0147 clra Clear carry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
376 rts Return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
377
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
378 L0149 ldx #1
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
379 pshs cc,d,x,y,u
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
380 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
381 beq L017B None, skip ahead
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
382 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
383 beq L017B None, skip ahead
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
384 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
385 beq L017B None, skip ahead
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
386 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
387 cmpy V.PDLHd,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
388 bne L0172
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
389 std V.PDLHd,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
390 bne L017B
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
391 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
392 bra L017B Return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
393
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
394 L016D ldx PD.PLP,x
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
395 beq L0180
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
396 L0172 cmpy PD.PLP,x
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
397 bne L016D
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
398 std PD.PLP,x
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
399
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
400 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
401
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
402 L017B clrd
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
403
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
404 ELSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
405
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
406 L017B clra
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
407 clrb
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 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
410
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
411 std PD.PLP,y
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
412 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
413
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
414
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
415 * Check path number?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
416 * 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
417 * Y=Path dsc. ptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
418 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
419 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
420 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
421 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
422 pshs d,x,y Save everything
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
423 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
424 bne L01CA No, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
425 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
426 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
427 clra Start path # = 0 (Std In)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
428 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
429 beq L01CA Yes, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
430 inca Move to next path
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
431 cmpa #NumPaths Done all paths?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
432 blo L0198 No, keep going
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
433 pshs y Preserve path descriptor pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
434
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
435 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
436
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
437 lda #SS.Relea Release signals SetStat
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
438 ldf #D$PSTA Get Setstat offset
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 ELSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
441
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
442 ldd #SS.Relea*256+D$PSTA
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
443
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
444 ENDC
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
445
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
446 bsr L01FA Execute driver setstat routine
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
447 puls y Restore path pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
448 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
449 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
450 sta ,s Save it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
451 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
452 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
453 ldb 1,s Get path number
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
454 clra Get starting path number
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
455 L01B9 cmpb a,x Same path?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
456 beq L01C4 Yes, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
457 inca Move to next path
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
458 cmpa #NumPaths Done all paths?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
459 blo L01B9 No, keep checking
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
460 clr ,s Clear process ID
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
461 L01C4 lda ,s Get process ID
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
462 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
463 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
464 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
465
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
466 * I$GetStt entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
467 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
468 lbne L04C6 No, terminate process
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
469 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
470 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
471 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
472 * SS.Opt Getstat
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
473 pshs a,x,y Preserve registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
474 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
475 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
476 ldu R$Y,x Preserve callers Y
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
477 pshs u
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
478 bsr L01F8 Send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
479 puls u Restore callers Y
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
480 puls a,x,y Restore registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
481 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
482 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
483 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
484 bcs L01F6 Return if error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
485 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
486 L01F6 clrb Clear carry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
487 L01F7 rts Return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
488
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
489 * 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
490 * Entry: A=GetStat/SetStat code
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
491
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
492 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
493
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
494 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
495 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
496 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
497 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
498 pshs y,u Preserve registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
499 jsr f,x Execute driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
500 puls y,u,pc Restore & return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
501
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
502 ELSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
503
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
504 L01F8 ldb #D$GSTA
1252
275aea78cb87 SCF now fully uses V$DRIVEX saving time and code size
boisy
parents: 1167
diff changeset
505 L01FA ldx PD.DEV,y
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
506 ldu V$STAT,x
1252
275aea78cb87 SCF now fully uses V$DRIVEX saving time and code size
boisy
parents: 1167
diff changeset
507 ldx V$DRIVEX,x
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
508 pshs u,y
1252
275aea78cb87 SCF now fully uses V$DRIVEX saving time and code size
boisy
parents: 1167
diff changeset
509 jsr b,x
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
510 puls y,u,pc
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
511
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
512 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
513
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
514
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
515 * I$SetStt entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
516 setstt lbsr L04A2
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
517 L0212 bsr L021B Check codes
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
518 pshs cc,b Preserve registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
519 lbsr L0453 Wait for device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
520 puls cc,b,pc Restore & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
521
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
522 putkey cmpa #SS.Fill Buffer preload?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
523 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
524 IFEQ H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
525 pshs u,y,x
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
526 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
527 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
528 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
529 pshs a Save it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
530 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
531 ldb <D.SysTsk Get system task
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
532 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
533 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
534 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
535 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
536 clre High byte of Y
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
537 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
538 ELSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
539 pshs d
525
2e62fb1ec356 Fix for SCF SS.Fill to recognize hi bit of Y
boisy
parents: 372
diff changeset
540 clra
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
541 ldb R$Y+1,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
542 ldx R$X,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
543 ldu PD.BUF,y
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
544 tfr d,y
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
545 puls d
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
546 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
547 * 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
548 os9 F$Move Move it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
549 bcs putkey1 Exit if error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
550 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
551 lda ,s Get CR flag
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
552 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
553 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
554 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
555 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
556 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
557 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
558 ELSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
559 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
560 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
561 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
562 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
563 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
564 * SS.OPT SETSTAT
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
565 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
566 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
567 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
568 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
569 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
570 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
571 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
572 ldy #OPTCNT Get option length
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
573 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
574 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
575 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
576 IFEQ H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
577 pshs x
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
578 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
579 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
580 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
581 cmpr d,x Same as old?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
582 ELSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
583 cmpd ,s++
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
584 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
585 beq L0250 Yes, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
586 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
587 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
588 beq L0250 Go on if none
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
589 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
590 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
591 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
592 pshs a,x Preserve them
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
593 bsr L025B Update parity & baud
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
594 puls a,x,pc Restore & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
595
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
596 * Update path Parity & baud
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
597 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
598 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
599 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
600 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
601 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
602 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
603 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
604 lda $0F,s Get function code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
605 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
606 IFEQ H6309
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
607 ldb #$0C
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
608 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
609 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
610 lbsr L0212 Send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
611 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
612 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
613 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
614 bcc L0282 Return if no error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
615 cmpb #E$UnkSvc Unknown service request?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
616 beq L0282 Yes, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
617 coma Set carry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
618 L0282 puls x,y,u,pc Restore & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
619
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
620 * I$Read entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
621 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
622 bcc L028A No error, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
623 L0289 rts Return with error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
624 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
625 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
626 beq L02DC Return if zero
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
627 pshs x Save character count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
628 ldx #0
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
629 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
630 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
631 bcs L02A4 Return if error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
632 tsta Character read zero?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
633 beq L02C4 Yes, go try again
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
634 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
635 bne L02BC No, keep checking
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
636 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
637 L02A4 leas 2,s Purge stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
638 pshs b Save error code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
639 bsr L02D5 Return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
640 comb Set carry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
641 puls b,pc Restore & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
642
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
643 ******************************
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
644 *
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
645 * SCF file manager entry point
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 * Entry: Y = Path descriptor pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
648 * U = Callers register stack pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
649 *
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
650
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
651 SCFEnt lbra open Create path
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
652 lbra open Open path
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
653 lbra bpnam Makdir
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
654 lbra bpnam Chgdir
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
655 lbra L0129 Delete (return no error)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
656 lbra L0129 Seek (return no error)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
657 bra read Read character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
658 nop
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
659 lbra write Write character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
660 lbra readln ReadLn
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
661 lbra writln WriteLn
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
662 lbra getstt Get Status
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
663 lbra setstt Set Status
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
664 lbra close Close path
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
665
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
666 * MAIN READ LOOP (no editing)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
667 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
668 tstb past buffer end?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
669 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
670 * 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
671 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
672 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
673 * Main char by char read loop
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
674 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
675 bcs L02A4 exit if error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
676 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
677 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
678 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
679 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
680 abx
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
681 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
682 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
683 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
684 beq L02D3 yes, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
685 L02CF cmpx ,s done read?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
686 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
687
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
688 L02D3 leas 2,s purge stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
689 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
690 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
691 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
692 L02DC bra L0453 update path descriptor and return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
693
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
694 * Read character from device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
695 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
696 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
697 beq L0401 None, exit
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
698 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
699 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
700 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
701 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
702 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
703 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
704 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
705 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
706 clra
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
707 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
708 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
709 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
710 L0401 puls pc,u,y,x Restore regs & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
711
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
712 * Move buffer to caller
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
713 * Entry: Y=Path dsc. ptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
714 * X=# chars to move
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
715 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
716 ldd ,s Get # bytes to move
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
717 beq L0451 Exit if none
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
718 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
719 bne L0435 Yes, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
720 deca >256, so bump MSB down
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
721 L0435 clrb Force to even page
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
722 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
723 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
724 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
725 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
726 clre Clear MSB of count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
727 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
728 bne L0442 No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
729 ince Make it even 256
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
730 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
731 ELSE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
732 leau d,u
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
733 clra
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
734 ldb 1,s
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
735 bne L0442 No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
736 inca
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
737 L0442 pshs d
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
738 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
739 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
740 ldx <D.Proc Get destination task number
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
741 ldb P$Task,x
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
742 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
743 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
744 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
745 ELSE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
746 puls y
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
747 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
748 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
749 L0451 puls pc,y,x Restore & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
750
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
751 * I$ReadLn entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
752 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
753 bcc L02E5 No error, continue
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
754 rts Error, exit with it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
755 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
756 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
757 tsta Past 256 bytes?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
758 beq L02EF No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
759 ldd #$0100 Get new character count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
760 L02EF pshs d Save character count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
761 ldd #$FFFF Get maximum character count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
762 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
763 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
764 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
765 lbra L05F8 Go process readln
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
766
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
767 * 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
768 * no longer busy
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
769 * Modifies X and A
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
770 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
771 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
772 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
773 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
774 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
775 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
776 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
777 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
778 bne L0467 No, device busy return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
779 clra
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
780 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
781 L0467 rts Return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
782
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
783 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
784 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
785 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
786 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
787 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
788 beq L049F Yes, return without error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
789 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
790 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
791 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
792 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
793 ldx <D.Proc Get current process
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
794 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
795 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
796 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
797 coma Set carry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
798 puls x,a,pc Restore device table ptr (eat a) & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
799
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
800 * 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
801 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
802 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
803 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
804 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
805 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
806 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
807 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
808 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
809 L049F clra No error & return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
810 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
811
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
812 * Wait for device?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
813 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
814 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
815 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
816 clra
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
817 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
818 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
819 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
820 bsr L0468 Busy?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
821 bcs L04C1 No, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
822 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
823 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
824 bsr L0468 Busy?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
825 bcs L04C1 No, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
826 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
827 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
828 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
829 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
830 rts Return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
831
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
832 * Hangup process
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
833 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
834 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
835 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
836 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
837 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
838 ldb #S$Kill Get kill signal
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
839 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
840 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
841 orcc #Carry Set carry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
842 rts Return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
843
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
844 * I$WritLn entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
845 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
846 bra L04E1 Go write
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
847
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
848 * I$Write entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
849 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
850 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
851 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
852 lbeq L055A Zero so return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
853 pshs x Save character count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
854 ldx #$0000 Get write data offset
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
855 bra L04F1 Go write data
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
856
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
857 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
858 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
859 bne L0523 No, keep writing from current PD.BUF
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
860
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
861 * 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
862 * 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
863 * 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
864 * inshed
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
865 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
866 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
867 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
868 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
869 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
870 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
871 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
872 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
873 cmpw #64 More than 64?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
874 bls L0508 No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
875 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
876 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
877 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
878 subr w,d Subtract data size
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
879 ELSE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
880 leax d,x
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
881 ldd R$Y,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
882 subd ,s
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
883 cmpd #$0020
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
884 bls L0508
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
885 ldd #$0020
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
886 L0508 pshs d
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
887 ldd PD.BUF,y
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
888 inca
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
889 subd ,s
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
890 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
891 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
892 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
893 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
894 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
895 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
896 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
897 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
898 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
899 ELSE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
900 puls y
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
901 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
902 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
903 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
904
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
905 * at this point, we have
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
906 * 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
907 * X = number of characters written
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
908 * Y = PD pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
909 * 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
910 * 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
911 * now unused by GrfDrv
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
912 L0523 ldb PD.PAR,y get device parity: bit 7 set = window
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
913 cmpb #$80 is it even potentially a WindInt window?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
914 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
915
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
916 clrb set to no uppercase conversion
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
917 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
918 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
919 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
920
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
921 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
922
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
923 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
924 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
925
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
926 * 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
927 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
928 inca go to the next page
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
929 clrb at the top of it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
930 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
931 pshs b max. number of characters
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
932
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
933 clrb always <256 characters to write
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
934 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
935 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
936 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
937 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
938 beq g.loop1 don't convert
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
939 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
940 sta -1,u save again
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
941
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
942 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
943 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
944 bne g.loop
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
945
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
946 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
947 cmpb #1 one or fewer characters?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
948 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
949
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
950 IFEQ H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
951 * 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
952 * 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
953 * ever work in TuneUp??? - BGP
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
954 bra no.wptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
955 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
956
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
957 * now we call grfdrv...
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
958 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
959 abx done B more characters...
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
960 stx 1,s save on-stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
961 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
962 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
963 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
964 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
965 bra L0544 do end-buffer checks and continue
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
966
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
967 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
968
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
969 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
970 ldb PD.RAW,y Raw mode?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
971 bne L053D Yes, go write it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
972 ldb PD.UPC,y Force uppercase?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
973 beq L052A No, continue
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
974 bsr L0403 Make it uppercase
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
975 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
976 bne L053D No, go print it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
977 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
978 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
979 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
980 bsr L0573 Print carriage return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
981 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
982 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
983
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
984 * Write character to device (call driver)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
985 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
986 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
987 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
988 abx
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
989 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
990 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
991 ldb PD.RAW,y Raw mode?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
992 lbne L04EC Yes, keep writing
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
993 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
994 lbeq L04EC NUL, keep writing
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
995 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
996 lbne L04EC No, keep writing
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
997 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
998 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
999 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
1000 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
1001
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1002 * Check for forced uppercase
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1003 L0403 cmpa #'a Less then 'a'?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1004 blo L0412 Yes, leave it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1005 cmpa #'z Higher than 'z'?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1006 bhi L0412 Yes, leave it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1007 suba #$20 Make it uppercase
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1008 L0412 rts Return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1009
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1010 L055D leas 2,s Purge stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1011 pshs b,cc Preserve registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1012 bsr L0556 Wait for device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1013 puls pc,b,cc Restore & return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1014
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1015 * 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
1016 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
1017 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
1018 cmpa #C$CR Carriage return?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1019 bne L056F No, go print it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1020 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
1021 ldb V.PAUS,u Pause request?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1022 bne L0590 Yes, go pause device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1023 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
1024 bne L05A2 Yes, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1025 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
1026 beq L05A2 No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1027 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
1028 bne L05A2 Not done, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1029 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
1030 stb V.PAUS,u
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1031 bra L059A Go read next character
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1032
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1033 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
1034 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
1035 beq NoOut None, exit
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1036 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
1037 lbra L03EA Process & return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1038
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1039 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
1040
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1041 * Wait for pause release
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1042 L0590 bsr L03DA Read next character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1043 bcs L059A Error, try again
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1044 cmpa PD.PSC,y Pause char?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1045 bne L0590 No, try again
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1046
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1047 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
1048 cmpa PD.PSC,y Pause character?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1049 beq L059A Yes, go read again
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1050
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1051 * 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
1052 * Entry: A=CHR$($0D)
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1053 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
1054 clra
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1055 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
1056 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
1057 bsr L05C9 Send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1058 lda PD.RAW,y Raw mode?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1059 bne L05C7 Yes, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1060 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
1061 pshs b Save it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1062 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
1063 beq L05BE No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1064 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
1065 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
1066 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
1067 L05BE clra Get null character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1068 dec ,s Done null count?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1069 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
1070 clra Clear carry
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1071 L05C5 leas 1,s Purge stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1072 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
1073
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1074 * Execute device driver write routine
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1075 * Entry: A=Character to write
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1076 * Execute device driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1077 * 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
1078 * A=Code to send to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1079 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
1080 pshs y,x Preserve registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1081 clrb
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1082 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
1083 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
1084 jsr D$WRIT,x Execute driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1085 puls pc,y,x Restore & return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1086
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1087 * Send character to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1088 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
1089 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
1090 beq L0571 Return if none
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1091 cmpa #C$CR Carriage return?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1092 beq L05A2 Yes, go process it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1093 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
1094 clrb
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1095 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
1096 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
1097 jsr D$WRIT,x Execute driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1098 L0571 puls pc,u,y,x,a Restore & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1099
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1100 * Check for printable character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1101 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
1102 beq NoEcho No, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1103 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
1104 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
1105 cmpa #C$CR Carriage return?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1106 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
1107 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
1108
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1109 NoEcho rts
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1110
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1111 L0423 pshs a Save code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1112 lda #'. Get code for period
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1113 bsr L0565 Output it to device
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1114 puls pc,a Restore & return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1115
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1116 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
1117 * Process ReadLn
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1118 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
1119 lbcs L0370 return if error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1120 tsta usable character?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1121 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
1122 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
1123 cmpb #C$RPRT cntrl D?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1124 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
1125 cmpa PD.RPR,y reprint line?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1126 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
1127 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
1128 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
1129 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
1130 abx
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1131 cmpx ,s done?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1132 bhs L0620 yes, exit
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1133 lda ,u+ get character read
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1134 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
1135 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
1136 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
1137 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
1138 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
1139 bra L05F8 go read next character
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1140
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1141 * Process print rest of line
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
1142 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
1143 bne L0647 No, check insert
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1144 L062D pshs u Save buffer pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1145 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
1146 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
1147 L0634 cmpu ,s Beginning of buffer?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1148 beq L0642 Yes, exit
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1149 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
1150 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
1151 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1152 bsr L0565 Print it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1153 ELSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1154 lbsr L0565 Print it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1155 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1156 bra L0634 Keep going
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1157 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
1158 bra L05F8 Return
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1159
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1160 * Process Insert character (NOTE:Currently destroys W)
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
1161 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
1162 bne L0664 No, check delete
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1163 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1164 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
1165 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
1166 ldf #$fe End of buffer -1
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1167 tfr w,x Source copy address
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1168 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
1169 tfr w,y Destination copy address
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1170 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
1171 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
1172 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
1173 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
1174 sta ,u Save it there
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1175 ELSE
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1176 pshs u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1177 tfr u,d
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1178 ldb #$FF
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1179 tfr d,u
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1180 L06DE lda ,-u
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1181 sta 1,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1182 cmpu ,s
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1183 bne L06DE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1184 lda #C$SPAC
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1185 sta ,u
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1186 leas 2,s
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1187 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1188 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
1189
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1190 * Process delete line
939
8f1263d3e3d5 Small touch-ups to source
boisy
parents: 697
diff changeset
1191 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
1192 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
1193 pshs u Save buffer pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1194 lda ,u Get character there
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1195 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
1196 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
1197 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
1198 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
1199 beq L067C Yes, delete it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1200 sta ,u+ Bump character back
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1201 bra L0671 Go do next character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1202 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
1203 cmpa ,u Already there?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1204 bne L0685 No, put it in
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1205 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
1206 L0685 sta ,u Put it there
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1207 L0687 puls u Restore buffer pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1208 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
1209
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1210 * Delete rest of buffer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1211 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
1212 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
1213 pshs u Save buffer pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1214 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
1215
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1216 L0696 pshs a Save code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1217 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
1218 lbsr L0565 Print it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1219 puls a Restore code
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1220 L069F cmpa ,u+ End of record?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1221 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
1222 puls u Restore buffer pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1223
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1224 * Check character read against path descriptor
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1225 L02FE tsta Usable character?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1226 beq L030C No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1227 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
1228 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
1229 beq L032C Yes, go process it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1230 incb Move to next one
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1231 cmpb #PD.QUT Done check?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1232 bls L0303 No, keep going
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1233 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
1234 bls L0312 No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1235 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
1236 L0312 ldb #1 Add 1 char
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1237 abx
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1238 cmpx ,s Past requested amount?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1239 blo L0322 No, go on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1240 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
1241 lbsr L0565 Send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1242 leax -1,x Subtract a character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1243 lbra L05F8 Go try again
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1244
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1245 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
1246 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
1247 lbsr L0403 Make character uppercase
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1248 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
1249 lbsr L0413 Check for printable
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1250 lbra L05F8 Go try again
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1251
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1252 * Process path option characters
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1253 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
1254 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
1255 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
1256 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
1257 abx Point to entry point
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1258 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
1259 puls x Restore X
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1260 jsr [,s++] Execute routine
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1261 lbra L05F8 Continue on
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1262
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1263 * 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
1264 L033F bra L03BB Process PD.BSP
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1265 bra L03A5 Process PD.DEL
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1266 bra L0351 Process PD.EOR
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1267 bra L0366 Process PD.EOF
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1268 bra L0381 Process PD.RPR
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1269 bra L038B Process PD.DUP
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1270 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
1271 nop
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1272 bra L03A5 Process PD.INT
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1273 bra L03A5 Process PD.QUT
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1274
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1275 * Process PD.EOR character
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1276 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
1277
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1278 sta ,u Save character in buffer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1279 lbsr L0413
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1280 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
1281 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
1282 abx
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1283 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
1284 lbsr L042B
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1285 leas 2,s
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1286 lbra L0453
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1287
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1288 * Process PD.EOF
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1289 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
1290 leax ,x read anything?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1291 lbeq L02A2
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1292 bra L030C
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1293
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1294 L0370 pshs b
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1295 lda #C$CR
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1296 sta ,u
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1297 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
1298 puls b
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1299 lbra L02A4
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1300
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1301 * Process PD.RPR
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1302 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
1303 sta ,u Put it in buffer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1304 ldx #0
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1305 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
1306 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
1307 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
1308 beq L03A2 Yes, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1309 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
1310 abx
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1311 cmpx 2,s Done count?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1312 bhs L03A0 Yes, exit
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1313 lda ,u+ Get character from buffer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1314 beq L0388 Null, go send it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1315 cmpa PD.EOR,y Done line?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1316 bne L0388 No go send it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1317 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
1318 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
1319 L03A2 rts Return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1320
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1321 L03A3 bsr L03BF
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1322 * 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
1323 L03A5 leax ,x Any characters?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1324 beq L03B8 No, reset buffer ptr
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1325 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
1326 beq L03A3 Yes, go do it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1327 ldb PD.EKO,y Echo character?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1328 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
1329 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
1330 lbsr L0565 send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1331 L03B5 ldx #0 zero out count
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1332 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
1333 L03BA rts return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1334
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1335 * Process PD.BSP
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1336 L03BB leax ,x Any characters?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1337 beq L03A2 No, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1338 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
1339 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
1340 ldb PD.EKO,y Echoing characters?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1341 beq L03BA No, return
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1342 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
1343 beq L03D4 Use BSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1344 bsr L03D4 Do a BSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1345 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
1346 lbsr L0565 Send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1347 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
1348 lbra L0565 Send it to driver
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1349
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1350 * 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
1351 get.wptr pshs x,u
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1352 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
1353 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
1354 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
1355 ldd d,x
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1356 * cmpd #"CC is it CC3IO?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1357 cmpd #$4343 is it CC3IO?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1358 bne no.fast no, don't do the fast stuff
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1359 ldd >$106E does GrfDrv have an entry address?
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1360 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
1361
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1362 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
1363 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
1364 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
1365
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1366 * Get window table pointer & verify it: copied from WindInt and modified
1415
76137b27060d cc3io.asm: fixed issue with keyboard mouse being reset when CLEARing, still
boisy
parents: 1348
diff changeset
1367 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
1368 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
1369 mul Calculate window table offset
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1370 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
1371 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
1372 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
1373 bgt VerExit If $01-$7f, should be ok
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1374
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1375 * Return illegal window definition error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1376 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
1377 puls x,u,pc
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1378
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1379 VerExit clra No error
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1380 puls x,u,pc
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1381
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1382 IFNE H6309
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1383 call.grf pshs d,x,y,u save registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1384 pshs cc save old CC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1385 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
1386
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1387 ldx #$0180 where to put the text
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1388 clra make sure high byte=0
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1389 tfr d,w
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1390 tfm u+,x+ move the data into low memory
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1391
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1392 ldb #6 alpha put
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1393 stb >$1002 flag grfdrv busy
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1394 lde ,s+ grab old CC off of the stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1395 lda 1,s get the number of characters to write
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1396 * A = number of bytes at $0580 to write out...
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1397 bsr do.grf do the call
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1398 * 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
1399 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
1400
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1401 * 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
1402 * 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
1403 * ALL REGISTERS WILL BE TRASHED
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1404 do.grf sts >$1007 stack pointer for GrfDrv
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1405 lds <D.CCStk get new stack pointer
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1406 pshs dp,x,y,u,pc
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1407 pshsw
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1408 pshs cc,d save all registers
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1409
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1410 ldx >$106E get GrfDrv entry address
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1411
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1412 stx R$PC,s save grfdrv entry address as PC on the stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1413 ste R$CC,s save CC onto CC on the stack
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1414 jmp [>D.FLip1] flip to grfdrv and execute it
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1415 * 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
1416 * 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
1417 * 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
1418
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1419 ELSE
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1420
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1421 call.grf pshs u,y,x,d
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1422 tfr cc,a
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1423 orcc #IntMasks+Entire
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1424 ldx #$0180
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1425 sta -2,x
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1426 call.lp lda ,u+
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1427 sta ,x+
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1428 decb
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1429 bne call.lp
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1430 stb ,x
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1431 lda 1,s
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1432 bsr do.grf
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1433 puls u,y,x,d,pc
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1434
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1435 do.grf sts >$1007
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1436 lds <D.CCStk
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1437 ldu #$1100
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1438 ldb #$3A
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1439 stb >$1002
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1440 stb >$017F
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1441 pshs pc,u,y,x,dp,b,a,cc
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1442 ldx >$106E
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1443 stx R$PC,s
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1444 ldb >$107E
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1445 stb ,s
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1446 jmp [>D.Flip1]
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1447 ENDC
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1448
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1449 emod
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1450 eom equ *
536
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1451 end
631cd5e95ee7 Merged NitrOS-9 and OS-9 Level Two sources into one file
boisy
parents: 525
diff changeset
1452