31
|
1 ********************************************************************
|
|
2 * Login - Allow remote shell access
|
|
3 *
|
|
4 * $Id: login.asm,v 1.1.1.1 2001/02/21 23:30:54 boisy Exp $
|
|
5 *
|
|
6 * Ed. Comments Who YY/MM/DD
|
|
7 * ------------------------------------------------------------------
|
|
8 * 16 Original Tandy distribution version
|
|
9 * 17 Changed Icpt routine's rts to rti BGP 98/10/15
|
|
10
|
|
11 nam Login
|
|
12 ttl Allow remote shell access
|
|
13
|
|
14 * Disassembled 98/09/14 23:54:24 by Disasm v1.6 (C) 1988 by RML
|
|
15
|
|
16 ifp1
|
|
17 use defsfile
|
|
18 endc
|
|
19
|
|
20 tylg set Prgrm+Objct
|
|
21 atrv set ReEnt+rev
|
|
22 rev set $01
|
|
23 edition set 17
|
|
24
|
|
25 mod eom,name,tylg,atrv,start,size
|
|
26
|
|
27 u0000 rmb 1
|
|
28 u0001 rmb 1
|
|
29 u0002 rmb 1
|
|
30 u0003 rmb 1
|
|
31 u0004 rmb 1
|
|
32 u0005 rmb 1
|
|
33 u0006 rmb 2
|
|
34 u0008 rmb 2
|
|
35 u000A rmb 2
|
|
36 u000C rmb 1
|
|
37 u000D rmb 256
|
|
38 u010D rmb 128
|
|
39 u018D rmb 80
|
|
40 u01DD rmb 80
|
|
41 u022D rmb 32
|
|
42 size equ .
|
|
43
|
|
44 name fcs /Login/
|
|
45 fcb edition
|
|
46
|
|
47 L0013 fcc "SYS/PASSWORD"
|
|
48 fcb C$CR
|
|
49 fcc ",,,,,,,,,,,,,,,"
|
|
50 L002F fcb C$LF
|
|
51 fcb C$LF
|
|
52 fcc "OS-9 Timesharing system"
|
|
53 fcb C$LF
|
|
54 fcc "Level II RS VR. 0"
|
|
55 fcb 48+OS9Vrsn
|
|
56 fcc ".0"
|
|
57 fcb 48+OS9Major
|
|
58 fcc ".0"
|
|
59 fcb 48+OS9Minor
|
|
60 fcb C$LF
|
|
61 L0063 fcb C$LF
|
|
62 fcb C$LF
|
|
63 fcc "OS-9 Level II RS Vr0"
|
|
64 fcb 48+OS9Vrsn
|
|
65 fcc ".0"
|
|
66 fcb 48+OS9Major
|
|
67 fcc ".0"
|
|
68 fcb 48+OS9Minor
|
|
69 fcb C$LF
|
|
70 L0082 fcb C$LF
|
|
71 fcc "User name?: "
|
|
72 L008F fcc "Who?"
|
|
73 fcb C$CR
|
|
74 L0094 fcc "Password: "
|
|
75 L009E fcc "Invalid password."
|
|
76 fcb C$CR
|
|
77 L00B0 fcb C$LF
|
|
78 fcc "Process #"
|
|
79 L00BA fcc " logged on "
|
|
80 L00C5 fcc " logged on "
|
|
81 fcb C$LF
|
|
82 L00D1 fcc "Welcome!"
|
|
83 fcb C$CR
|
|
84 L00DA fcc "Directory not found."
|
|
85 fcb C$CR
|
|
86 L00EF fcb C$LF
|
|
87 fcc "Syntax Error in password file"
|
|
88 L010D fcb C$LF
|
|
89 fcc "It's been nice communicating with you."
|
|
90 fcb C$LF
|
|
91 fcc "Better luck next time."
|
|
92 fcb C$CR
|
|
93 L014C fcc "SYS/MOTD"
|
|
94 fcb C$CR
|
|
95 L0155 fcc "...... "
|
|
96
|
|
97 IcptRtn rti changed from rts ++BGP
|
|
98
|
|
99 start leas >u010D,u
|
|
100 pshs y,x
|
|
101 leax <IcptRtn,pcr
|
|
102 os9 F$Icpt
|
|
103 bcs L0172
|
|
104 ldy #$0000
|
|
105 os9 F$SUser
|
|
106 L0172 puls y,x
|
|
107 lbcs L02F4
|
|
108 clr <u0000
|
|
109 leay >u01DD,u
|
|
110 sty <u000A
|
|
111 leay >u018D,u
|
|
112 sty <u0008
|
|
113 std ,--s
|
|
114 beq L0194
|
|
115 L018C lda ,x+
|
|
116 sta ,y+
|
|
117 cmpa #$0D
|
|
118 bne L018C
|
|
119 L0194 lda #$01
|
|
120 ldb #SS.ScSiz
|
|
121 os9 I$GetStt
|
|
122 bcc L01A4
|
|
123 cmpb #$D0
|
|
124 beq L01AB
|
|
125 lbra L0280
|
|
126 L01A4 cmpx #$0046
|
|
127 bcc L01AB
|
|
128 inc <u0000
|
|
129 L01AB lda #$01
|
|
130 leax >L0155,pcr
|
|
131 os9 I$ChgDir
|
|
132 lda #$01
|
|
133 leax >L0013,pcr
|
|
134 os9 I$Open
|
|
135 lbcs L02F4
|
|
136 sta <u0001
|
|
137 lda #$03
|
|
138 sta <u0003
|
|
139 ldd ,s++
|
|
140 beq L01D3
|
|
141 ldx <u0008
|
|
142 lda ,x
|
|
143 cmpa #$0D
|
|
144 bne L0209
|
|
145 L01D3 tst <u0000
|
|
146 beq L01E1
|
|
147 leax >L0063,pcr
|
|
148 ldy #$001F
|
|
149 bra L01E9
|
|
150 L01E1 leax >L002F,pcr
|
|
151 ldy #$0034
|
|
152 L01E9 lbsr L032F
|
|
153 L01EC dec <u0003
|
|
154 leax >L010D,pcr
|
|
155 lbmi L031F
|
|
156 leax >u018D,u
|
|
157 stx <u0008
|
|
158 leax >L0082,pcr
|
|
159 ldy #$000D
|
|
160 lbsr L0347
|
|
161 bcs L020E
|
|
162 L0209 lbsr L0393
|
|
163 bcc L0217
|
|
164 L020E leax >L008F,pcr
|
|
165 L0212 lbsr L0325
|
|
166 bra L01EC
|
|
167 L0217 lbsr L03B9
|
|
168 bcc L0253
|
|
169 ldx <u0008
|
|
170 lda ,x
|
|
171 cmpa #$0D
|
|
172 bne L0242
|
|
173 lda #$2C
|
|
174 sta ,x+
|
|
175 stx <u0008
|
|
176 lbsr L0357
|
|
177 leax >L0094,pcr
|
|
178 ldy #$000A
|
|
179 lbsr L0347
|
|
180 lbsr L037F
|
|
181 bcs L020E
|
|
182 lbsr L03B9
|
|
183 bcc L0253
|
|
184 L0242 leax >u018D,u
|
|
185 stx <u0008
|
|
186 lbsr L03A1
|
|
187 bcc L0217
|
|
188 leax >L009E,pcr
|
|
189 bra L0212
|
|
190 L0253 lda <u0001
|
|
191 os9 I$Close
|
|
192 lbsr L0408
|
|
193 tfr d,y
|
|
194 os9 F$SUser
|
|
195 lbsr L0408
|
|
196 tsta
|
|
197 lbne L031B
|
|
198 tstb
|
|
199 lbeq L031B
|
|
200 stb <u0005
|
|
201 os9 F$ID
|
|
202 sta <u0004
|
|
203 lda #$01
|
|
204 leax >L014C,pcr
|
|
205 os9 I$Open
|
|
206 bcc L0280
|
|
207 clra
|
|
208 L0280 sta <u0002
|
|
209 lda #$04
|
|
210 bsr L02F7
|
|
211 lda #$03
|
|
212 bsr L02F7
|
|
213 leax >L00B0,pcr
|
|
214 ldy #$000A
|
|
215 lbsr L033D
|
|
216 leax u0004,u
|
|
217 lbsr L0471
|
|
218 tst <u0000
|
|
219 beq L02A8
|
|
220 leax >L00C5,pcr
|
|
221 ldy #$000C
|
|
222 bra L02B0
|
|
223 L02A8 leax >L00BA,pcr
|
|
224 ldy #$000B
|
|
225 L02B0 bsr L032F
|
|
226 leax >L00D1,pcr
|
|
227 bsr L0325
|
|
228 lbsr L03F0
|
|
229 clrb
|
|
230 ldx <u0006
|
|
231 leau ,x
|
|
232 L02C0 lda ,u+
|
|
233 cmpa #$30
|
|
234 bcc L02C0
|
|
235 cmpa #$2C
|
|
236 beq L02CC
|
|
237 leau -u0001,u
|
|
238 L02CC lda ,u+
|
|
239 cmpa #$20
|
|
240 beq L02CC
|
|
241 leau -u0001,u
|
|
242 pshs u
|
|
243 ldy #$0000
|
|
244 L02DA lda ,u+
|
|
245 leay $01,y
|
|
246 cmpa #$0D
|
|
247 bne L02DA
|
|
248 puls u
|
|
249 lda <u0004
|
|
250 ldb <u0005
|
|
251 os9 F$SPrior
|
|
252 ldd #$0100
|
|
253 os9 F$Chain
|
|
254 os9 F$PErr
|
|
255 L02F4 os9 F$Exit
|
|
256 L02F7 ldx <u0006
|
|
257 os9 I$ChgDir
|
|
258 bcs L0315
|
|
259 ldx <u0006
|
|
260 L0300 lda ,x+
|
|
261 cmpa #$0D
|
|
262 beq L031B
|
|
263 cmpa #$2C
|
|
264 bne L0300
|
|
265 lda #$20
|
|
266 L030C cmpa ,x+
|
|
267 beq L030C
|
|
268 leax ,-x
|
|
269 stx <u0006
|
|
270 rts
|
|
271 L0315 leax >L00DA,pcr
|
|
272 bra L031F
|
|
273 L031B leax >L00EF,pcr
|
|
274 L031F bsr L0325
|
|
275 clrb
|
|
276 os9 F$Exit
|
|
277 L0325 ldy #$0100
|
|
278 lda #$01
|
|
279 os9 I$WritLn
|
|
280 rts
|
|
281 L032F bsr L033D
|
|
282 lbsr L0498
|
|
283 lbsr L0498
|
|
284 lbsr L0498
|
|
285 lbra L0454
|
|
286 L033D lda ,x+
|
|
287 lbsr L049A
|
|
288 leay -$01,y
|
|
289 bne L033D
|
|
290 rts
|
|
291 L0347 bsr L033D
|
|
292 lbsr L04AC
|
|
293 ldx <u0008
|
|
294 ldy #$0050
|
|
295 clra
|
|
296 os9 I$ReadLn
|
|
297 rts
|
|
298 L0357 pshs x,b,a
|
|
299 leax >u022D,u
|
|
300 ldb #$00
|
|
301 clra
|
|
302 os9 I$GetStt
|
|
303 bcs L0379
|
|
304 lda ,x
|
|
305 cmpa #$00
|
|
306 bne L0379
|
|
307 lda $04,x
|
|
308 pshs a
|
|
309 clr $04,x
|
|
310 bsr L037F
|
|
311 puls a
|
|
312 sta $04,x
|
|
313 puls pc,x,b,a
|
|
314 L0379 lda #$FF
|
|
315 sta ,x
|
|
316 puls pc,x,b,a
|
|
317 L037F pshs x,b,a,cc
|
|
318 leax >u022D,u
|
|
319 lda ,x
|
|
320 cmpa #$00
|
|
321 bne L0391
|
|
322 ldb #$00
|
|
323 clra
|
|
324 os9 I$SetStt
|
|
325 L0391 puls pc,x,b,a,cc
|
|
326 L0393 pshs u
|
|
327 lda <u0001
|
|
328 ldx #$0000
|
|
329 leau ,x
|
|
330 os9 I$Seek
|
|
331 puls u
|
|
332 L03A1 lda <u0001
|
|
333 leax >u010D,u
|
|
334 ldy #$0080
|
|
335 os9 I$ReadLn
|
|
336 bcs L03B8
|
|
337 stx <u0006
|
|
338 bsr L03B9
|
|
339 bcs L03A1
|
|
340 stx <u0006
|
|
341 L03B8 rts
|
|
342 L03B9 ldx <u0006
|
|
343 ldy <u0008
|
|
344 L03BE lda ,x+
|
|
345 cmpa #$2C
|
|
346 beq L03D2
|
|
347 cmpa #$0D
|
|
348 beq L03D0
|
|
349 eora ,y+
|
|
350 anda #$DF
|
|
351 beq L03BE
|
|
352 L03CE comb
|
|
353 rts
|
|
354 L03D0 leax -$01,x
|
|
355 L03D2 lda ,y+
|
|
356 cmpa #$2C
|
|
357 beq L03DE
|
|
358 cmpa #$30
|
|
359 bcc L03CE
|
|
360 leay -$01,y
|
|
361 L03DE lda ,y+
|
|
362 cmpa #$20
|
|
363 beq L03DE
|
|
364 leay -$01,y
|
|
365 sty <u0008
|
|
366 stx <u0006
|
|
367 clrb
|
|
368 rts
|
|
369 L03ED lbsr L0325
|
|
370 L03F0 lda <u0002
|
|
371 beq L0406
|
|
372 leax >u018D,u
|
|
373 ldy #$0050
|
|
374 os9 I$ReadLn
|
|
375 bcc L03ED
|
|
376 lda <u0002
|
|
377 os9 I$Close
|
|
378 L0406 clrb
|
|
379 rts
|
|
380 L0408 ldx <u0006
|
|
381 clra
|
|
382 clrb
|
|
383 pshs y,x,b,a
|
|
384 pshs b
|
|
385 L0410 ldb ,x+
|
|
386 cmpb #$2E
|
|
387 bne L0423
|
|
388 tsta
|
|
389 lbne L031B
|
|
390 ldb $02,s
|
|
391 stb ,s
|
|
392 clr $02,s
|
|
393 bra L0410
|
|
394 L0423 subb #$30
|
|
395 cmpb #$09
|
|
396 bhi L043C
|
|
397 clra
|
|
398 ldy #$000A
|
|
399 L042E addd $01,s
|
|
400 lbcs L031B
|
|
401 leay -$01,y
|
|
402 bne L042E
|
|
403 std $01,s
|
|
404 bra L0410
|
|
405 L043C lda -$01,x
|
|
406 cmpa #$2C
|
|
407 lbne L031B
|
|
408 stx <u0006
|
|
409 lda ,s+
|
|
410 beq L0452
|
|
411 tst ,s
|
|
412 lbne L031B
|
|
413 sta ,s
|
|
414 L0452 puls pc,y,x,b,a
|
|
415 L0454 leax u000D,u
|
|
416 os9 F$Time
|
|
417 bsr L0469
|
|
418 bsr L0498
|
|
419 bsr L0461
|
|
420 bra L04A4
|
|
421 L0461 bsr L0471
|
|
422 bsr L0465
|
|
423 L0465 lda #$3A
|
|
424 bra L046F
|
|
425 L0469 bsr L0471
|
|
426 bsr L046D
|
|
427 L046D lda #$2F
|
|
428 L046F bsr L049A
|
|
429 L0471 ldb ,x+
|
|
430 lda #$2F
|
|
431 clr <u000C
|
|
432 L0477 inca
|
|
433 subb #$64
|
|
434 bcc L0477
|
|
435 bsr L048D
|
|
436 lda #$3A
|
|
437 L0480 deca
|
|
438 addb #$0A
|
|
439 bcc L0480
|
|
440 bsr L049A
|
|
441 tfr b,a
|
|
442 adda #$30
|
|
443 bra L049A
|
|
444 L048D inc <u000C
|
|
445 cmpa #$30
|
|
446 bne L049A
|
|
447 dec <u000C
|
|
448 bne L049A
|
|
449 rts
|
|
450 L0498 lda #$20
|
|
451 L049A pshs x
|
|
452 ldx <u000A
|
|
453 sta ,x+
|
|
454 stx <u000A
|
|
455 puls pc,x
|
|
456 L04A4 pshs a
|
|
457 lda #$0D
|
|
458 bsr L049A
|
|
459 puls a
|
|
460 L04AC pshs y,x,b,a
|
|
461 leax >u01DD,u
|
|
462 ldd <u000A
|
|
463 stx <u000A
|
|
464 subd <u000A
|
|
465 tfr d,y
|
|
466 lda #$01
|
|
467 os9 I$WritLn
|
|
468 puls pc,y,x,b,a
|
|
469
|
|
470 emod
|
|
471 eom equ *
|
|
472 end
|