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