diff CoCoOS9/level2v3/CMDS/pwd.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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CoCoOS9/level2v3/CMDS/pwd.asm	Sat Jul 14 15:16:13 2018 +0900
@@ -0,0 +1,166 @@
+********************************************************************
+* pwd - Print working directory
+*
+* $Id: pwd.asm,v 1.1.1.1 2001/02/21 23:30:54 boisy Exp $
+*
+* Ed.    Comments                                       Who YY/MM/DD
+* ------------------------------------------------------------------
+* 1      Original Tandy/Microware version
+
+         nam   pwd
+         ttl   Print working directory
+
+* Disassembled 98/09/10 23:47:33 by Disasm v1.6 (C) 1988 by RML
+
+         ifp1
+         use   defsfile
+         endc
+
+tylg     set   Prgrm+Objct   
+atrv     set   ReEnt+rev
+rev      set   $01
+edition  set   1
+
+         mod   eom,name,tylg,atrv,start,size
+
+u0000    rmb   1
+u0001    rmb   2
+u0003    rmb   2
+u0005    rmb   1
+u0006    rmb   2
+u0008    rmb   1
+u0009    rmb   2
+u000B    rmb   3
+u000E    rmb   29
+u002B    rmb   2
+u002D    rmb   129
+u00AE    rmb   1
+u00AF    rmb   282
+size     equ   .
+
+name     fcs   /pwd/
+         fcb   edition
+L0011    fcc   "pwd: bad name in path"
+         fcb   C$CR
+L0027    fcc   "."
+L0028    fcc   "."
+L0029    fcb   C$CR
+L002A    fcc   "read error"
+         fcb   C$CR 
+
+start    leax  >u00AE,u
+         lda   #$0D
+         sta   ,x
+         stx   <u0001
+         leax  >L0028,pcr
+         bsr   L0096
+         sta   <u0000
+         lbsr  L00CD
+         ldd   <u0003
+         std   <u0009
+         lda   <u0005
+         sta   <u000B
+L0052    bsr   L00C6
+         beq   L0079
+         leax  >L0027,pcr
+         bsr   L0090
+         lda   <u0000
+         os9   I$Close  
+         bcs   L008D
+         leax  >L0028,pcr
+         bsr   L0096
+         bsr   L00CD
+         bsr   L00A8
+         bsr   L00E2
+         ldd   <u0003
+         std   <u0009
+         lda   <u0005
+         sta   <u000B
+         bra   L0052
+L0079    lbsr  L00FB
+         ldx   <u0001
+         ldy   #$0081
+         lda   #$01
+         os9   I$WritLn 
+         lda   <u0000
+         os9   I$Close  
+         clrb  
+L008D    os9   F$Exit   
+L0090    lda   #$81
+         os9   I$ChgDir 
+         rts   
+L0096    lda   #$81
+         os9   I$Open   
+         rts   
+L009C    lda   <u0000
+         leax  u000E,u
+         ldy   #$0020
+         os9   I$Read   
+         rts   
+L00A8    lda   <u0000
+         bsr   L009C
+         bcs   L010F
+         leax  u000E,u
+         leax  <$1D,x
+         leay  u0009,u
+         bsr   L00BA
+         bne   L00A8
+         rts   
+L00BA    ldd   ,x++
+         cmpd  ,y++
+         bne   L00C5
+         lda   ,x
+         cmpa  ,y
+L00C5    rts   
+L00C6    leax  u0003,u
+         leay  u0006,u
+         bsr   L00BA
+         rts   
+L00CD    bsr   L009C
+         ldd   <u002B
+         std   <u0006
+         lda   <u002D
+         sta   <u0008
+         bsr   L009C
+         ldd   <u002B
+         std   <u0003
+         lda   <u002D
+         sta   <u0005
+         rts   
+L00E2    leax  u000E,u
+L00E4    os9   F$PrsNam 
+         bcs   L0109
+         ldx   <u0001
+L00EB    lda   ,-y
+         anda  #$7F
+         sta   ,-x
+         decb  
+         bne   L00EB
+         lda   #$2F
+         sta   ,-x
+         stx   <u0001
+         rts   
+L00FB    lda   <u0000
+         ldb   #$0E
+         leax  >u00AF,u
+         os9   I$GetStt 
+         bsr   L00E4
+         rts   
+L0109    leax  >L0011,pcr
+         bra   L0123
+L010F    leax  >L002A,pcr
+         bra   L0123
+L0115    lda   #$02
+         os9   I$Write  
+         bcs   L0128
+         rts   
+         bsr   L0115
+         leax  >L0029,pcr
+L0123    lda   #$02
+         os9   I$WritLn 
+L0128    ldb   #$00
+         os9   F$Exit   
+
+         emod
+eom      equ   *
+         end