/TM8E SETUP (TM8ESU.PA) / /THIS ROUTINE IS CHAINED TO FROM THE TM8E HANDLER IF IT /DETERMINS BLOCK 66 OF THE SYSTEM AREA IS NOT CORRECTLY SET /WITH THE EXTENDED HANDLER FOR THE TM8E MAG TAPE. /IT TYPES OUT A MESSAGE TO THE USER AND SETS THAT BLOCK /CORRECTLY. UNFORTUNATELY THE USER'S PROGRAM IS ABORTED, /BUT THAT'S LIFE. / *400 NOP JMS I (SYS 4200 0 66 HLT / / NEXT, TAD I MSG /OUTPUT MESSAGE RTR RTR RTR JMS OUT TAD I MSG ISZ MSG JMS OUT JMP NEXT / OUT, 0 AND (77 SNA JMP DONE TAD (-40 SPA TAD (100 TAD (240 TLS TSF JMP .-1 CLA JMP I OUT DONE, JMP I (7605 MSG, .+1 TEXT /MTA0:V-P1: SYSTEM RECONFIGURED FOR MTA0: -- TRY AGAIN!/ SYS=7607 USR=7700 PAGE /TM8E - EXTENDED HANDLER / / FIELD 3 / THIS WILL REALLY BE EXECUTED FROM FIELD MYFLD BUT IS / ASSEMBLED IN FIELD 0 MYFLD=30 / / *** MUST BE STORED IN BLOCK 66 ON SYS: *** / /LOADED AND CALLED BY THE SYSTEM TM8E HANDLER. /DESTROYS FIELD 3 / /CALLING SEQUENCE: / CIF 30 / JMS I (TM8EEX / IF AC = -1 THEN / IF WRITE - UNPACK BUFFER / IF READ - ZERO BUFFER / IF AC = 00 THEN / IF WRITE - DO NOTHING / IF READ - PACK BUFFER / WORD -- BIT 0 = 0 (READ); 1 (WRITE) / BITS 1-5 = # PAGES IN OS/8 BUFFER / IF THIS IS ZERO AND CODE=6, THEN PACK OR / UNPACK THE # WORDS INDICATED IN ARG 3. / BITS 6-8 = FIELD OF OS/8 BUFFER / BITS 9-11= FUNCTION CODE (ONLY 6 MEANINGFUL) / CORE -- STARTING LOCATION OF OS/8 BUFFER / BLOCK-- USED ONLY TO PASS BUFFER SIZE ON FN CODE 6. / TAPBUF=400 /MAGTAPE BUFFER / *0 TM8EEX, -1 /USED BY TM8E HANDLER TO DETERMINE IF CORRECT CODE /IS LOADED HERE DCA SWITCH TAD (TAPBUF-1 DCA TBUF TAD (100 AND I TM8EEX /SPECIAL CLEARING NEEDED IF DCA PK8 / WRITING 1/2 BLOCK TAD I TM8EEX /GET WORD AND (3700 /MASK OFF # PAGES SNA JMP CKCODE RTRN1, CMA CLL DCA NKNT /IT'S NOW THE NUMBER OF 3 CHARACTER / (2 WORD) GROUPS. TBUF, 0 /AUTO REGISTER, FALL THROUGH TAD I TM8EEX AND (70 /GET FIELD TAD (CDF 0 DCA OSFLD1 TAD OSFLD1 DCA OSFLD2 TAD I TM8EEX RAL /PUT READ/WRITE BUT IN LINK CLA ISZ TM8EEX TAD I TM8EEX /GET CORE LOCATION DCA NBUFF SNL JMP READCK / IFZERO 10-TBUF&4000 IFZERO TBUF-20&4000 / THE PLAN IS TO WRITE ON THE MAGTAPE. / UNPACK THE OS8 BUFFER INTO THE TAPE BUFFER / AND THEN RETURN TO THE HANDLER TO DO THE / ACTUAL WRITE OPERATION. / ISZ SWITCH /MUST BE -1 FOR UNPACK JMP TEXIT UP1, ISZ NKNT JMP UP2 TAD PK8 /DID WE UNPAK 1/2 BLOCK? SNA JMP TEXIT /NO CMA /YES - CLEAR THE REST DCA NKNT JMP RC3 UP2, DCA PKT2 JMS UP9 /GET 1ST WORD JMS UP8 JMS UP9 /GET 2ND WORD JMS UP8 TAD PKT2 JMS UP8 JMP UP1 UP8, 0 AND (377 DCA I TBUF JMP I UP8 / UP9, 0 OSFLD1, HLT TAD I NBUFF AND (7400 RAL TAD PKT2 RTL RTL DCA PKT2 TAD I NBUFF CDF MYFLD ISZ NBUFF NOP JMP I UP9 / READ OPERATION -- PACK THE TAPE BUFFER / INTO THE OS8 BUFFER AFTER A TAPE READ. / THIS INCLUDES MASKING OFF THE PARITY / BITS THE HARDWARE INSERTS TO MAKE THINGS / DIFFICULT FOR US. / / THIS OPERATION STARTS AT LOC. . / PK1, DCA PKT1 /SAVE 1ST CHAR OF EACH TRIPLET JMS PK8 /GO GET THE NEXT DCA PKT2 /SAVE THIS (2ND) ONE TOO JMS PK8 /AND FINALLY, GET THE THIRD OSFLD2, HLT /SET THE OS8 FIELD JMS PK9 /PACK THE FIRST OS8 WORD AND STORE IT TAD PKT2 DCA PKT1 TAD PKT3 JMS PK9 /AND ALSO THE SECOND WORD READ, ISZ NKNT /ANY MORE TO GO? SKP /YES JMP TEXIT /NO -- BUFFER FINISHED CDF MYFLD JMS PK8 /GO GET THE FIRST WORD JMP PK1 PK8, 0 /TRICK SUBROUTINE TO KEEP TRACK / OF WHICH CHARACTER WR'RE WORKING / ON AT ANY GIVEN TIME. TAD I TBUF /GET A CHARACTER FROM TAPE BUFFER AND (377 /MASK OFF PARITY BIT JMP I PK8 / / PK9, 0 /GENERATE AND SAVE ONE PACKED CHARACTER RTL RTL DCA PKT3 TAD PKT3 AND (7400 PK10, TAD PKT1 DCA I NBUFF ISZ NBUFF NOP JMP I PK9 SWITCH, PKT1, 0 PKT2, 0 PKT3, 0 NBUFF, 0 NKNT, 0 / READCK, ISZ SWITCH JMP READ CDF MYFLD JMP RC3 RC2, DCA I TBUF DCA I TBUF DCA I TBUF RC3, ISZ NKNT JMP RC2 TEXIT, CIF CDF 0 TAD NBUFF DCA I TM8EEX /RESET UPDATED BUFFER POINTER ISZ TM8EEX /BUMP TO EXIT ISZ TM8EEX JMP I TM8EEX / PAGE NOP /ALLOW DEFAULT ENTRY POINT JMP I (400 / OF 200 TO WORK. / CKCODE, TAD I TM8EEX AND (7 /MASK OFF CODE TAD (-6 SZA CLA JMP RTRN1 /NOT SIX -- RETURN FOR NULL OPERATION CLL CML RTL /2 => AC TAD TM8EEX DCA NKNT TAD I NKNT /GET ACTUAL REQUESTED BUFFER SIZE CLL CML RAR /WE NEED BUFFER 3/2 THIS SIZE TAD I NKNT CIA JMP RTRN1 /SEND IT BACK FOR USE $