# HG changeset patch # User boisy # Date 1267281542 0 # Node ID 95a64ea1c621d9a6373cc64e2ce6002a450a1a84 # Parent 9fc6566ada9cab917e4783a7bcaf7b95799259dc Fixed up for level 1 diff -r 9fc6566ada9c -r 95a64ea1c621 level1/coco/modules/makefile --- a/level1/coco/modules/makefile Sat Feb 27 14:24:52 2010 +0000 +++ b/level1/coco/modules/makefile Sat Feb 27 14:39:02 2010 +0000 @@ -29,6 +29,8 @@ clock2_smart clock2_harris clock2_cloud9 clock2_soft \ clock2_messemu clock2_jvemu clock2_dw3 +RFM = rfm.mn rfmdrv.dr y0_rfm.dd + RBF = rbf.mn \ rbdw3.dr dw3.sb dw3_coco1.sb \ rb1773.dr rb1773_scii_ff74.dr rb1773_scii_ff58.dr \ @@ -52,7 +54,7 @@ piper.dr \ pipe.dd -ALLOBJS = $(BOOTTRACK) $(KERNEL) $(SYSMODS) $(CLOCKS) $(RBF) $(SCF) $(PIPE) +ALLOBJS = $(BOOTTRACK) $(KERNEL) $(SYSMODS) $(CLOCKS) $(RBF) $(SCF) $(PIPE) $(RFM) all: $(ALLOBJS) diff -r 9fc6566ada9c -r 95a64ea1c621 level1/modules/rfm.asm --- a/level1/modules/rfm.asm Sat Feb 27 14:24:52 2010 +0000 +++ b/level1/modules/rfm.asm Sat Feb 27 14:39:02 2010 +0000 @@ -36,10 +36,6 @@ * * file manager entry point * -* Entry: Y = Path descriptor pointer -* U = Callers register stack pointer -* - RFMEnt lbra create Create path lbra open Open path lbra makdir Makdir @@ -73,6 +69,9 @@ * Entry: Y = Path descriptor pointer * U = Callers register stack pointer * +* Exit: CC.Carry = 0 (no error), 1 (error) +* B = error code (if CC.Carry == 1) +* open ldb #DW.open create1 ldx PD.DEV,y ; get ptr to our device memory @@ -137,6 +136,7 @@ jsr 6,u leas 3,s ;clean stack PD.PD Regs + ifgt Level-1 * now send path string * move from caller to our mem @@ -144,17 +144,19 @@ lda P$Task,x ; A = callers task # (source) ldb D.DWSubAddr - endc + ifgt Level-1 + ldu D.DWSubAddr + endc * send dw op, rfm op, path # - jsr 6,u - leas 7,s ;clean stack - PD.PD Regs + jsr 6,u + leas 7,s ;clean stack - PD.PD Regs - clrb - puls y,u,pc + clrb + puls y,u,pc ****************************** @@ -242,8 +276,11 @@ * Entry: Y = Path descriptor pointer * U = Callers register stack pointer * -read ldb #DW.read - bra read1 ; join readln routine +* Exit: CC.Carry = 0 (no error), 1 (error) +* B = error code (if CC.Carry == 1) +* +read ldb #DW.read + bra read1 ; join readln routine @@ -254,8 +291,11 @@ * Entry: Y = Path descriptor pointer * U = Callers register stack pointer * -write lda #DW.write - lbra sendit +* Exit: CC.Carry = 0 (no error), 1 (error) +* B = error code (if CC.Carry == 1) +* +write lda #DW.write + lbra sendit @@ -266,6 +306,9 @@ * Entry: Y = Path descriptor pointer * U = Callers register stack pointer * +* Exit: CC.Carry = 0 (no error), 1 (error) +* B = error code (if CC.Carry == 1) +* readln ldb #DW.readln read1 ldx PD.DEV,y ; to our static storage ldx V$STAT,x @@ -343,6 +386,7 @@ puls y ;Y = byte count (already set?) - PD.PD Regs puls cc + ifgt Level-1 ldx 4,s ldu R$X,x ; U = caller's X = dest ptr sty R$Y,x @@ -357,10 +401,9 @@ * F$Move the bytes (seems to work) os9 F$Move - + endc * assume everything worked (not good) clrb -*ldy xfersz,pc ; Y is supposed to be set to bytes read.. do we need to set this in the caller's regs? bra readln2 readln1 @@ -378,6 +421,9 @@ * Entry: Y = Path descriptor pointer * U = Callers register stack pointer * +* Exit: CC.Carry = 0 (no error), 1 (error) +* B = error code (if CC.Carry == 1) +* writln lda #DW.writln lbra sendit @@ -414,7 +460,7 @@ rts * SS.OPT -* RBF does nothing here, so we do nothing +* RFM does nothing here, so we do nothing GstOPT rts