MACRO 00001000 DIOSECT &SECT 00002000 AIF ('&SECT' EQ 'CSECT').CSECT 00003000 DIOSECT DSECT 00004000 AGO .CONT 00005000 .CSECT ANOP 00006000 DIOSECT DS 0D 00007000 ENTRY DIOSECT 00008000 .CONT ANOP 00009000 IOOLD DC 1D'0' IO-OLD-PSW (FROM INTERRUPT ROUTINE) 00010000 DIOCSW DC 1D'0' CSW (FROM INTERRUPT ROUTINE) 00011000 * 00012000 * WAIT CALLING SEQUENCE 00013000 * 00014000 DS 0F 00015000 PWAIT DC CL8'WAIT' 00016000 DC C'DSK-' FILLED IN TO CORRECT SYMBOLIC DISK NO. 00017000 DC F'0' 00018000 DC F'0' 00019000 * 00020000 QQDSK1 DC F'0' 1ST TWO BYTES ALWAYS = 0 00021000 QQDSK2 EQU QQDSK1+2 HALFWORD COPY OF 16TH TRACK DISK-ADDRESS 00022000 * 00023000 * CCW CHAIN 00024000 * 00025000 CCW1 CCW X'07',SEEKADR,X'40',6 = SEEK 00026000 CCW1A CCW X'03',0,X'40',1 = SEEK OR SET SECTOR 00027000 CCW2 CCW X'31',SEEKADR+2,X'40',5 = SEARCH 00028000 CCW3 CCW X'08',*-8,0,1 = TIC BACK TO SEARCH 00029000 RWCCW CCW X'00',*-*,X'20',*-* = READ OR WRITE DATA 00030000 * 00031000 SEEKADR DC XL7'00' SEEK/SEARCH INFO (1ST 3 BYTES ARE 0) 00032000 * 00033000 SECTNUM DC X'00' SECTOR NUMBER 00034000 * 00035000 * I/O INFO 00036000 * 00037000 LASTCYL DC F'0' BECOMES 'LAST CYLINDER-NUMBER USED' 00038000 LASTHED DC F'0' BECOMES 'LAST HEAD-NUMBER USED' 00039000 * 00040000 DEVTYP DC X'00' 01 = 2311, 08 = 2314, 09 = 3330, HRC004DS 00041290 * 0E = 3380 HRC004DS 00041580 * 00042000 DIOFLAG DC X'00' RDTK/WRTK FLAG: 00043000 TOOBIG EQU X'04' BYTE-COUNT > 800 00044000 WRTKF EQU X'02' WRITING FIRST CHAIN LINK 00045000 QQTRK EQU X'01' HANDLING FIRST CHAIN LINK 00046000 * 00047000 DIAGNUM EQU 24 **** NUMBER ASSIGNED BY 'CP' FOR DIAGNOSE I/O **** 00048000 * 00049000 SENSB DC XL32'00' SENSE INFORMATION HRC004DS 00050990 DIOSNSCT DC H'0' HRC004DS 00051880 * 00053000 SENCCW CCW X'04',SENSB,X'20',32 READ 32 BYTES SILI HRC004DS 00054490 * 00055000 * MISCELLANEOUS STORAGE... 00056000 * 00057000 DOUBLE DC 1D'0' (SCRATCH-AREA, FOR CVD USE ETC.) 00058000 * 00059000 * KEEP THE FOLLOWING THREE IN ORDER... 00060000 XRSAVE DS 15F REGISTERS 0-14 SAVED HERE FOR RDTK-WRTK 00061000 DC AL3(0) FIRST 3 BYTES OF R15 ERROR-CODE 00062000 ERRCODE DC AL1(*-*) ERROR-CODE (IN R15 AT EXIT) 00063000 * 00064000 * KEEP THE FOLLOWING TWO IN ORDER.. 00065000 FREER0 DC F'0' NO. DBL-WORDS OF FREE STORAGE (IF ANY) 00066000 DIOFREE DC F'0' ADD. OF FREE STORAGE FOR BUFFER OR CCW'S 00067000 * 00068000 SAVEADT DC F'0' HANDY PLACE FOR AN ADT ADDRESS 00069000 * 00070000 CCWX CCW X'23',SECTNUM,X'40',1 = SET SECTOR 00071000 * 00072000 DIAGRET DC X'00' CP'S DIAGNOSE RETURN CODE IF NON-ZERO 00076000 IOCOMM DC X'00' SET TO READ (06) OR WRITE (05) 00077000 LASTREC DC X'00' NUMBER (1-14) OF THE LAST RECORD PROCESSED 00077100 SPACE , HRC004DS 00078190 DIOCCW01 DC 128D'0' CCW BUILD AREA HRC004DS 00078380 EJECT , HRC004DS 00078570 MEND 00079000