/WINCHESTER SYSTEM OS/8 HANDLER /VERSION 00.06 /WN1S.PA / /SYS USES FIRST 2 MEGA-BYTES OF DRIVE / /THE DRIVE IS SUPPORTED BY LOGICAL UNIT NUMBER 1 /OF THE OMTI CONTROLLER. / /LAST EDIT 17-JUN-83 17:30 / /CHANGE "DEVCOD" TO PROPER DEVICE CODE AS NECESSARY /(DEFAULT IS 70) / /COMPUTER EXTENSION SYSTEMS, INC. (C) 1983 / / ASSEMBLY DEFINITIONS, ETC. / DEVICE IOT DEFINITIONS. IFNDEF DEVCODE /USES 670X BY DEFAULT DSEI= DEVCODE^10+6000 /INTERRUPT ENABLE DSSF= DEVCODE^10+6001 /SKIP ON DONE FLAG DSCD= DEVCODE^10+6002 /CLEAR DONE FLAG DSHI= DEVCODE^10+6003 /LOAD HIGH-ORDER COMMAND ADDRESS DSLO= DEVCODE^10+6004 /LOAD LOW-ORDER COMMAND AND GO DSRS= DEVCODE^10+6006 /READ STATUS DSIP= DEVCODE^10+6007 /(DIAGNOSTIC) INITIAL PROGRAM LOAD (BOOTSTRAP) / OTHER DEFINITIONS. NL3777= CLA CLL CMA RAR /LOAD AC WITH 3777 NL4000= CLA CLL CML RAR /LOAD AC WITH 4000 VERSION="A&77 /VERSION NUMBER FOR RESORC / / BUILD HEADER, ETC. *0 /THAT'S WHERE BUILD WANTS IT! -1 /ONE HANDLER IN THIS GROUP DEVICE WN1S /GROUP NAME DEVICE SYS /PERMANENT NAME 4600 /DCB WORD SYSENT&177+2000 /ENTRY POINT WORD 0 /BUILD WANTS IT THIS WAY 7777 BSTART-BEND /BOOTSTRAP LENGTH / THE BOOTSTRAP CODE FOLLOWS WHEN BINARY OUTPUT RESUMES. / MANUAL BOOTSTRAP FOR WINCHESTER DISK SYSTEM. HERE, NOPUNCH /FOOL THE ASSEMBLER *0 /WHERE IT LOADS MANBUT, *22 /GET TO TOGGLE-IN REGION CLA IAC /SET ACC TO 1 DSIP /DO (DIAGNOSTIC) BOOTSTRAP COMMAND OVERLAY,JMP . /WAIT FOR OVERLAY *HERE /RESTORE ORIGIN HERE, ENPUNCH /RESTORE BINARY OUTPUT RELOC MANBUT /WHERE THIS CODE COMES IN BSTART, DSRS /FLAG UP? SPA JMP BSTART SZA HLT DSCD CLA NOP BFROM1, BSTART-1 /WHERE FIELD ONE CODE IS NOW BFROM2, BSTART+200-1 /WHERE FIELD ZERO CODE IS NOW CLA /CLEAN UP IN CASE OF EAE BLOOP, TAD I BFROM1 /GET A FIELD ONE WORD CDF 10 /GOTO FIELD ONE DCA I BDONE /STORE IT CDF 00 /BACK TO FIELD ZERO TAD I BFROM2 /GET A FIELD ZERO WORD DCA I BDONE /STORE IT ISZ BDONE /DONE ALL YET? JMP BLOOP /NO, GO BACK FOR MORE JMP I B7605 /YES, GO START IT UP OVERLAY,JMP BSTART /OVERLAYS WAITING MACHINE HERE IFNZRO 25-. JMP BLOOP /EXTERNAL BOOTSTRAP STARTS HERE BDONE, CLA+400 /COUNTER AND POINTER B7605, 7605 /WHERE TO RESTART OS/8 BEND= . /END OF BOOTSTRAP OVERLAY CODE RELOC /RESTORE REAL ORIGIN PAGE /ACTUAL HANDLER CODE HERE RELOC 7600 /WHERE IT EXECUTES ZBLOCK 7 /BUILD WANTS IT THIS WAY DW0B=. / SYSENT, VERSION /SYSTEM HANDLER ENTRY POINT CLA+400 /CLEAN UP AND INDICATE DRIVE ZERO RDF /GET CALLING FIELD TAD LCDIF /MAKE INTO CDIF RETURN FIELD INSTRUCTION DCA SYSRETURN /STORE FOR EXIT LATER NL4000 /SET READ/WRITE MASK AND I DW0B /GET READ/WRITE BIT CLL IAC RTL /4 IF READING, 5 IF WRITING RAL /10 IF READING, 12 IF WRITING DCA RWCOM /STASH COMMAND TAD I DW0B AND L3700 /JUST SECTOR BITS SNA /SKIP IF NOT MAXIMUM NL4000 /ELSE USE 40 SECTORS VALUE BSW /%100 DCA SCTCNT /STASH SECTOR COUNT TAD I DW0B /GET FUNCTION WORD AGAIN AND L70 /JUST FIELD BITS CLL RTR /MOVE DOWN RAR /TO BITS[9-11] DCA TRFLD /STASH TRANSFER FIELD (BANK IS 0000) ISZ DW0B /BUMP TO TRANSFER ADDRESS TAD I DW0B /GET TRANSFER ADDRESS DCA TRAD /STUFF IT ISZ DW0B /BUMP TO RECORD NUMBER TAD I DW0B /GET RECORD NUMBER RAL DCA SECTLO /STUFF SECT LO TAD SECTLO /GET IT BACK AND SYSENT+1 /MASK IT (7600) RTR /LINK HAD MSB OF SECT BSW /MS SECT TO LO SIDE DCA SECTMD /STUFF NIT ISZ DW0B /BUMP TO ERROR RETURN CLA CLL CML RTR /AC=2000 7014 /ROTATE 3 LEFT IF ON SBC8 RTR /AC=0 IF ON SBC8 SZA CLA /ARE WE ON SBC8? JMP MDC /NO CDF 00 /DATA FIELD TO HERE TAD COMPTR /TAD TABLE ADDRESS 6206 /PAN REQ 0 GO TO PAN MEM JMP ERR /ERROR RETURN CLA CLL JMP GOOD /ALL OK / MDC, DSRS /GET STATUS SPA CLA /WAIT FOR IDLE JMP .-2 DSCD /CLEAR DONE JUST IN CASE DSHI /SEND HI ORDER ADD (ALWAYS 0) DSRS /GET STATUS SMA CLA /WAIT FOR BUSY JMP .-2 TAD COMPTR /POINT TO COMM TABLE DSLO /LOAD LOW-ORDER COMMAND ADDRESS DSSF /FLAG UP? JMP .-1 /NO, WAIT FOR IT DSCD /YES, CLEAR THE FLAG DSIP /GO DSRS /FLAG UP? SPA CLA JMP .-2 /NO DSCD /YES, CLEAR IT L100, 100 /CONSTANT 0100 L177, 177 /CONSTANT 0177 DSRS /GET RETURNED STATUS SZA CLA /SKIP IF ALL IS OK ERR, NL4000 /SET FATAL SMA /SKIP IF ERROR GOOD, ISZ DW0B SYSRETU,.-. /WILL BE CIF CDF RETURN INSTRUCTION JMP I DW0B /RETURN TO CALLER / COMMAND TABLE. TABLE, 4006 /LENGTH OF TABLE AND DMA TXFER BIT RWCOM, .-. DRVUNT, 40 /DRIVE 1 SECTMD, .-. SECTLO, .-. SCTCNT, .-. CONT, 0 TRFLD, .-. TRAD, .-. COMPTR, TABLE /COMMAND TABLE POINTER LCDIF, 6203 /CDIF CONSTANT L70, 70 /CONSTANT 0070 L3700,3700 RELOC /TURN OFF RELOCATION $ /THAT'S ALL FOLK!