changeset 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 90d13dbd887a
children 95c7e747c154 2b5464e388a2
files defs/os9.d defs/rfm.d defs/rfmdefs level1/modules/rfm.asm
diffstat 4 files changed, 104 insertions(+), 35 deletions(-) [+]
line wrap: on
line diff
--- a/defs/os9.d	Sat May 19 16:24:08 2012 -0500
+++ b/defs/os9.d	Sun May 20 09:54:12 2012 -0500
@@ -305,7 +305,8 @@
 SS.RsBit       RMB       1                   Reserve bitmap sector (do not allocate in) LSB(X)=sct#
                RMB       1                   Reserved
 SS.FDInf       EQU       $20                 To serve 68K/RBF/GetStat only, thru NET
-               RMB       4                   Reserve $20-$23 for Japanese version (Hoshi)
+SS.DirEnt      RMB       1                   Reserve bitmap sector (do not allocate in) LSB(X)=sct#
+               RMB       3                   Reserve $20-$23 for Japanese version (Hoshi)
 SS.SetMF       RMB       1                   Reserve $24 for Gimix G68 (Flex compatability?)
 SS.Cursr       RMB       1                   Cursor information for COCO
 SS.ScSiz       RMB       1                   Return screen size for COCO
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/defs/rfm.d	Sun May 20 09:54:12 2012 -0500
@@ -0,0 +1,38 @@
+********************************************************************
+* rfm.d - Remote File Manager Definitions
+*
+*          2010/02/20  AAW
+* initial version
+
+               NAM       rfm.d
+               TTL       Remote File Manager Definitions
+
+DW.Create      EQU       $01
+DW.Open        EQU       $02
+DW.MakDir      EQU       $03
+DW.ChgDir      EQU       $04
+DW.Delete      EQU       $05
+DW.Seek        EQU       $06
+DW.Read        EQU       $07
+DW.Write       EQU       $08
+DW.ReadLn      EQU       $09
+DW.WritLn      EQU       $0A
+DW.GetStt      EQU       $0B
+DW.SetStt      EQU       $0C
+DW.Close       EQU       $0D
+
+DWSS.GetDir	   EQU       $10
+
+********************
+* RFM Static Storage
+
+               ORG       V.USER
+V.DWCMD        RMB       1                   last DW command sent
+V.BUF          RMB       2                   pointer to buffer
+V.PATHNAME     RMB       2		             pointer to pathname
+V.PATHNAMELEN  RMB       2		             pathname length
+V.FILESIZE     RMB       4		             file size
+V.MODTIME      RMB       6		             modified time
+V.FATTR        RMB       2		             modified time
+V.RFM          EQU       .                   Total RFM manager static overhead
+
--- a/defs/rfmdefs	Sat May 19 16:24:08 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-********************************************************************
-* RFMDefs - Remote File Manager Definitions
-*
-*          2010/02/20  AAW
-* initial version
-
-               NAM       RFMDefs
-               TTL       Remote File Manager Definitions
-
-DW.create  EQU $01
-DW.open EQU $02
-DW.makdir EQU $03
-DW.chgdir EQU $04
-DW.delete EQU $05
-DW.seek EQU $06
-DW.read EQU $07
-DW.write EQU $08
-DW.readln EQU $09
-DW.writln EQU $0A
-DW.getstt EQU $0B
-DW.setstt EQU $0C
-DW.close EQU $0D
-
-********************
-* RFM Static Storage
-
-               ORG       V.USER
-V.DWCMD        RMB       1                   last DW command sent
-V.BUF          RMB       2                   pointer to buffer
-V.PATHNAME     RMB       2		     pointer to pathname
-V.PATHNAMELEN  RMB       2		     pathname length
-V.RFM          EQU       .                   Total RFM manager static overhead
-
--- 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
+                  
+
 
 
 ******************************