Mercurial > hg > Members > kono > nitros9-code
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 + + ******************************