[Coco] How to use the syscall for mdir.
    coco at jechar.ca 
    coco at jechar.ca
       
    Wed Apr 28 10:01:07 EDT 2021
    
    
  
I am trying to understand how the F$GModDr is used it seems to require
three parameters regs.x regs.y and regs.u I think I understand what is
required for regs.x but have no clue what to provide for regs.y and 
regs.u
I have included enough proposed code (below) to give a clear idea of 
what I
am trying to accomplish.
I have no clue where to go from here, can anyone help ?
  PROCEDURE pmdir
(* Demo reimplementation of mdir to ilistrate syscall use.               
*)
(* In this reimplementation 15 , 32 character lines are shown at a time. 
*)
(* F$GModDr 103F 1A
(*   ENTRY
(*          X = Pointer to 2K buffer
(*          y = End of copied module directory
(*          u = start address of system module directory.
(*
TYPE registers=cc,a,b,dp:BYTE;x,y,u:INTEGER
DIM regs:registers
(* Array to load mdir into 64*32=2K
DIM modir$(64),N$:STRING
(* It's address
DIM mat:INTEGER
DIM line:INTEGER
DIM lx,es:REAL
mat=ADDR(modir$(1))
regs.x= mat
regs.y= ???
regs.u= ???
RUN syscall($1A,regs)
line=0
REPEAT
   line=line+1
   PRINT modir$(line)
   lx=FLOAT(line)
   es=MOD(lx,15)
   IF es=0 THEN
      PRINT "Press ENTER to show next screen ";
      INPUT N$
   ENDID
UNTIL line>64
END
Charlie
    
    
More information about the Coco
mailing list