!
!!!!!!!!!!!!        DISC INITIALISER (RXO2)    !!!!!!!!!!!!!!!!
!
!   COPIES THE SYSTEM (0-87) FROM UNIT 0 TO UNIT 1
!   AND ZEROS THE BLKLST AND DIRECTORIES ON UNIT 1
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!


BEGIN 

     CONSTBYTEINTEGERNAME  ID = K'160030'
     CONSTINTEGERNAME  NULLI=0

     CONSTINTEGER  DREAD=0, DWRITE=1
     RECORDFORMAT  PF(BYTEINTEGER  SERVICE, REPLY, INTEGER  A1, C 
       INTEGERNAME  A2, INTEGER  A3)

     INTEGER  I, J, K, L, M, DRIVE
     RECORD  (PF)P
     INTEGERARRAY  BUFF(0:256)



PRINTSTRING('INITIALISES FLOPPY ON UNIT 1 FOR DEIMOS
')
PROMPT('Copies Floppy Unit 0 to Unit 1
PLEASE CONFIRM?')
READSYMBOL(I); SKIPSYMBOL
DRIVE=K'020000';  ! UNIT ONE
IF  I#'Y' THEN  STOP 
P_SERVICE=3; P_REPLY = ID
P_A1=0; P_A2==NULLI
PONOFF(P)
IF  P_A1#9 START 
PRINTSTRING('DISC TURN OFF CHECK ERROR '); WRITE(P_A1, 1); NEWLINE
STOP 
FINISH 
CYCLE  I = 0, 1, 74
P_SERVICE=3; P_REPLY=ID
P_A1=DREAD;     ! READ ONE BLOCK
P_A2==BUFF(0)
P_A3=I; ! BLOCK
PONOFF(P)
IF  P_A1#0 START 
PRINTSTRING('DISC ERROR
')
STOP 
FINISH 
P_A2==BUFF(0)
P_A1=DWRITE
P_A3=I!DRIVE
P_SERVICE=3; P_REPLY=ID
PONOFF(P)
IF  P_A1#0 START 
PRINTSTRING('DISC WRITE ERROR
')
STOP 
FINISH 
REPEAT 
SELECT OUTPUT(0)
PRINTSTRING('SYSTEM COPIED.....
')
CYCLE  I=0,1,256
   BUFF(I)=0
REPEAT 
CYCLE  I=88,1,160
   P_A2==BUFF(0)
   P_A1=DWRITE; P_A3=I!DRIVE
   P_SERVICE=3; P_REPLY=ID
   PONOFF(P)
   IF  P_A1#0 START 
      PRINTSTRING('DISC WRITE ERROR
')
   STOP 
   FINISH 
REPEAT 
PRINTSTRING('UNIT 1 INITIALISED
')
ENDOFPROGRAM