Mercurial > hg > Members > kono > nitros9-code
diff level1/modules/rfm.asm @ 2658:fbf145e9d668
Renamed rfmdefs to rfm.d
Modified rfm.asm to accommodate new name
author | Boisy Pitre <boisy.pitre@nuance.com> |
---|---|
date | Sun, 20 May 2012 09:54:12 -0500 |
parents | b8c7b7fbf3c9 |
children |
line wrap: on
line diff
--- a/level1/modules/rfm.asm Sat May 19 16:24:08 2012 -0500 +++ b/level1/modules/rfm.asm Sun May 20 09:54:12 2012 -0500 @@ -14,7 +14,7 @@ ifp1 use defsfile - use rfmdefs + use rfm.d use drivewire.d endc @@ -574,6 +574,8 @@ beq GstFD cmpb #SS.FDInf beq GstFDInf + cmpb #SS.DirEnt + beq GstDirEnt * comb * ldb #E$UnkSvc clrb @@ -689,6 +691,67 @@ GstFDInf rts +* SS.DirEnt - +* Entry: A = path +* B = SS.DirEnt +* X = ptr to 64 byte buffer +GstDirEnt + ldx PD.DEV,y + ldx V$STAT,x + pshs x,y,u + + * send caller's Y (do we really need this to be 16bit? X points to 256byte buff? + ldx R$Y,u + pshs x + leax ,s + ldy #2 + + * set U to dwsub + ifgt Level-1 + ldu <D.DWSubAddr + else + ldu >D.DWSubAddr + endc + + jsr 6,u + + * recv bytes into v.buf + puls y + ldx ,s ; V$STAT + ldx V.BUF,x + + ifgt Level-1 + pshs x + endc + + jsr 3,u + + ifgt Level-1 + * move v.buf into caller + + ldx 4,s + ldu R$X,x ; U = caller's X = dest ptr + sty R$Y,x ; do we need to set this for caller? + + lda <D.SysTsk ; A = system task # + + ldx <D.Proc get calling proc desc + ldb P$Task,x ; B = callers task # + + puls x ; V.BUF from earlier + +* F$Move the bytes (seems to work) + os9 F$Move + + else + endc + +* assume everything worked (not good) + clrb + + puls x,y,u,pc + + ******************************