!
!!!!!!!!!!!! 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