annotate level1/cmds/dsave.asm @ 2050:d63587190d9b

For porting
author boisy
date Sun, 23 Apr 2006 19:13:38 +0000
parents 91fb0d6e789f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1 ********************************************************************
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
2 * dsave - Multi-file copy utility
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
4 * $Id$
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
5 *
1325
84ea83668304 Redid comments, reset all rev nibbles that weren't explictly set to 0
boisy
parents: 962
diff changeset
6 * Edt/Rev YYYY/MM/DD Modified by
84ea83668304 Redid comments, reset all rev nibbles that weren't explictly set to 0
boisy
parents: 962
diff changeset
7 * Comment
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
8 * ------------------------------------------------------------------
1325
84ea83668304 Redid comments, reset all rev nibbles that weren't explictly set to 0
boisy
parents: 962
diff changeset
9 * 1 2003/01/11 Boisy G. Pitre
84ea83668304 Redid comments, reset all rev nibbles that weren't explictly set to 0
boisy
parents: 962
diff changeset
10 * Rewrote in assembly language.
1449
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
11 *
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
12 * 1r1 2003/12/11 Boisy G. Pitre
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
13 * Fixed -b option so that it prepends device name in front of os9boot
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
14 * filename. Also fixed -b= option to work as well.
1930
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
15 *
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
16 * 2r0 2005/11/26 Boisy G. Pitre
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
17 * Added -t and -n options, ala OS-9/68K.
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
18
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
19 nam dsave
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
20 ttl Multi-file copy utility
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
21
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
22 ifp1
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
23 use defsfile
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
24 endc
200
e9ce43cc215e Made major changes to headers for consistency and identification
boisy
parents: 113
diff changeset
25
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
26 * Here are some tweakable options
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
27 DOHELP set 0 1 = include help info
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
28 INDENTSZ set 2 number of spaces to indent when -i is used
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
29 STACKSZ set 1024 estimated stack size in bytes
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
30 PARMSZ set 256 estimated parameter size in bytes
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
31
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
32 * Module header definitions
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
33 tylg set Prgrm+Objct
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
34 atrv set ReEnt+rev
1930
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
35 rev set $00
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
36 edition set 2
200
e9ce43cc215e Made major changes to headers for consistency and identification
boisy
parents: 113
diff changeset
37
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
38 mod eom,name,tylg,atrv,start,size
200
e9ce43cc215e Made major changes to headers for consistency and identification
boisy
parents: 113
diff changeset
39
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
40 * Your utility's static storage vars go here
924
c155aac72190 Made cosmetic changes
boisy
parents: 200
diff changeset
41 org 0
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
42 * These vars are used by the base template and shouldn't be removed
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
43 parmptr rmb 2 pointer to our command line params
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
44 bufptr rmb 2 pointer to user expandable buffer
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
45 bufsiz rmb 2 size of user expandable buffer
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
46 * These vars are used for this example, it will probably change for you
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
47 dirlevel rmb 1 current directory level (0 = top)
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
48 *doexec rmb 1 execute flag
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
49 errcode rmb 1 error code storage
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
50 plistcnt rmb 1 command line pathlist count
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
51 doboot rmb 1
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
52 indent rmb 1
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
53 onelevel rmb 1
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
54 nomakdir rmb 1
1930
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
55 noload rmb 1 don't load copy/cmp
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
56 notmode rmb 1
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
57 rewrite rmb 1
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
58 cpymemsz rmb 1
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
59 doverify rmb 1
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
60 dstpath rmb 2 pointer to second (optional) pathlist on cmd line
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
61 lineptr rmb 2
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
62 sopt rmb 1
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
63 ddbt rmb 3 copy of source disk's DD.BT from LSN0
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
64 * vars for pwd integrated code
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
65 fildes rmb 1
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
66 srcptr rmb 2
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
67 dotdotfd rmb 3 LSN of ..
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
68 dotfd rmb 3 LSN of .
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
69 ddcopy rmb 3
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
70 bbuff rmb 64 -b= buffer
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
71 dentry rmb DIR.SZ*2
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
72 srcpath rmb 128
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
73 buffend rmb 1
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
74 pathext rmb 256 extended part of source pathlist
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
75 devname rmb 32
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
76 cleartop equ . everything up to here gets cleared at start
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
77 direntbf rmb DIR.SZ
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
78 * Next is a user adjustable buffer with # modifier on command line.
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
79 * Some utilities won't need this flexibility, some will.
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
80 * Currently set up to be larger for Level 2 than Level 1
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
81 * Note: this buffer must come just before the stack
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
82 linebuff rmb 256
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
83 IFGT Level-1
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
84 bigbuff rmb 8*1024 8K default buffer for Level 2
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
85 ELSE
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
86 bigbuff rmb 512 512 byte default buffer for Level 1
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
87 ENDC
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
88 * Finally the stack for any PSHS/PULS/BSR/LBSRs that we might do
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
89 rmb STACKSZ+PARMSZ
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
90 size equ .
200
e9ce43cc215e Made major changes to headers for consistency and identification
boisy
parents: 113
diff changeset
91
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
92 * The utility name and edition goes here
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
93 name fcs /dsave/
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
94 fcb edition
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
95
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
96 * Place constant strings here
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
97 IFNE DOHELP
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
98 HlpMsg fcb C$LF
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
99 fcb C$CR
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
100 HlpMsgL equ *-HlpMsg
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
101 ENDC
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
102
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
103 UnkOpt fcc /unknown option: /
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
104 UnkOptL equ *-UnkOpt
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
105
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
106 ShlEko fcc "t"
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
107 CR fcb C$CR
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
108
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
109 Chd fcc "chd"
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
110 fcb C$CR
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
111
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
112 MakDir fcc "makdir"
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
113 fcb C$CR
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
114
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
115 Cmp fcc "cmp"
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
116 fcb C$CR
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
117
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
118 TMode fcc "tmode"
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
119 fcb C$CR
1678
40322608e006 tmode is now made from xmode, dsave modified to handle new tmode parameter
boisy
parents: 1531
diff changeset
120 TPause fcc ".1 pau=1"
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
121 fcb C$CR
1678
40322608e006 tmode is now made from xmode, dsave modified to handle new tmode parameter
boisy
parents: 1531
diff changeset
122 TNoPause fcc ".1 pau=0"
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
123 fcb C$CR
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
124
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
125 Load fcc "load"
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
126 fcb C$CR
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
127
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
128 Unlink fcc "unlink"
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
129 fcb C$CR
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
130
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
131 Copy fcc "copy"
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
132 fcb C$CR
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
133
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
134 OS9Gen fcc "os9gen"
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
135 fcb C$CR
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
136
955
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
137 OS9Boot fcs "OS9Boot"
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
138
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
139 DotDot fcc "."
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
140 Dot fcc "."
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
141 fcb C$CR
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
142
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
143 * Here's how registers are set when this process is forked:
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
144 *
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
145 * +-----------------+ <-- Y (highest address)
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
146 * ! Parameter !
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
147 * ! Area !
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
148 * +-----------------+ <-- X, SP
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
149 * ! Data Area !
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
150 * +-----------------+
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
151 * ! Direct Page !
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
152 * +-----------------+ <-- U, DP (lowest address)
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
153 *
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
154 * D = parameter area size
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
155 * PC = module entry point abs. address
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
156 * CC = F=0, I=0, others undefined
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
157
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
158 * The start of the program is here.
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
159 * Before any command line processing is done, we clear out
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
160 * our static memory from U to cleartop, then determine the
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
161 * size of our data area (minus the stack).
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
162 start pshs u,x save registers for later
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
163 leax cleartop,u point to end of area to zero out
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
164 IFNE H6309
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
165 subr u,x subtract U from X
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
166 tfr x,w and put X in W
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
167 clr ,-s put a zero on the stack
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
168 tfm s,u+ and use TFM to clear starting at U
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
169 leas 1,s clean up the stack
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
170 ELSE
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
171 pshs x save end pointer on stack
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
172 clrnxt clr ,u+ clear out
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
173 cmpu ,s done?
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
174 bne clrnxt branch if not
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
175 leas 2,s else clear stack
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
176 ENDC
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
177 puls x,u and restore our earlier saved registers
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
178 leay bigbuff,u point Y to copy buffer offset in U
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
179 stx <parmptr save parameter pointer
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
180 sty <bufptr save pointer to buffer
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
181 tfr s,d place top of stack in D
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
182 IFNE H6309
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
183 subr y,d
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
184 ELSE
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
185 pshs y save Y on stack
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
186 subd ,s++ get size of space between copybuf and X
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
187 ENDC
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
188 subd #STACKSZ+PARMSZ subtract out our stack/param size
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
189 std <bufsiz size of our buffer
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
190
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
191 * At this point we have determined our buffer space and saved pointers
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
192 * for later use. Now we will parse the command line for options that
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
193 * begin with a dash.
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
194 * Note that X will NOT point to a space, but to either a CR (if no
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
195 * parameters were passed) or the first non-space character of the
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
196 * parameter.
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
197 * Here we merely grab the byte at X into A and test for end of line,
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
198 * exiting if so. Utilities that don't require arguments should
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
199 * comment out the following three lines.
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
200 lda ,x get first char
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
201 cmpa #C$CR CR?
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
202 lbeq ShowHelp if so, no parameters... show help and exit
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
203 GetChar lda ,x+ get next character on cmd line
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
204 cmpa #C$CR CR?
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
205 lbeq DoDSave if so, do whatever this utility does
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
206 cmpa #'- is it an option?
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
207 beq GetDash if so, process it
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
208 inc <plistcnt else must be a non-option argument (file)
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
209 lbsr SkipNSpc move past the argument
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
210 ChkDash lbsr SkipSpcs and any following spaces
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
211 bra GetChar start processing again
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
212 GetDash lda #C$SPAC get a space char
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
213 sta -1,x and wipe out the dash from the cmd line
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
214 GetDash2 ldd ,x+ load option char and char following
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
215 ora #$20 make lowercase
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
216 IsItB cmpa #'b is it this option?
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
217 bne IsItE branch if not
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
218 sta <doboot
1449
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
219 pshs x save for later
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
220 cmpb #'= = follows?
955
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
221 beq DoEqual
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
222 * -b alone, copy default bootfile name to bbuff
1449
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
223 * first, get device name
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
224 lda #DIR.+READ.
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
225 leax dot,pcr
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
226 os9 I$Open
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
227 lbcs Exit
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
228 leax >bbuff,u
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
229 ldb #PDELIM
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
230 stb ,x+
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
231 ldb #SS.DevNm
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
232 os9 I$GetStt
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
233 lbcs Exit
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
234 os9 I$Close
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
235 os9 F$PrsNam
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
236 lbcs Exit
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
237 lda -1,y
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
238 anda #$7F wipe out hi bit
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
239 sta -1,y
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
240 lda #PDELIM
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
241 sta ,y+
955
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
242 leax OS9Boot,pcr
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
243 lbsr StrCpy
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
244 lda #C$CR
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
245 sta ,y
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
246 bra IsItBEx
1449
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
247 DoEqual leax 1,x move X past '='
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
248 leay bbuff,u point to buffer
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
249 lbsr ParmCpy copy parameter from X to Y
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
250 lda #C$CR
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
251 sta ,y
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
252 lda #C$SPAC
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
253 IsItBLp sta ,-x
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
254 cmpx ,s
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
255 bne IsItBLp
1449
9859ddd89ff8 Fixed bugs in -b option of dsave, modified ChangeLogs
boisy
parents: 1325
diff changeset
256 clrb so FixCmdLn will not look for more opts
955
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
257 IsItBEx puls x
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
258 bra FixCmdLn
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
259 IsItE equ *
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
260 * cmpa #'e is it this option?
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
261 * bne IsItI branch if not
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
262 * sta <doexec
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
263 * bra FixCmdLn
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
264 IsItI cmpa #'i is it this option?
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
265 bne IsItL branch if not
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
266 sta <indent
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
267 bra FixCmdLn
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
268 IsItL cmpa #'l is it this option?
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
269 bne IsItM branch if not
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
270 sta <onelevel
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
271 bra FixCmdLn
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
272 IsItM cmpa #'m is it this option?
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
273 bne IsItR branch if not
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
274 sta <nomakdir
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
275 bra FixCmdLn
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
276 IsItR cmpa #'r is it this option?
1930
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
277 bne IsItT branch if not
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
278 sta <rewrite
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
279 bra FixCmdLn
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
280 IsItT cmpa #'t is it this option?
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
281 bne IsItN branch if not
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
282 sta <notmode
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
283 bra FixCmdLn
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
284 IsItN cmpa #'n is it this option?
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
285 bne IsItS branch if not
1930
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
286 sta <noload
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
287 bra FixCmdLn
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
288 IsItS cmpa #'s is it this option?
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
289 bne IsItV branch if not
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
290 * add code to parse memsize
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
291 pshs x
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
292 lbsr ASC2Byte
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
293 stb <sopt
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
294 lda #C$SPAC
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
295 SpcNext sta ,-x erase everything after -s
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
296 cmpx ,s
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
297 bne SpcNext
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
298 puls x
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
299 clrb
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
300 bra FixCmdLn
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
301 IsItV cmpa #'v is it this option?
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
302 bne BadOpt branch if not
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
303 sta <doverify
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
304 FixCmdLn lda #C$SPAC get space
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
305 sta -$01,x and wipe out option character
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
306 cmpb #'0
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
307 lblt ChkDash start dash option processing again
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
308 lbra GetDash possibly another option following?
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
309
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
310 * We branch here if we encounter an unknown option character
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
311 * A = bad option character
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
312 BadOpt leax UnkOpt,pcr
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
313 ldy #UnkOptL
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
314 ldb #C$CR
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
315 pshs d save bad option and CR on stack
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
316 lda #$02 stderr
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
317 os9 I$Write
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
318 leax ,s point X at option char on stack
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
319 os9 I$WritLn print option and CR
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
320 puls d clean up stack
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
321 lbra ShowHelp
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
322
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
323 * At this point options are processed.
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
324 * We load X with our parameter pointer and go down the command line
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
325 * looking at each file to process (options have been wiped out with
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
326 * spaces)
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
327 *
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
328 * Note, the following two instructions may not be needed, depending on
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
329 * if your utility requires a non-option on the command line.
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
330 DoDSave dec <plistcnt we should have only one path on cmdline
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
331 lbne ShowHelp if not, exit with error
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
332 ldx <parmptr get our parameter pointer off stack
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
333 lbsr SkipSpcs skip any leading spaces
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
334 stx <dstpath save dest path
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
335 lbsr SkipNSpc
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
336 lda #C$CR
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
337 sta ,x+
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
338
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
339 * Here we have src and possibly destination pathlist. Now we can
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
340 * start processing the dsave
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
341 leax linebuff,u
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
342 stx <lineptr reset line buffer pointer
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
343
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
344 * Get entire pathlist to working directory
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
345 lbsr pwd
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
346 * Open source device as raw and obtain 24 bit LSN to bootfile
955
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
347 * ldd #$400D @ + CR
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
348 * pshs d save on stack
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
349 * leax ,s point X to stack
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
350 * lda #READ. read mode
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
351 * os9 I$Open open
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
352 * puls x clean stack
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
353 * lbcs Exit branch if error
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
354 * pshs a save path
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
355 * ldx #0000
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
356 * tfr u,y
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
357 * ldu #DD.BT
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
358 * os9 I$Seek seek to DD.BT in LSN0
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
359 * tfr y,u
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
360 * lbcs Exit
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
361 * leax ddbt,u point to buffer
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
362 * ldy #3 read 3 bytes at DD.BT
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
363 * os9 I$Read
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
364 * lbcs Exit exit of error
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
365 * puls a get path on stack
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
366 * os9 I$Close and close it
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
367
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
368 * Do dsave "pre" commands
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
369 lbsr DoEcho
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
370 ldx <dstpath point to source path
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
371 lbsr DoChd chd to it
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
372 lbsr DoPauseOff
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
373 lbsr DoLoadCopy
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
374 tst <doverify
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
375 beq PreRecurse
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
376 lbsr DoLoadCmp
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
377
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
378 * Steps in processing files:
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
379 * 0. Open path to '.'
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
380 * 1. Read next directory entry
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
381 * 2. if directory encountered:
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
382 * a. chd entry
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
383 * b. bsr step 0
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
384 * c. chd ..
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
385 * 3. if eof, goto step 6
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
386 * 4. copy file to dest
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
387 * 5. goto 1
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
388 * 6. Close path to source dir
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
389
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
390 PreRecurse
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
391 leay buffend,u
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
392 bsr CopyDir
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
393
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
394 * Do dsave "post" commands
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
395 tst <doverify
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
396 beq PostRecurse
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
397 lbsr DoUnlinkCmp
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
398 PostRecurse
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
399 lbsr DoUnlinkCopy
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
400 lbsr DoPauseOn
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
401
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
402 lbra ExitOk
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
403
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
404 CopyDir ldx <srcptr
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
405 lda #DIR.+READ. permissions as DIR.
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
406 os9 I$Open open directory
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
407 lbcs CopyRts branch if error
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
408 ldb #PDELIM
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
409 stb ,y+
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
410 pshs y
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
411 pshs a save path to .
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
412 pshs x,u save regs
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
413 ldx #$0000
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
414 ldu #DIR.SZ*2 seek past two dir entries
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
415 os9 I$Seek skip over . and .. entries of this dir
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
416 puls x,u get saved regs
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
417 bcs Copy2Ex branch if error
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
418 FileLoop lda ,s get path to . on stack
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
419 ldy #DIR.SZ get size of directory entry
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
420 leax direntbf,u point to directory entry buffer
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
421 os9 I$Read read directory entry
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
422 bcs Copy2Ex branch if error
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
423 tst ,x first byte at x... is it zero?
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
424 beq FileLoop yep, empty dir entry
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
425 ldy 1,s get Y on stack
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
426 lbsr StrCpy
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
427 lda #C$CR
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
428 sta ,y
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
429 ldx <srcptr
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
430 lda #DIR.+READ. open as directory
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
431 os9 I$Open open it
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
432 bcs ItsAFile if error, it's not a dir
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
433 os9 I$Close close it
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
434 * Here, we know that the file we just opened and closed was a directory
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
435 ItsADir
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
436 tst <onelevel do we ignore dirs?
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
437 bne FileLoop branch if so
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
438 pshs y
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
439 ldx 3,s
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
440 lbsr DoMakDir makdir it
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
441 bcc ItsADir2
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
442 os9 F$PErr
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
443 ItsADir2 ldx 3,s
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
444 lbsr DoChd
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
445 bcs FileLoop if error, ignore dir
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
446 inc <dirlevel
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
447 puls y
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
448 bsr CopyDir
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
449 leax DotDot,pcr
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
450 lbsr DoChd
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
451 dec <dirlevel
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
452 bra FileLoop
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
453
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
454 * Here, we know that the file we just opened and closed was NOT a directory
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
455 ItsAFile tst <dirlevel are we at root level?
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
456 bne ItsAFile2 no, don't even do os9boot test
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
457 ldx 1,s else get ptr to current filename
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
458 lbsr BootCmp is it os9boot?
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
459 bcs ItsAFile2 no, copy away!
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
460 tst <doboot -b option specified?
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
461 beq FileLoop nope, ignore bootfile
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
462
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
463 * Here we have a file named OS9Boot in the top level directory
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
464 * We must os9gen the sucker
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
465 lbsr BuildOS9Gen
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
466 bra FileLoop
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
467
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
468 ItsAFile2
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
469 ldx 1,s
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
470 lbsr BuildCopy
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
471 tst <doverify verify on?
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
472 beq FileLoop branch if not
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
473 ldx 1,s
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
474 lbsr BuildCmp
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
475 bra FileLoop
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
476 Copy2Ex puls a get path to .
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
477 os9 I$Close close path
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
478 CopyEx leas 2,s
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
479 CopyRts rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
480
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
481 ShowHelp equ *
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
482 IFNE DOHELP
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
483 leax >HlpMsg,pcr point to help message
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
484 ldy #HlpMsgL get length
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
485 lda #INDENTSZ std error
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
486 os9 I$WritLn write it
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
487 ENDC
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
488 ExitOk clrb clear carry
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
489 Exit os9 F$Exit and exit
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
490
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
491 * This routine counts the number of non-whitespace characters
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
492 * starting at X
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
493 *
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
494 * Entry:
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
495 * X = ptr to string (space, comma or CR terminated)
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
496 * Exit:
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
497 * Y = length of string
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
498 * X = ptr to byte after string
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
499 StrLen pshs a
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
500 ldy #$0000
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
501 StrLenLp lda ,x+
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
502 cmpa #C$SPAC
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
503 beq StrLenEx
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
504 cmpa #C$CR
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
505 beq StrLenEx
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
506 leay 1,y
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
507 bra StrLenLp
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
508 StrLenEx puls a,pc
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
509
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
510 * This routine copies a string of text from X to Y until
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
511 * a CR or hi bit char is encountered
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
512 *
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
513 * Entry:
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
514 * X = ptr to src string
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
515 * Y = ptr to dest string
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
516 * Exit:
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
517 * D = number of bytes copied
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
518 * X = ptr to char past src string
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
519 * Y = ptr to char past dest string
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
520 StrCpy pshs u
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
521 ldu #$0000
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
522 CopyFnLp lda ,x+
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
523 tfr a,b
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
524 anda #$7F
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
525 cmpa #C$CR
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
526 ble CopyFnEx
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
527 sta ,y+
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
528 leau 1,u
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
529 tstb
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
530 bpl CopyFnLp
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
531 CopyFnEx tfr u,d
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
532 puls u,pc
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
533
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
534 * Works like StrCpy, but stops if a space is encountered
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
535 ParmCpy pshs u
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
536 ldu #$0000
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
537 ParmFnLp lda ,x+
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
538 tfr a,b
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
539 anda #$7F
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
540 cmpa #C$SPAC
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
541 ble ParmFnEx
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
542 sta ,y+
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
543 leau 1,u
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
544 tstb
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
545 bpl ParmFnLp
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
546 ParmFnEx tfr u,d
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
547 puls u,pc
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
548
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
549 * Compare two filenames to see if they match
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
550 * X = filename to compare against OS9boot
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
551 BootCmp pshs y,x
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
552 lbsr StrLen get length of passed filename
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
553 puls x get pointer to passed filename
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
554 tfr y,d
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
555 leay OS9Boot,pcr
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
556 os9 F$CmpNam
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
557 puls y,pc
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
558
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
559 MakeUp cmpa #'a
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
560 blt MakeUpEx
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
561 cmpa #'z
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
562 bgt MakeUpEx
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
563 anda #$DF make uppercase
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
564 MakeUpEx rts
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
565
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
566 StrHCpy pshs u
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
567 ldu #$0000
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
568 HCpyFnLp lda ,x+
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
569 beq HCpyFnEx
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
570 tfr a,b
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
571 anda #$7F strip out possible hi bit
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
572 sta ,y+
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
573 leau 1,u
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
574 tstb test copy of byte in B
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
575 bpl HCpyFnLp if hi bit not set, keep going
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
576 * clr ,y+ add null byte at end
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
577 HCpyFnEx tfr u,d
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
578 puls u,pc
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
579
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
580 * This routine skip over spaces
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
581 *
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
582 * Entry:
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
583 * X = ptr to data to parse
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
584 * Exit:
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
585 * X = ptr to first non-whitespace char
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
586 * A = non-whitespace char
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
587 SkipSpcs lda ,x+
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
588 cmpa #C$SPAC
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
589 beq SkipSpcs
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
590 leax -1,x
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
591 rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
592
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
593 * This routine skips over everything but spaces, commas and CRs
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
594 *
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
595 * Entry:
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
596 * X = ptr to data to parse
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
597 * Exit:
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
598 * X = ptr to first whitespace char
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
599 * A = whitespace char
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
600 SkipNSpc lda ,x+
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
601 cmpa #C$SPAC
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
602 beq EatOut
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
603 cmpa #C$CR
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
604 bne SkipNSpc
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
605 EatOut leax -1,x
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
606 rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
607
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
608
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
609 * Entry: X = directory to make
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
610 DoMakDir
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
611 tst <nomakdir do we do the makdir?
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
612 bne Ret branch if not
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
613 pshs x
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
614 leax MakDir,pcr
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
615 bsr CopyCmd
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
616 ldx ,s
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
617 bsr CopyParm
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
618 bsr WriteIt
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
619 puls x
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
620 * tst <doexec are we executing?
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
621 * beq Ret if not, just return
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
622 * lda #DIR.+PREAD.+PEXEC.+EXEC.+UPDAT.
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
623 * os9 I$MakDir
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
624 rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
625
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
626 * Entry: X = path to chd to
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
627 DoChd
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
628 pshs x
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
629 leax Chd,pcr
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
630 bsr CopyCmd
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
631 ldx ,s
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
632 bsr CopyParm
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
633 bsr WriteIt
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
634 puls x
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
635 * tst <doexec are we executing?
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
636 * beq Ret if not, just return
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
637 * lda #DIR.+READ.
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
638 * os9 I$ChgDir
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
639 * bcc Ret
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
640 * os9 F$PErr
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
641 Ret rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
642
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
643 WriteIt ldy #1024
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
644 lda #1
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
645 os9 I$WritLn
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
646 Rts rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
647
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
648 DoEcho equ *
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
649 * tst <doexec are we executing?
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
650 * bne Rts if so, ignore this shell command
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
651 leax ShlEko,pcr else point to shell echo command
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
652 bra WriteIt
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
653
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
654 * Copy command into linebuff and put space after it
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
655 * Entry: X = pointer to command to copy to linebuff
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
656 CopyCmd leay linebuff,u and point Y to line buffer
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
657 * Do level indention if specified
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
658 tst <indent
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
659 beq CopyCmd3
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
660 lda <dirlevel
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
661 beq CopyCmd3
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
662 ldb #$02
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
663 mul
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
664 lda #C$SPAC
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
665 CopyCmd2 sta ,y+
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
666 decb
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
667 bne CopyCmd2
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
668 CopyCmd3 lbsr StrCpy copy command
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
669 lda #C$SPAC get space
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
670 sta ,y+ and store it after command in buff
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
671 rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
672
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
673 DoPauseOn
1930
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
674 tst <notmode do we do the tmode?
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
675 bne CPRts
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
676 leax TMode,pcr
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
677 bsr CopyCmd
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
678 leax TPause,pcr get pause command
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
679 bsr CopyParm
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
680 bra WriteIt
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
681 * bra ExecCmd
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
682
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
683 * Copy parameters into linebuff and put CR after it, then write it out to stdout
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
684 CopyParm lbsr StrCpy copy it
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
685 lda #C$CR
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
686 sta ,y+ and store CR after command in buff
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
687 leax linebuff,u
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
688 CPRts rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
689
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
690 * Entry: X = command to execute, with parameters
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
691 *ExecCmd tst <doexec
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
692 * beq CPRts
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
693 * lbsr SkipSpcs skip any leading spaces at X
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
694 * tfr x,y transfer command ptr to Y temporarily
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
695 * lbsr SkipNSpc skip command
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
696 * clr ,x+ clear white space char and move X
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
697 * pshs u save our statics
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
698 * tfr x,u move paramter pointer to Y
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
699 * tfr y,x move command ptr from Y back to X
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
700 * ldy #256
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
701 * clra
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
702 * os9 F$Fork
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
703 * os9 F$Wait
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
704 * bcc ExecRTS
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
705 * os9 F$PErr
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
706 *ExecRTS puls u,pc
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
707
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
708 DoPauseOff
1930
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
709 tst <notmode do we do the tmode?
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
710 bne CPRts
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
711 leax TMode,pcr
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
712 bsr CopyCmd
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
713 leax TNoPause,pcr
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
714 bsr CopyParm
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
715 lbra WriteIt
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
716 * bra ExecCmd
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
717
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
718 DoLoadCmp
1930
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
719 tst <noload do we load the utility?
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
720 bne CPRts
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
721 leax Load,pcr point to load command
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
722 bsr CopyCmd copy it to buffer
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
723 leax Cmp,pcr point to copy command
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
724 bsr CopyParm copy it to buffer
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
725 lbra WriteIt
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
726 * bra ExecCmd
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
727
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
728 DoUnlinkCmp
1930
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
729 tst <noload do we load the utility?
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
730 bne CPRts
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
731 leax Unlink,pcr
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
732 lbsr CopyCmd
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
733 leax Cmp,pcr
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
734 bsr CopyParm
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
735 lbra WriteIt
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
736 * bra ExecCmd
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
737
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
738 DoLoadCopy
1930
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
739 tst <noload do we load the utility?
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
740 bne CPRts
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
741 leax Load,pcr point to load command
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
742 lbsr CopyCmd copy it to buffer
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
743 leax Copy,pcr point to copy command
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
744 bsr CopyParm copy it to buffer
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
745 lbra WriteIt
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
746 * bra ExecCmd
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
747
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
748 DoUnlinkCopy
1930
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
749 tst <noload do we load the utility?
91fb0d6e789f Added -t and -n options to dsave
boisy
parents: 1678
diff changeset
750 bne CPRts
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
751 leax Unlink,pcr
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
752 lbsr CopyCmd
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
753 leax Copy,pcr
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
754 lbsr CopyParm
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
755 lbra WriteIt
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
756 * bra ExecCmd
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
757
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
758 BuildOS9Gen
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
759 pshs x
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
760 leax OS9Gen,pcr
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
761 lbsr CopyCmd
955
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
762 ldx <dstpath
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
763 lbsr StrCpy copy to buffer
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
764 * write file name, then CR
955
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
765 lda #C$CR get space
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
766 sta ,y+ and store it after command in buff
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
767 leax linebuff,u
942dd8e50006 -b now fully functional, as well as -b=
boisy
parents: 954
diff changeset
768 lbsr WriteIt
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
769 leax bbuff,u
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
770 lbsr WriteIt
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
771 leax CR,pc
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
772 lbsr WriteIt
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
773 puls x,pc
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
774
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
775 BuildCmp pshs x
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
776 leax Cmp,pcr
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
777 lbsr CopyCmd
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
778 bra BuildCopy3
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
779
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
780 BuildCopy
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
781 pshs x
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
782 leax Copy,pcr
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
783 lbsr CopyCmd
962
8a0993b04c8a *** empty log message ***
boisy
parents: 955
diff changeset
784 ldb <sopt -s option specified?
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
785 beq BuildCopy2
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
786 lda #'#
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
787 sta ,y+
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
788 lbsr Byte2ASC
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
789 ldd #$4B20 K'space'
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
790 std ,y++
962
8a0993b04c8a *** empty log message ***
boisy
parents: 955
diff changeset
791 BuildCopy2
8a0993b04c8a *** empty log message ***
boisy
parents: 955
diff changeset
792 tst <rewrite
8a0993b04c8a *** empty log message ***
boisy
parents: 955
diff changeset
793 beq BuildCopy3
8a0993b04c8a *** empty log message ***
boisy
parents: 955
diff changeset
794 ldd #$2D72 -r
8a0993b04c8a *** empty log message ***
boisy
parents: 955
diff changeset
795 std ,y++
8a0993b04c8a *** empty log message ***
boisy
parents: 955
diff changeset
796 lda #C$SPAC
8a0993b04c8a *** empty log message ***
boisy
parents: 955
diff changeset
797 sta ,y+
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
798 BuildCopy3
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
799 ldx <srcptr get source path from statics
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
800 lbsr StrCpy copy to buffer
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
801 lda #C$SPAC get space
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
802 sta ,y+ and store it after command in buff
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
803 puls x
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
804 lbsr StrCpy
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
805 lda #C$CR get space
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
806 sta ,y+ and store it after command in buff
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
807 leax linebuff,u
954
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
808 lbra WriteIt
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
809 * lbsr ExecCmd
9a075092f6ce -b now working closer to original dsave, but BuildOS9Gen routine still
boisy
parents: 953
diff changeset
810 * rts
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
811
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
812 * Code to get current working directory
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
813 pwd leax >buffend,u point X to buffer
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
814 * lda #PDELIM get path delimiter
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
815 * sta ,x store at start of buffer
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
816 stx <srcptr store buffer pointer
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
817 leax >dot,pcr point to '.'
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
818 bsr open open directory
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
819 sta <fildes save path
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
820 lbsr rdtwo read '.' and '..' entries
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
821 ldd <dotdotfd get 24 bit LSN of ..
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
822 std <ddcopy
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
823 lda <dotdotfd+2
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
824 sta <ddcopy+2 and save copy
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
825 L0052 bsr AtRoot are we at root?
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
826 beq L0079 branch if so
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
827 leax >dotdot,pcr else point to '..'
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
828 bsr chdir change directory
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
829 lda <fildes get path to previous dir
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
830 os9 I$Close close it
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
831 lbcs Exit branch if error
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
832 leax >dot,pcr point X to new current dir
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
833 bsr open open it
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
834 bsr rdtwo read . and .. entires of this dir
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
835 bsr FindMtch search for match
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
836 bsr L00E2
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
837 ldd <dotdotfd
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
838 std <ddcopy
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
839 lda <dotdotfd+2
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
840 sta <ddcopy+2
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
841 bra L0052
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
842 L0079 lbsr GetDevNm get device name
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
843 lda <fildes get path
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
844 os9 I$Close close
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
845 rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
846
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
847 chdir lda #DIR.+READ.
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
848 os9 I$ChgDir
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
849 rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
850
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
851 open lda #DIR.+READ.
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
852 os9 I$Open
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
853 rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
854
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
855 * Read directory entry
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
856 read32 lda <fildes
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
857 leax dentry,u
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
858 ldy #DIR.SZ
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
859 os9 I$Read
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
860 rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
861
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
862 FindMtch lda <fildes get path to current dir
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
863 bsr read32 read entry
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
864 lbcs pwdrts branch if error
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
865 leax dentry,u point to entry buffer
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
866 leax <DIR.FD,x point X to FD LSN
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
867 leay ddcopy,u point Y to copy of LSN
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
868 bsr attop compare the two
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
869 bne FindMtch keep reading until we find match
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
870 rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
871
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
872 * Compare 3 bytes at X and Y
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
873 attop ldd ,x++
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
874 cmpd ,y++
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
875 bne L00C5
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
876 lda ,x
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
877 cmpa ,y
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
878 L00C5 rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
879
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
880 AtRoot leax dotdotfd,u point X at .. entry
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
881 leay dotfd,u point Y at . entry
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
882 bsr attop check if we're at the top
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
883 pwdrts rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
884
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
885 rdtwo bsr read32 * read "." from directory
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
886 ldd <dentry+DIR.FD
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
887 std <dotfd
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
888 lda <dentry+DIR.FD+2
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
889 sta <dotfd+2
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
890 bsr read32 * read ".." from directory
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
891 ldd <dentry+DIR.FD
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
892 std <dotdotfd
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
893 lda <dentry+DIR.FD+2
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
894 sta <dotdotfd+2
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
895 rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
896
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
897 * Get name from directory entry
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
898 L00E2 leax dentry,u
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
899 prsnam os9 F$PrsNam
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
900 lbcs pwdrts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
901 ldx <srcptr
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
902 L00EB lda ,-y
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
903 anda #$7F mask hi bit
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
904 sta ,-x save
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
905 decb
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
906 bne L00EB
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
907 lda #PDELIM
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
908 sta ,-x
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
909 stx <srcptr
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
910 rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
911
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
912 GetDevNm lda <fildes
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
913 ldb #SS.DevNm
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
914 leax >devname,u
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
915 os9 I$GetStt
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
916 bsr prsnam
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
917 rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
918
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
919
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
920 * Entry: X = ptr to ASCII number
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
921 * Exit: B = byte value of ASCII number
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
922 ASC2Byte clrb clear B
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
923 ASC2BLp lda ,x+ get byte from X
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
924 cmpa #'0
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
925 blt ASC2BEx
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
926 suba #'0 make 8 bit integer
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
927 cmpa #$09 compare against 9
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
928 bhi ASC2BEx branch if greater
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
929 pshs a else save A
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
930 lda #10 multiply by 10
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
931 mul do it
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
932 addb ,s+ add on stack
953
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
933 bcc ASC2BLp if overflow clear, do it again
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
934 ASC2BEx
c8489e2f382d Virtually 100% working EXCEPT for -b option. also need to support -b=xxx
boisy
parents: 951
diff changeset
935 * leax -1,x load byte
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
936 rts return
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
937
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
938 * Entry: Y = address to store number
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
939 * B = number to convert
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
940 Byte2ASC lda #$2F start A out just below $30 (0)
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
941 Hundreds inca inc it
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
942 subb #100 subtract 100
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
943 bcc Hundreds if result >= 0, continue
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
944 cmpa #'0 zero?
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
945 beq Tens if so, don't add to buffer
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
946 sta ,y+ else save at U and inc.
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
947 Tens lda #$3A start A out just above $39 (9)
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
948 TensLoop deca dec it
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
949 addb #10 add 10
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
950 bcc TensLoop if carry clear, continue
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
951 sta ,y+ save 10's digit
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
952 addb #'0
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
953 stb ,y+ and 1's digit
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
954 rts
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
955
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
956 emod
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
957 eom equ *
951
062d7f4e63b7 Start of new assembly dsave, still needs work
boisy
parents: 924
diff changeset
958 end