comparison CoCoOS9/level2v3/CMDS/login.asm @ 31:bd2b07db8917 cocoos9lv2v3

CoCoOS9 version
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Jul 2018 15:16:13 +0900
parents
children
comparison
equal deleted inserted replaced
30:7b1b25ff010a 31:bd2b07db8917
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