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
+                  
+
 
 
 ******************************