*20 /DFDISKY /DISK HANDLING ROUTINE TO TRANSFER ONE /CORE DATA FIELD ON OR OFF THE DF32 DISK /TRANSFER IS BETWEEN ONE DF OF CORE AND /ONE "DISK FIELD" /DISK FIELD IS 2000 OCTAL LOCATIONS, /OR ONE HALF OF A TRACK /THERE ARE 37 OCTAL DISK FIELDS PER DF32 /ROUTINE ASSUMES ONLY 8K OF CORE, BUT /CAN OPERATE WITH UP TO 4 DF 32 DISKS /CALLS ARE AS FOLLOWS: / DFRDE / NMMM / DFWRI / NMMM /WHERE N = CORE DF (0 - 7) / MMM = DISK FIELD /INTERRUPT MUST BE OFF IN ORDER TO WORK /WHEN EXT SIGSYS IS ON /USES NO BETA REGISTERS AND DOES NOT /CHANGE ASSIGNED DF /REQUIRES 3 STORAGE LOCATIONS TAGGED /AS TEM (TEM+1 AND TEM+2) /WRITE ROUTINE DFWRI=JMP. LDA 13 STC SAVE13 /SAVE BETA 13 SET 13 0 JMP SETDSK /SET DISK BUFFERS PDP PMODE 6605 /DMAW JMP I EXITA EXITA, EXIT /READ ROUTINE LMODE DFRDE=JMP. LDA 13 STC SAVE13 /SAVE BETA 13 SET 13 0 JMP SETDSK /SET DISK BUFFERS PDP PMODE 6603 /DMAR EXIT, 6622 /DFSC, DISK DONE? JMP .-1 6621 /DFSE, DISK ERROR? JMP I PERROR /YES 6611 /DCEA 6601 /DCMA LINC LMODE XSK I 13 LDA 13 STC EX SET I 13 SAVE13, 0 /RESTORE BETA 13 XDF, 0 /RESTORE DF EX, 0 /EXIT JMP PMODE PERROR, ERROR /REPEAT DISK OPERATION ERROR, 6611 /DCEA 6601 /DCMA LINC LMODE LDA XDF STC .+1 0 /RESTORE DF JMP SETDSK+5 /DISK SETUP ROUTINE SETDSK, LDA 0 STC DSKX IOB IOF /SIGSYS OFF IF ON IOB 6214 /RDF ROR 1 BSE I LDF STC XDF /SET UP CA AND WC IN BANK 3 LDF 5 LDA 13 BCL I 3777 ROR 10 STC TEM /EA BIT LDA 13 BCL I 4777 ROL 1 LDF 3 STA 7751 /CA LDA I 6000 /-2000 2S COM STA 7750 /WC /SET UP EMA AND EA LDF 5 LDA 13 ROL 12 STA TEM+1 /DMA SETUP BCL I 7740 ROL 6 /EMA BITS ADD TEM /EA BIT IOB 6615 /DEAL LDA TEM+1 BCL I 1777 DSKX, JMP /LEAVE /END DFDISKY