ASMB,R,L,C HED FD.CK * NAME: FD.CK * SOURCE: 92067-18151 * RELOC: 92067-16125 * PGMR: N.J.S. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * NAM FD.CK,7 92067-16125 REV.1940 790802 ENT FD.CK EXT XLUEX, .ENTR, NAM.. SUP * * * FD.CK READS THE CARTRIDGE SPECIFICATION ENTRY FROM THE * FILE DIRECTORY ON A DISC LU AND CHECKS TO SEE IF * THERE IS A REASONABLE FILE SYSTEM * * * CALLING SEQUENCE * * JSB FD.CK * DEF *+3 * DEF DS.LU WHERE DS.LU IS THE LU# OF THE DISC AND * (OPTIONAL) DEF LTR LTR IS THE TRACK ON DS.LU TO BE CHECKED * RETURN * * OR * * CALL FD.CK(DS.LU,LTR) * * IF LAST TRACK IS NOT SPECIFIED, THE LAST PHYSICAL TRACK ON * DS.LU (OBTAINED FROM AN IMPOSSIBLE WRITE) IS USED. * * * RETURNS FALSE (A=0) IF A FILE SYSTEM EXISTS ON THE DISC * RETURNS TRUE (A=1) IF THERE IS NOT A FILE SYSTEM OR IF * LAST TRACK SPECIFIED WAS OUT OF RANGE. ALSO RETURNS * FALSE IF EXEC READ ON THE LU IS REJECTED * * B-REG CONTAINS THE CRN IF THERE IS A FILE SYSTEM * * * DSLU NOP LTR DEF N1 FD.CK NOP JSB .ENTR DEF DSLU * LDA DSLU,I GET LU # CCE SET SIGN BIT ON LU FOR RAL,ERA EXTENDED EXEC CONTROL WORD STA CONWD SAVE 1ST WORD OF CONTROL WORD LDA PRC GET PRIVILEDGED BITS STA CONWD+1 AND USE AS SECOND HALF OF CONTROL WORD * LDA DSLU,I GET LU# PASSED IN CLE CPA .2 CHECKING LU2? CCE,RSS YES - SET E AND GO TO SYSDS TO SET LTR CPA .3 CHECKING LU3? JMP SYSDS YES - E=0 AND GO TO SYSDS TO SET LTR * JSB XLUEX DO AN IMPOSSIBLE READ DEF *+7 ON DSLU TO GET THE DEF RDNAB NUMBER OF TRACKS ON THE DISC DEF CONWD DEF BUF DEF .1 DEF N1 DEF ZERO JMP FDCK0 ADB N1 SUBTRACT 1 DISC'S PHYSICAL SIZE LDA LTR,I GET LAST TRACK PARAMETER SSA WAS ONE SPECIFIED? LDA B NO - SO JUST USE LAST PHYSICAL TRACK CMB,INB MAKE SURE THAT LAST TRACK SPECIFIED ADB A IS NOT LARGER THAN LAST CMB,INB PHYSICAL TRACK ON DISC. SSB LAST TRACK SPECIFIED > LAST PHYSICAL TRACK? JMP FDCK0 YES - RETURN NO VALID FILE SYSTEM STA LTR NO - OK SO SAVE LAST TRACK * READ JSB XLUEX CALL EXEC TO READ 16-WORD CARTRIDGE DEF *+7 SPECIFICATION ENTRY FROM THE LAST DEF RDNAB TRACK, SECTOR 0 ON DSLU DEF CONWD ABUF DEF BUF DEF .16 DEF LTR DEF ZERO JMP FDCK0 * LDA BUF GET 1ST WORD OF SPECIF ENTRY RAL,CLE,ERA SPECIF FLAG INTO E-REG SEZ,RSS JMP FDCK0 IF FLAG WASN'T SET THEN NOT A VALID FILE SYSTEM STA BUF PUT BASK 1ST WORD LESS SIGN BIT JSB NAM.. LEGAL FMGR NAME? DEF *+2 DEF BUF SZA LEGAL? JMP FDCK0 NO LDA BUF+3 IF CRN IS NEGATIVE SSA THEN NOT A LEGAL JMP FDCK0 FILE SYSTEM LDA BUF+8 NUMBER TRACKS IN DIRECTORY CMA,INA (MADE POSITIVE) PLUS LOWEST DIRECTORY ADA BUF+7 TRACK LESS ONE MUST BE ADA N1 SAME AS LAST TRACK CPA LTR RSS ITS OK JMP FDCK0 NOT A VALID FILE SYSTEM LDA BUF+5 NEXT SECTOR CAN'T CMA,INA BE LARGER THAN #SECTORS ADA BUF+6 PER TRACK SSA,RSS CLA,RSS THERE IS A FILE SYSTEM SO RETURN A=0 FDCK0 LDA .1 NO FILE SYSTEM SO RETURN A=1 LDB DEFN1 RESET OPTIONAL LAST STB LTR TRACK PARAMETER TO DEF TO ZERO LDB BUF+3 RETURN THIS DISC'S CRN JMP FD.CK,I RETURN * * SYSDS CLB,SEZ,RSS LU 3? ADB TATLG YES E=0 SO MUST BE LU 3 ADB TATSD LU 2 : LTR = C(TATSD) - 1 SEZ,RSS LU 3 : LTR = - C(TATSD) - C(TATLG) - 1 CMB,INB ADB N1 STB LTR SAVE LAST TRACK FOR EXEC CALL ADA PRC ADD PRIVILEDGED BITS TO LU STA DSLU AND SAVE FOR EXEC READ JMP READ * * * BUF BSS 16 CONWD BSS 2 * N1 DEC -1 RDNAB OCT 100001 ZERO NOP .1 DEC 1 .2 DEC 2 .3 DEC 3 .16 DEC 16 DEFN1 DEF ZERO * TATLG EQU 1755B TATSD EQU 1756B A EQU 0 B EQU 1 UNL PRC OCT 74000 LST * END