Mercurial > hg > Members > kono > nitros9-code
diff level1/cmds/pwd.asm @ 13:5a5574d54988
Touched up source comments, added mdir to Makefile
author | boisy |
---|---|
date | Fri, 05 Apr 2002 19:14:26 +0000 |
parents | 6641a883d6b0 |
children | 0912ac5dc2ff |
line wrap: on
line diff
--- a/level1/cmds/pwd.asm Fri Apr 05 16:59:01 2002 +0000 +++ b/level1/cmds/pwd.asm Fri Apr 05 19:14:26 2002 +0000 @@ -10,7 +10,7 @@ nam pwd ttl Print working directory -* Disassembled 98/09/10 23:47:33 by Disasm v1.6 (C) 1988 by RML +* Disassembled 98/09/10 23:50:10 by Disasm v1.6 (C) 1988 by RML ifp1 use defsfile @@ -23,8 +23,8 @@ mod eom,name,tylg,atrv,start,size -u0000 rmb 1 -u0001 rmb 2 +fildes rmb 1 +bufptr rmb 2 u0003 rmb 2 u0005 rmb 1 u0006 rmb 2 @@ -34,42 +34,43 @@ u000E rmb 29 u002B rmb 2 u002D rmb 129 -u00AE rmb 1 -u00AF rmb 282 +buffer rmb 1 +sttbuf rmb 282 size equ . name fcs /pwd/ fcb edition -L0011 fcc "pwd: bad name in path" + +badnam fcc "pwd: bad name in path" fcb C$CR -L0027 fcc "." -L0028 fcc "." -L0029 fcb C$CR -L002A fcc "read error" - fcb C$CR +dotdot fcc "." +dot fcc "." +cr fcb C$CR +rdmsg fcc "read error" + fcb C$CR -start leax >u00AE,u - lda #$0D +start leax >buffer,u + lda #C$CR sta ,x - stx <u0001 - leax >L0028,pcr - bsr L0096 - sta <u0000 - lbsr L00CD + stx <bufptr + leax >dot,pcr + bsr open + sta <fildes + lbsr rdtwo ldd <u0003 std <u0009 lda <u0005 sta <u000B L0052 bsr L00C6 beq L0079 - leax >L0027,pcr - bsr L0090 - lda <u0000 + leax >dotdot,pcr + bsr chdir + lda <fildes os9 I$Close bcs L008D - leax >L0028,pcr - bsr L0096 - bsr L00CD + leax >dot,pcr + bsr open + bsr rdtwo bsr L00A8 bsr L00E2 ldd <u0003 @@ -78,35 +79,35 @@ sta <u000B bra L0052 L0079 lbsr L00FB - ldx <u0001 + ldx <bufptr ldy #$0081 lda #$01 os9 I$WritLn - lda <u0000 + lda <fildes os9 I$Close clrb L008D os9 F$Exit -L0090 lda #$81 +chdir lda #DIR.+READ. os9 I$ChgDir rts -L0096 lda #$81 +open lda #DIR.+READ. os9 I$Open rts -L009C lda <u0000 +read32 lda <fildes leax u000E,u ldy #$0020 os9 I$Read rts -L00A8 lda <u0000 - bsr L009C +L00A8 lda <fildes + bsr read32 bcs L010F leax u000E,u leax <$1D,x leay u0009,u - bsr L00BA + bsr attop bne L00A8 rts -L00BA ldd ,x++ +attop ldd ,x++ cmpd ,y++ bne L00C5 lda ,x @@ -114,23 +115,23 @@ L00C5 rts L00C6 leax u0003,u leay u0006,u - bsr L00BA + bsr attop * check if we're at the top rts -L00CD bsr L009C +rdtwo bsr read32 * read "." from directory ldd <u002B std <u0006 lda <u002D sta <u0008 - bsr L009C + bsr read32 * read ".." from directory ldd <u002B std <u0003 lda <u002D sta <u0005 rts L00E2 leax u000E,u -L00E4 os9 F$PrsNam +prsnam os9 F$PrsNam bcs L0109 - ldx <u0001 + ldx <bufptr L00EB lda ,-y anda #$7F sta ,-x @@ -138,25 +139,25 @@ bne L00EB lda #$2F sta ,-x - stx <u0001 + stx <bufptr rts -L00FB lda <u0000 - ldb #$0E - leax >u00AF,u +L00FB lda <fildes + ldb #SS.DevNm + leax >sttbuf,u os9 I$GetStt - bsr L00E4 + bsr prsnam rts -L0109 leax >L0011,pcr - bra L0123 -L010F leax >L002A,pcr - bra L0123 +L0109 leax >badnam,pcr + bra wrerr +L010F leax >rdmsg,pcr + bra wrerr L0115 lda #$02 os9 I$Write bcs L0128 rts bsr L0115 - leax >L0029,pcr -L0123 lda #$02 + leax >cr,pcr +wrerr lda #$02 os9 I$WritLn L0128 ldb #$00 os9 F$Exit @@ -164,3 +165,4 @@ emod eom equ * end +