R1 EQU 65 B11 EQU 11 A0 EQU 12 A1 EQU 13 A2 EQU 14 A3 EQU 15 A4 EQU 16 A5 EQU 17 S1 EQU 13 S2 EQU 12 S3 EQU 11 S4 EQU 10 S5 EQU 9 S6 EQU 8 H1 EQU 2 H2 EQU 1 XU EQU 017 U EQU 016 BCW EQU 6 BUFFER CONTROL WORD INDEX BLUL EQU 7 BUFFER LENGTH- USER LENGTH WORD INDEX UIL EQU 8 USER LOCATOR WORD INDEX BIL EQU 9 BUFFER LOCATOR WORD INDEX ICW EQU 10 IMAGE CONTROL WORD INDEX $(1). SDFO* L A1,BIL,A0 BUFFER IMAGE LOCATOR L A2,ICW,A0 IMAGE CONTROL WORD S A2,0,*A1 SET ICW IN BUFFER SSA A2,24 SET IMAGE LENGTH IN A2 JP A2,$+2 IS IMAGE A CONTROL IMAGE L,S2 A2,ICW,A0 YES GET LENGTH S,H2 A2,BLUL,A0 SAVE IMAGE LENGTH L A2,UIL,A0 S A1,BIL,A0 SAVE BUFFER IMAGE LOCATOR SDFXF L,H2 A4,BIL,A0 A,H2 A4,BLUL,A0 ADD IMAGE LENGTH L,H2 A5,BCW,A0 GET BUFFER ADDRESS A,H1 A5,4,A0 ADD BUFFER LENGTH AN A4,A5 JP A4,SDFOV JUMP IF IMAGE EXTENDS BEYOND BUFFER SDFEND L,H2 R1,BLUL,A0 SET REPEAT COUNT BT A1,0,*A2 TRANSFER IMAGE S A1,BIL,A0 SAVE BUFFER IMAGE LOCATOR J 1,B11 NORMAL RETURN SDFOV L,H2 A5,BLUL,A0 SET IMAGE WORD COUNT AN A5,A4 L R1,A5 SET REPEAT COUNT BT A1,0,*A2 TRANSFER IMAGE S,H2 A4,BLUL,A0 SAVE COUNT TP 3,A0 I/O COMPLETE ER WAIT$ . WAIT FOR IO L A5,5,A0 A,H1 A5,BLUL,A0 S A5,5,A0 UPDATE MASS STORAGE ADDRESS L,S1 A5,3,A0 GET STATUS JNZ A5,0,B11 ERROR RETURN L A5,BCW,A0 S,H2 A5,4,A0 SET BUFFER ADDRESS IN ACCESS WORD SSC A5,18 SWITCH BUFFERS S A5,BCW,A0 SAVE BCW S,H2 A5,BIL,A0 UPDATE BUFFER IMAGE LOCATOR ER IO$ . WRITE L A1,BIL,A0 J SDFXF SDFOO* L,H2 A1,BCW,A0 GET BUFFER LOCATION S,H2 A1,BIL,A0 SET BUFFER IMAGE LOCATOR L A5,5,A0 REDUCE INITIAL WRITE ADDRESS AN,H1 A5,BLUL,A0 BY BUFFER WRITE COUNT TO COMPENSATE S A5,5,A0 FOR INITIAL WAIT$ WITH NO IO OUTSTANDING L,H1 A5,BLUL,A0 MSI,U A5,28 S,H1 A5,4,A0 SET BUFFER WORD COUNT J 0,B11 NORMAL RETURN SDFOC* TP 3,A0 I/O COMPLETE ER WAIT$ . WAIT FOR IO L A5,5,A0 A,H1 A5,BLUL,A0 S A5,5,A0 UPDATE MASS STORAGE ADDRESS L,S1 A5,3,A0 GET STATUS CODE JNZ A5,0,B11 ERROR RETURN L,H2 A1,BCW,A0 GET BUFFER IMAGE LOCATION S,H2 A1,4,A0 SET BUFFER IN ACCESS WORD L,H2 A1,BIL,A0 GET BUFFER IMAGE LOCATOR LNA,U A2,*0177777,*0 S,H1 A2,0,A1 SET SDF EOF SENTINEL AN,H2 A1,BCW,A0 A,U A1,1 DSL A1,36 DI,U A1,28 FIND SECTOR COUNT JZ A2,$+2 A,U A1,1 L A2,A1 SECTOR COUNT TO A2 MSI,U A2,28 S,H1 A2,4,A0 SET WORD COUNT A A1,5,A0 ADD MASS STORAGE LOCATION ER IOW$ . WRITE AND WAIT S A1,5,A0 UPDATE MASS STORAGE ADDRESS L,S1 A5,3,A0 GET STATUS CODE JNZ A5,0,B11 ERROR RETURN J 1,B11 NORMAL RETURN END