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