/HEADER-DECSYSTEM-8/78 V3D /EDIT 4 /PARAMETER BLOCK CREATION FOR DECSYSTEM-8/78 OR OS/8 / /FORMERLY CALLED PARAM IN DECSYSTEM-8 / 1. PARAM BY D.E.WREGE 5/23/73 / 2. MODIFIED 5/23/74 TO REMOVE MONITOR VERSION / DEPENDENCE. / THIS VERSION WILL RUN STAND ALONE OR UNDER / PS/8,OS/8,DS/8, OR ANY OTHER VERSION OF THE MONITOR. / (R.H.) / 3. 9/7/77 DEVICE TABLES EXPANDED AND CLUSTERED / AT 3200, STARTING ADDRESS 200 / 4. SEQUENTIAL VOLUMES ADDED (DSH&WHT) / 5. NAME CHANGED TO HEADER TO AVOID CONFLICT / WITH RTS/8 PARAM (WHT & DSH)) / 6. ADDED OS/8 V3D DATE IN EXTENDED HEADER DATE / USE DIRECT V5H OR V6A TO PRINT (WHT & DSH) /VERSION 3D 12/31/77 NY WM. H. TOPLISS & D. S. HARMER /TO ASSEMBLE: / .R PAL8 / *HEADER,LPT:
6700 FREE SPACE / 6700--> 7777 TEXT BUFFER,DEVICE HANDLER, & SYSTEM PAGE / 10000--> 11777 USR / 12000--> 15000 DIRECTORY & PARAMETER BLOCKS / 15400--> 16000 COPY OF PARAMETER BLOCK SAVED BY SEQUENTIAL /PAGE 0 VARIABLES / *20 CHANGF, 0 /ROUTE B FLAG (SELECTIVELY DECIDE) CHANGI, -1 /FLAG FOR CHANGES IN PARAMETER BLOCK LEPNT, 0 /POINTER TO DIRECTORY BLOCK LINKS ZERO, 0 /0 IF DIRECTORY GETS ZEROED XTM1, 0 /DESCRIPTIVE LABEL CHARACTER COUNTER XTEMP1, 0 / / PRMSG, PRMESG CRLF, XCRLF HELP, XHELP HELPX, 0 /O IF NEED HELP K7605, 7605 SYSTEM, 7700 GNAME, GETNAM GLINE, XGLINE PCH, PRINT NM1, 0 NM2, 0;0 NM3, 0 DEVHND, 7200 /POINTER TO DEVICE HANDLER RBFLAG, 0 TEMP1, 0 TEMP2, 0 TM1, 0 TMP, 0 NMCT, 0 PN, 0 PRDSW, 0 *200 START, CLA CLL TAD 7777 SPA CLA /SEE IF HASP RUNNING JMP I K7605 /DON'T RUN CIF 10 /GET USR IN JMS I SYSTEM 10 TAD (200 /AND SET "SYSTEM" DCA SYSTEM JMS I CRLF JMS I PRMSG /PRINT VERSION # VERSION JMS I CRLF RESTRT, JMS I PRMSG /WITH HELP? WNTHLP JMS YESORNO STA /ANSWER WAS YES DCA HELPX /OR NO JMP PARCONT /DISPATCH ROUTINE ON ACC. DISPAT, 0 DCA NM1 /THATS WHAT SRCH USES TAD DISPATCH DCA SRCH /FAKE SUBROUTNE CALL JMP SRCH+1 /GO DO IT /PRINT A MESSAGE PRMESG, 0 CDF 0 /JUST IN CASE KCC /CLEAR FLAG (FROM ^O TAD I PRMESG /GET ADD OF MESSAGE DCA DISPATC /STORE POINTER ISZ PRMESG /NORMAL EXIT PRST1, TAD I DISPATC RTR;RTR;RTR /OVER FOR PRINT JMS PRCHR /PRINT LEFT HALF TAD I DISPATC JMS PRCHR /PRINT RIGHT HALF ISZ DISPATC /NEXT WORD JMS CNTRLO /CHECK FOR ^O JMP I PRMESG /YES IGNORE REST OF MESSAGE JMP PRST1 /LOOP PRCHR, 0 AND (77 SNA JMP I PRMESG /IF ZERO QUIT TAD (-40 /FOR EXTEND SPA /SKIP IF NUMERIC TAD (100 /IS ALPHA TAD (240 /BACK TO CORRECT JMS I PCH /PRINT ROUTINE IN MONITOR JMS CONSOL /CHECK CONSOL FOR ^C JMP I PRCHR /PRINT MESSAGE IF HELP WANTED /CALL: JMS I HELP / MSPNT / RETURN XHELP, 0 CDF 0 /JUST IN CASE TAD I XHELP DCA HLPPNT /STASH POINTER ISZ XHELP /POINT TO RETURN TAD HELPX SNA CLA /SKIP IF HELP WANTED JMP I XHELP /NO HELP JMS I PRMSG /PRINT THE MESSAGE HLPPNT, 0 JMS I CRLF JMP I XHELP /INPUT A YES OR NO AND TAKE /CONDITIONAL BRANCH OUT. /CALL: JMS YESORNO / RET1 /ANSWER=YES / RET2 /ANSWER=NO YESORN, 0 KSF /WAIT FOR Y OR N JMP .-1 KRB /GET CHAR JMS DISPATC -"C+100;7600 -103+100;7600 -"Y; YES -131; YES -"N; NO -116; NO 0 JMS I CRLF JMS I PRMSG YESNO JMS I CRLF JMP YESORNO+1 /ANSWER IS YES TO HELP YES, JMS I PRMSG /AND FINISH "YES" MYES JMP NOCONT NO, ISZ YESORNO JMS I PRMSG MNO NOCONT, JMS I CRLF JMP I YESORNO PAGE /**CONTINUING WITH MAIN LINE CODE** PARCON, JMS I HELP HEAD1 /THIS PROGRAM ESTABLISHES A PARAMETER BLOCK JMS I HELP HEAD2 /ON DECSYSTEM-8 FILE STRUCTURED DEVICES. JMS I CRLF JMS I HELP HEAD3 /TELL HIM ABOUT LINE SCANNER GOOF1, JMS I CRLF JMS I PRMSG MESDEV /DEVICE NAME JMS GTLINE /INPUT A LINE JMS I CRLF /NEW LINE JMS I GNAME /DECODE A DEVICE NAME SKP JMP MAINL2 /CONTINUE MAIN LINE GOOF1A, JMS I PRMSG /HE GOOFED:TELL HIM MGOOF1 JMP PARCON /ASK AGAIN MAINL2, TAD NM1 /DECODE DEVICE DCA DEVN-1 /NAME TAD NM2 DCA DEVN TAD (7201 /WHERE HANDLER GOES DCA DEVN+1 CIF 10 JMS I SYSTEM /FETCH HANDLER 1 0 DEVN, 0;0 JMP GOOF1A /NOT THERE TAD .-2 /ENTRY DCA DEVHND /STASH FOR CALL TAD DEVN /NOW TO SEE IF FILE STRUCTURED TAD (7757 /INDEX INTO DCB TABLE DCA DEVN-1 /A GOOD TEMP CDF 10 TAD I DEVN-1 /PICK UP CDF 0 DCA DTYPE /STASH FOR LATER TAD DTYPE SPA CLA /SKIP IF NOT FILE STRUCTURED JMP .+4 /CONTINUE JMS I PRMSG /TELL HIM MNFLST /NOT FILE STRUCTURED JMP GOOF1 /AND START OVER JMS LEGAL /NOW SEE IF WE CAN PUT IN PARMS TAD (4400-1 /SET UP XR DCA PRXR /TO PARAMTER BLOCK CDF 10 TAD (0427 /THE FIRST THREE DCA I PRXR /WORDS IN THE PARAMETER TAD (1203 /BLOCK INDICATE ITS DCA I PRXR /PRESENCE. STA /FOR MOST CASES WORD 2 DCA I PRXR /NEED ONLY BE TESTED. JMS SQPARM /DO SQUISH AND ZERO PARAMS JMS SYSPAR /AND SYSTEM PARAMETERS JMS LENPAR /DEVICE LENGTH. JMS UDNAME /DO USER NAME STUFF JMS DLABLE /AND DESCRIPTIVE LABEL JMS WRZERO /WRITE ZERO DIRECTORY IF REQUIRED JMS WRPARAM /AND PARAMTER BLOCK JMP SEQUENTIAL /SEQUENTIAL VOLUMES (Y OR N)? /ROUTINE USED BY DUMP TO DETERMINE IF USER /WANTS TO CHANGE THE BLOCK. /CALL: JMS CHANGE / RET1 /IF YES / RET2 /IF NO CHANGE, 0 CDF 0 TAD CHANGF /FLAG FOR ASK QUESTION SNA CLA /SKIP IF SELECTIVELY DESCIDE JMP CHANG2 /PRETEND ANSWER WAS NO JMS I CRLF /NEW LINE JMS I PRMSG /CHANGE THIS? MCHANGE JMS YESORNO /ASK THE QUESTION JMP .+3 /YES IS FIRST EXIT CHANG2, ISZ CHANGE JMP I CHANGE /AND RETURN DCA CHANGI /SIGNAL SOMETHING WILL CHANGE JMP I CHANGE /CHECK TTY FOR ^C CONSOL, 0 KSF /FLAG UP JMP I CONSOL /NO=RETURN KRS /READ BUFFER: NO FLAG CLEAR TAD (-"C+100 /-^C SZA CLA JMP I CONSOL /NOT ^C TSF /WAIT FOR OUTPUT TO FINISH JMP .-1 JMP 7600 /RETURN TO PS/8 /CHECK CONSOL FOR ^O CNTRLO, 0 KSF JMP CNTRL1 KRS /READ STATIC TAD (-"O+100 /CHECK FOR ^O SZA CLA JMP CNTRL1 /NOPE KCC /CLEAR THE CHAR JMP I CNTRLO /CALL+1=YES CNTRL1, ISZ CNTRLO JMP I CNTRLO /RET TO CALL+2 PAGE /SUBROUTINE TO FIGURE OUT IF A PARAMETER BLOCK IS LEGAL /ALSO SETS SWITCHES: / ZERO = -1 IF DEVICE HAS DIRECTORY /WILL ONLY ZERO DIRECTORY IF BAD LEGAL, 0 JMS I DEVHND /READ IN 6 BLOCKS 1410 /AS MAY BE IN BLOCK 6 2000 /IN TO FIELD 1 0001 JMP PARERR /MIGHT BE PARITY ERROR STA DCA ZERO /INIT ZERO SWITCH CDF 10 /LETS LOOK AT THE DIRECTORY TAD 2000 /PICK UP #ENTRIES SEG 1 CLL /FOR TEST TAD (100 /SHOULD BE >-100 SNL CLA /MOST UNMARKED TAPES WILL FAIL THIS TEST JMP NODIR /NO DIRECTORY DCA 5002 /TO MAKE SURE WILL END TAD (2002 /WE ARE GOING TO SEE IF SEG 6 DCA LEPNT /IS USED FOR DIRECTORY LEGAL1, TAD I LEPNT /PICK UP A LINK TO NEXT SEGMENT SNA CLA /SKIP IF A LINK JMP LEGAL2 /LAST LINK TAD (400 TAD LEPNT /NEXT SEGMENT LINK DCA LEPNT JMP LEGAL1 /CONTINUE LEGAL2, CDF 0 TAD LEPNT /PICK UP POINTER TAD (-4400 /IF RESULT >0 THEN BLOCK 6 USED SPA CLA JMP LEGAL3 /GO CHECK IF BLOCK ALREADY EXISTS JMS I PRMSG /NO CAN MAKE PARAMETER BLOCK MILLEGAL JMP I K7605 NODIR, DCA ZERO /INDICATE DEVICE NEEDS ZEROING LEGAL3, CDF 10 /IF COME FROM LEGAL2 ISZ 4402 /SKIP IF ALREADY HAVE ONE JMP I LEGAL /RETURN JMS PRMSG2 /TELL HIM WE HAVE ONE MHAVPARAM MESS25 /DOES HE WANT TO MESS26 /A:REPLACE MESS27 /B:SELECTIVELY DESCIDE MESS28 /C:PRINT IT 0 JMS OPTION JMP I LEGAL /REPLACE STA /SET UP FOR SELECTIVE DCA CHANGF /CHANGE VIA FLAG JMP DUMPP /PRINT A BUNCH OF MESSAGES ON DIFFERENT LINES PRMSG2, 0 CDF 0 TAD I PRMSG2 /PICK UP ONE ISZ PRMSG2 /POINT TO NEXT SNA /SKIP IF NOT DONE JMP I PRMSG2 /DONE ALL MESSAGES DCA .+2 /STORE FOR PRINT OUT JMS I PRMSG /PRINT IT 0 /ADDRESS OF MESSAGE JMS I CRLF /NEW LINE JMP PRMSG2+1 /HANDLER ERROR ON INPUT. PARERR, JMS I CRLF JMS I PRMSG MESS0 /TELL HIM ABOUT ERROR JMS I CRLF JMS I PRMSG /AND ASK HIM ABOUT CONTINUING. MESS1 JMS YESORNO /WAIT FOR AN ANSWER SKP /YES. JMP RESTRT /NO=START OVER DCA ZERO /DEVICE NEEDS ZEROING JMS I PRMSG /TELL HIM WE WILL ZERO THE DIRECTORY MESS2 JMS I CRLF JMP I LEGAL /AND RETURN /ASSEMBLE AN OCTAL NUMBER FROM LINEBUFFER /CALL: JMS ASSEMB / ERROR /NON OCTAL NUMB / NORMAL /AC=NUMBER ASSEMB, 0 DCA TM1 /DIGIT COUNTER DCA TEMP1 TAD I LXR /PICK UP CHARACTER SNA JMP ASSDON /DONE. DCA TEMP2 TAD TEMP2 TAD (-260 CLL /FOR TEST TAD (-12 SNL CLA /LINC=1 IF ILLEGAL JMP ASSCON /CONTINUE TAD TM1 /TO SEE IF ANY INPUT SZA CLA JMP ASSDONE JMS I PRMSG MNOINPT /NO INPUT JMP I ASSEMB /ERROR RETURN ASSCON, TAD TEMP1 CLL RAL DCA TEMP1 TAD TEMP1 CLL RAL CLL RAL TAD TEMP1 /*10 DCA TEMP1 TAD TEMP2 AND (17 TAD TEMP1 ISZ TM1 JMP ASSEMB+2 ASSDON, TAD TEMP1 ISZ ASSEMB JMP I ASSEMB PAGE /SUBROUTINE TO GET DEVICE LENGTH LENPAR, 0 JMS DATE /PUT DATE IN PARAM BLOCK JMS PARCS /LOOK UP LENGTH IN TABLE SNA CLA /SO WE DON'T ASK DUMB QUESTION JMP PARC5 /IS NO ENTRY IN TABLE JMS I HELP /GIVE NECESSARY HELP HELP3 JMS I HELP HELP3A JMS I HELP HELP3B JMS I HELP HELP3C JMS I HELP HELP3D JMS I CRLF JMS I PRMSG /AND ASK IF STANDARD LENGTH MESS3 JMS YESORNO JMP PARC2 /YES: USE TABLE PARC5, JMS I PRMSG /NO MESS4 /ASK FOR LENGTH JMS GTLINE /INPUT A LINE JMS ASSEMB /ASSEMBLE A NUMB. JMP .-4 /ERROR-TRY AGAIN CIA /-LENGTH DESIRED SKP PARC2, JMS PARCS /LOOK UP LENGTH PARC3, CDF 10 DCA 4403 /STASH -LENGTH CDF 0 JMS I CRLF PARC4, JMS I HELP HLP24A JMS I HELP /TELL ABOUT START OF FILE STORAGE HLP24B JMS I HELP HLP24C JMS I HELP HLP24D CDF 10 /PATCH TO ASK IF STANDARD TAD 4407 /SYSTEM PRESENT FLAG SZA CLA /SKIP IF NOT PRESENT TAD (70-7 /IS SYSTEM TAD (7 DCA 4410 JMS I PRMSG /ASK IF HE WANTS STANDARD MES22A JMS YESORNO JMP I LENPAR /YES:GOT IT JMS I PRMSG MESS22 JMS GTLINE /INPUT START OF FILE STORAGE JMS ASSEMB JMP .-4 CDF 10 DCA 4410 TAD 4410 CDF 0 TAD (-7 /MUST BE >6 SPA CLA /SKIP IF LEGAL JMP PARC4 /DO AGAIN JMP I LENPAR /RETURN /SUBROUTINE TO PICK UP SQUISH AND ZERO PARAMETERS SQPARM, 0 JMS DATE /DATE THE PARAMETER BLOCK JMS I CRLF JMS I HELP /TELL HIM WHAT THIS MEANS HELP5A JMS I HELP HELP5B JMS I HELP HELP5C /DESCRIBE IT JMS I HELP HELP5D JMS I HELP HELP5E JMS I PRMSG /USE STANDARD? MESS5 JMS YESORNO SKP JMP SQL1 /NO: INPUT SEPARATELY CDF 10 /YES: USE STANDARD STA DCA 4404 /NO ZERO ALLOWED STA DCA 4405 /NO SQUASH FROM OTHER DEVICES SQEXIT, CDF 10 DCA 4406 /SQUASH TO SELF ALLOWED CDF 0 JMP I SQPARM /AND RETURN SQL1, JMS I PRMSG /ASK ABOUT ZERO MESS6 JMS YESORNO SKP STA /NO ZEROS CDF 10 DCA 4404 /SET INDICATOR JMS I PRMSG /HOW ABOUT SQ FROM ANOTHER DEV? MESS7 JMS YESORNO SKP /YES: DOIT AND EXIT JMP .+3 CDF 10 JMP SQEXIT-1 CDF 10 /NO: MUST ASK MORE STA DCA 4405 JMS I PRMSG /TO MYSELF? MESS8 JMS YESORNO SKP /YES STA /NO: DISALLOW JMP SQEXIT PAGE /DUMP OF PARAMETER BLOCK REQUESTED. DUMPP, STA /TO INDICATE IF ANYTHING CHANGES DCA CHANGI JMS I CRLF JMS I PRMSG /USER DEVICE NAME MESS13 TAD (4500 /THEN PRINT NAME JMS PRASCII -4 /MAXIMUM CHARS JMS I PRMSG MESS14 /VOLUME ID CDF 10 TAD 4504 JMS DECPRN /PRINT IT JMS CHANGE /CHANGE IT? JMS UDNAME /YES JMS I CRLF /NEW LINE TAD (4600 JMS PRASCII /AND DESCRIPTIVE LABEL -200 /MAX. JMS CHANGE /CHANGE IT?? JMS DLABLE /YES JMS I CRLF /OR NO CDF 10 TAD 4404 /PICK UP "ZERO" FLAG SNA CLA IAC /IS TAD (HELP5B+1 /NOT DCA .+2 /ALLOWED JMS I PRMSG HELP5B+1 JMS I CRLF CDF 10 TAD 4406 /NO SQUISHES SNA CLA JMP .+4 /SOME SQUISHES ALLOWED JMS I PRMSG HELP5C JMP DUMPL2 TAD 4405 /SQUISH TO MYSELF SZA CLA TAD (HELP5D-MESS20 TAD (MESS20 DCA .+2 JMS I PRMSG MESS20 DUMPL2, JMS CHANGE /CHANGE SQUISH AND ZERO?? JMS SQPARM /YEP JMS I CRLF /OR NO CDF 10 TAD 4407 /SYSTEM PRESENT SNA CLA /SKIP IF PRESENT JMP DUMPL3 /NO:JUMP AROUND TAD 4505 CDF 0 TAD (SYSTBL /INDEX INTO TABLE OF SYS MESSAGES DCA TEMP1 /STASH FOR INDIRECT TAD I TEMP1 DCA .+4 JMS I PRMSG MESS10 JMS I PRMSG 0 /PRINT SYSTEM TYPE JMS I PRMSG MESS21 /VERSION CDF 10 TAD 4506 JMS DECPRN /PRINT VERSION # CDF 10 TAD 4507 /PICK UP RELEASE NUMBER TAD (300 /MAKE A CHARACTER JMS I PCH /PRINT CHARACTER JMP DUMPL3+2 /OUTPUT A CR. LF. XCRLF, 0 TAD (215 JMS I PCH TAD (212 JMS I PCH JMP I XCRLF PAGE DUMPL3, JMS I PRMSG MESS23 /NO SYSTEM PRESENT JMS CHANGE /CHANGE IT?? JMS SYSPAR /YES JMS I CRLF /OR NO JMS I PRMSG MESS4 /DEVICE SIZE STA /RESTORE FLAG CDF 10 DCA 4402 /TO -1 TAD 4403 /PICK UP SIZE CIA /MAKE POSITIVE JMS DECPRN /PRINT DECIMAL # JMS I CRLF /NEW LINE JMS I PRMSG /START OF FILE STORAGE MESS22 CDF 10 TAD 4410 /IS IN LOC 10 JMS DECPRN JMS CHANGE /CHANGE LENGTH AND START? JMS LENPAR /YES JMS I CRLF ISZ CHANGI /SKIP IF NOTHING WAS CHANGED JMS WRPARA /WRITE OUT THE PARAMETER BLOCK JMS I CRLF JMP SEQUENTIAL /SEQUENTIAL VOLS? /DIGITAL 8-22-U /UNSIGNED DECIMAL PRINT /CALL WITH NUMBER TO BE TYPED IN C(AC) /RETURN TO LOCATION FOLLOWING THE JMS DECPRN, 0 CDF 0 DCA VALUE /SAVE INPUT CLA STL RAR /4000 DCA ASCDIG /START WITH IGNORE LEADING ZEROS DCA DIGIT /CLEAR TAD CNTRZA DCA CNTRZB /SET COUNTER TO FOUR TAD ADDRZA DCA ARROW /SET TABLE POINTER SKP DCA VALUE /SAVE CLL TAD VALUE ARROW, TAD TENPWR /SUBTRACT POWER OF TEN SZL ISZ DIGIT /DEVELOP BCD DIGIT SZL JMP ARROW-3 /LOOP CLA /HAVE BCD DIGIT TAD DIGIT /TAKE CARE OF LEADING ZEROS SNA CLA /SKIP IF NOT ZERO JMP .+3 /MAINTAIN SPACES OR ZERO TAD K260 DCA ASCDIG /CHANGE TO NUMERIC TAD DIGIT /GET DIGIT TAD ASCDIG /MAKE IT ASCII SMA /NO PRINT LEADING ZEROS JMS I PCH /PRINT IT CLA DCA DIGIT /CLEAR ISZ ARROW /UPDATE POINTER ISZ CNTRZB /DONE ALL FOUR? JMP ARROW-1 /NO: CONTINUE TAD ASCDIG /TO SEE IF PRINTED ANYTHING SMA CLA /SKIP IF NO PRINT YET JMP I DECPRN TAD K260 /PRINT ONE 0 JMS I PCH JMP I DECPRN ADDRZA, TAD TENPWR CNTRZA, -4 TENPWR, -1750 /ONE THOUSAND -0144 /ONE HUNDRED -0012 /TEN -0001 /ONE K260, 260 VALUE, 0 DIGIT, 0 CNTRZB, 0 ASCDIG, 4000 /LETS BE CUTE A LITTLE LOCKDN, JMS I HELP MLOCK8 JMS I HELP MLOCK9 /SCRATCH A LITTLE TO THE LEFT... STA CLL RAL /TWICE DCA VALUE /A GOOD TEMP LOCKQU, TAD (-5 DCA DIGIT JMS I DEVHND 0210 5000 0050 CLA CLL ISZ DIGIT JMP LOCKQU+2 JMS I HELP MMMM ISZ VALUE JMP LOCKQU THANKS, JMS I HELP MTHANKS JMS I CRLF TAD (LOCK-2 DCA LOCKED /RESET FOR NEXT TIME JMS I CRLF JMP RESTRT /PRINT TWO 6 BIT CHARS IN AC PRWD, 0 DCA TMP TAD TMP RTR;RTR;RTR JMS I PCH TAD TMP JMS I PCH JMP I PRWD PAGE /PICK UP SYSTEM PARAMETERS SYSPAR, 0 CLA CLL CDF 10 DCA 4407 CDF 0 TAD (4504 JMS ZEROPR -73 /W.C. JMS DATE /DATE THE PARAMETER BLOCK JMS I PRMSG MESS9 /SYSTEM PRESENT? JMS YESORNO SKP /YES: CONTINUE JMP I SYSPAR /NO:THIS INFO NOT NEEDED STA CDF 10 DCA 4407 CDF 0 SYSP2, JMS I PRMSG MESS10 /ESTABLISH ID JMS I CRLF JMS I HELP HLP10A JMS I HELP HLP10B JMS I HELP HLP10C JMS I HELP HLP10D JMS I HELP HLP10E JMS I HELP HLP10F JMS I HELP HLP10G JMS I HELP HLP10H JMS I HELP HLP10I JMS GTLINE JMS ASSEMB /GET TYPE JMP SYSP2 /BAD INPUT CIA /THAT'S HOW WE STORE IT CDF 10 DCA 4505 CDF 0 JMS I PRMSG MESS11 /GET VERSION NUMBER JMS GTLINE JMS ASSEMB /GET NUMBER JMP .-4 /AGAIN CDF 10 DCA 4506 CDF 0 SYSP1, JMS I PRMSG MESS12 /AND RELEASE JMS GTLINE JMS ASSEMB /GET RELEASE NUMBER JMP SYSP1 /AGAIN CDF 10 DCA 4507 DCA 4510 DCA 4511 CDF 0 JMP I SYSPAR /SELECT OPTIONS A,B,C /CALL: JMS OPTION / RET1 /A / RET2 /B / RET3 /C /ONLY CALLED BEFORE DUMP. OPTION, 0 KSF /WAIT FOR KEYBOARD JMP .-1 /TO HAVE A CHARACTER KRB /READ IT TSF JMP .-1 TLS /ECHO IT: JMS DISPATCH /AND COMPARE -"A;OPTC+2 -101;OPTC+2 -"B;OPTC+1 -102;OPTC+1 -"C;OPTC -103;OPTC 0 JMS I CRLF JMS I PRMSG /BAD ANSWER ANSABC /A,B,C ONLY JMP OPTION+1 OPTC, ISZ OPTION ISZ OPTION JMS I CRLF JMP I OPTION /COME HERE FOR DEVICE LENGTH TABLE LOOKUP PARCS, 0 TAD DTYPE /PICK UP TYPE AND (770 /MASK TYPE CLL RTR;RAR /OVER TAD (LENTBL /PICK UP LENGTH DCA TEMP1 /STASH FOR INDIRECT TAD I TEMP1 /GOT IT JMP I PARCS DTYPE, 0 /DCB WORD /ROUTINE CALLED WHEN DEVICE LOCKED (I.E. ERROR EXIT /FROM HANDLER WHEN WRITING PARAMETER BLOCK.) LOCKED, LOCK-2 JMP I LOCKED CLA CLL /AC=4000 ERROR EX. ISZ LOCKED ISZ LOCKED JMP I LOCKED PAGE /SUBROUTINE TO ZERO SOME ELEMENTS OF THE PARAMETER BLOCK /CALL: TAD (START-1 / JMS ZEROPR / -#WORDS ZEROPR, 0 DCA PRXR /SET XR TAD I ZEROPR DCA ZROCNT /COUNTER ISZ ZEROPR CDF 10 DCA I PRXR ISZ ZROCNT JMP .-2 CDF 0 JMP I ZEROPR ZROCNT, 0 /INPUT USER DEVICE NAME UDNAME, 0 JMS DATE /DATE THE PARAMETER BLOCK TAD (4476 /ZERO INFO JMS ZEROPR -6 JMS I CRLF JMS I HELP /TELL HIM ABOUT USER NAMES HLP12A JMS I HELP HLP12B JMS I HELP HLP12C JMS I HELP HLP12D UDL4, JMS I PRMSG MESS13 JMS GTLINE /GET LINE FOR LABEL TAD (4500 DCA TEMP1 /USE FOR POINTER TAD (-4 DCA TEMP2 /AND COUNTER UDL2, TAD I LXR /PICK UP CHARACTER SNA /DONE? JMP UDL1 /YES CDF 10 DCA I TEMP1 /STASH THIS CHAR CDF 0 ISZ TEMP1 ISZ TEMP2 JMP UDL2 UDL1, TAD (BEGLN-1 DCA LXR /FOR MAKING INTERNAL NAME JMS I GNAME /PACK IT UP JMP UDNAME+1 /START OVER ILLEGAL CHAR TAD NM2 /SECOND PACKED SNA CLA STA /FOR FORCING BIT 0 ON DCA NM3 /ONLY 4 CHARS ALLOWED TAD NM1 TAD NM2 RAL CLL /OVER FOR FORCING BIT 0 ON ISZ NM3 STL RAR CDF 10 DCA 4477 /PUT IN PACKED NAME TAD 4477 CDF 0 JMS NAMCHK /CHECK FOR DUP NAMES UDL3, JMS I HELP HLP13A JMS I HELP HLP13B JMS I PRMSG MESS14 JMS GTLINE JMS ASSEMB /FORM DECMAL NUMBER JMP UDL3 /BAD INPUT CDF 10 DCA 4504 /STASH CDF 0 JMP I UDNAME /DIALOGUE ABOUT LOCKED DEVICES. LOCK, TAD HELPX /FIRST SEE IF HE IS GETTING HELP SNA CLA /SKIP IF YES. JMP NOHELP /BE A LITTLE HARDER ON HIM JMS I HELP /TELL HIM TO WR-EN DEVICE MLOCK1 JMS TTYWAIT /WAIT FOR KEY STRUCK JMS LOCKED /RESET RETURN JMS WRPARA /TRY AGAIN JMP RESTRT /ALL O.K. NOHELP, STA DCA HELPX /FOR C.R. WITH MESSAGE JMS I HELP MLOCK2 /OUCH!! JMS I HELP MLOCK3 /YOU FORGOT SOMETHING! JMS TTYWAIT /WAIT FOR KEYSTRUCK JMS LOCKED /RESET RETURN JMS WRPARA /TRY AGAIN JMP THANKS /O.K. JMS I HELP MLOCK2 /OUCH!! JMS I HELP MLOCK4 /CLUE:YOU NEED TO PRESS A SWITCH LOCK4, JMS TTYWAIT JMS LOCKED JMS WRPARA JMP LOCKDN /O.K. GOT IT JMS PRMSG2 MLOCK2 /OUCH!! MLOCK5 /YOU DUMMY! I CAN'T DO EVERYTHING MLOCK6 /THE DEVICE NEEDS TO BE WRITE ENABLED. MLOCK7 /NEXT TIME GET HELP 0 JMP LOCK4 PAGE /INPUT DESCRIPTIVE LABEL DLABLE, 0 JMS DATE TAD (4577 JMS ZEROPR -200 JMS I HELP HLP15 JMS I HELP HLP15B JMS I HELP HLP15C JMS I HELP HLP15D JMS I PRMSG MESS15 TAD (-200 DCA XTM1 /A GOOD TEMP?? TAD (4600 DCA XTEMP1 /SET PARAM POINTER JMP DLAB3-1 DLAB1, TAD (215 /PUT IN CR (IGNORED BY LINE SCANNER) JMS PUTONE /INTO BUFFER TAD (212 /AND LINE FEED JMS PUTONE JMS GTLINE /GET A LINE DLAB3, TAD I LXR SNA /SKIP IF LINE NOT ENDED JMP DLAB1 JMS PUTONE JMP DLAB3 /STICK IN BUFFER - CHECK FOR END, ETC. PUTONE, 0 CDF 10 DCA I XTEMP1 TAD I XTEMP1 CDF 0 TAD (-"Z+100 /-^Z SNA CLA /SKIP IF NOT ^Z JMP DLAB2 /DONE ISZ XTEMP1 /NEXT POSITION ISZ XTM1 /OVERFLOWING? JMP I PUTONE /NO: CONTINUE JMS I PRMSG /TELL HIM OVERFLOW MESS16 DLAB2, TAD ("Z-100 /FORCE ^Z IN CDF 10 DCA I XTEMP1 /JUST IN CASE CDF 0 JMP I DLABLE /ROUTINE TO WRITE A ZERO DIRECTORY OUT /IF "ZERO" IS =0 WRZERO, 0 ISZ ZERO SKP /ZEROING NEEDED JMP I WRZERO TAD (2000 JMS ZEROPR /START BY ZEROING HEADER -6 CDF 10 TAD 4410 /PICK UP START OF FILE STORAGE DCA 2001 /FILE ORIGIN STA DCA 2000 /1 FILE STA DCA 2004 /1 WASTE WORD TAD 4403 /PICK UP LENGTH TAD 2001 /ADJUST FOR FILE START DCA 2006 /STICK IN A BIG EMPTY CDF 0 JMS I DEVHND /AND WRITE LOTS OF BLOCKS OUT 5210 /5 OF THEM 2000 /FROM FIELD 1 0001 HLT /OR SOMETHING JMP I WRZERO /WRITE OUT THE PARAMETER BLOCK WRPARA, 0 JMS I DEVHND 4210 4400 0006 JMP LOCKED+2 JMP I WRPARA /SUBROUTINE TO GET A LINE & RESET LXR GTLINE, 0 CDF 0 JMS I GLINE TAD (BEGLN-1 DCA LXR JMP I GTLINE /PRINT ASCII STRING. IGNORE 0'S /CALL: TAD (ADDRESS /FIELD 1 / JMS I PRASCII / -COUNT /#DIGITS PRASCI, 0 CDF 0 DCA TEMP1 /POINTER TAD I PRASCII /WORD COUNT DCA TM1 ISZ PRASCII CDF 10 TAD I TEMP1 /PICK UP FIRST CDF 0 SZA JMS I PCH /PRINT IT ISZ TEMP1 ISZ TM1 /SKIP WHEN DONE JMP .-7 JMP I PRASCII PAGE /ROUTINE TO CHECK FOR DUP NAMES. /ENTER WITH HASHED USER ASSIGNED NAME. NAMCHK, 0 CIA /NEGATE FOR CHECK DCA NM3 /TEMP STORAGE TAD (USEDL-1 /USED NAMES LIST DCA PRXR /POINTER TAD I PRXR /GET A USED NAME SNA /SKIP IF ONE THERE JMP I NAMCHK /NO CONFLICT TAD NM3 /FOR COMPARISON SZA CLA /A MATCH? JMP .-5 /NO KEEP GOING JMS I PRMSG /A CONFLICT NM1 /TELL HIM HIS NAME JMS I PRMSG /AND THAT IT CONFLICTS NCONF / CONFLICTS WITH TAD PRXR /CALC ADD OF USED TAD (-USEDL /PRM NAME DCA NM3 /TEMP STORAGE TAD NM3 /3-WORDS/NAME RAL CLL /*2 TAD NM3 /*3 TAD (USEDN /POINT TO USED NAMES DCA .+2 /FOR MESSAGE JMS I PRMSG USEDN JMS I CRLF JMS I PRMSG MAGAIN /TRY AGAIN? JMS YESORNO JMP UDL4 /YES JMP I NAMCHK /NO /WAIT FOR KEYSTRUCK TTYWAI, 0 KSF JMP .-1 KCC JMP I TTYWAIT GETNAM, 0 DCA NM1 DCA NM2 DCA NM3 TAD (NM1 DCA PN CLA CMA DCA PRDSW GTNMX, DCA NMCT TAD I LXR TAD (-240 SNA JMP .-3 TAD (240 SKP GTNMLP, TAD I LXR DCA TMP TAD TMP TAD (-256 SNA JMP PERIOD TAD (-2 CLL TAD (-12 SNL CLA JMP NINSRT TAD (-301 TAD TMP CLL CML TAD (-32 SNL CLA JMP EONAME NINSRT, TAD NMCT TAD (-6 SMA CLA JMP GTNMLP TAD NMCT CLL RAR TAD PN DCA TEMP1 TAD TMP AND (77 SZL JMP .+4 RTL RTL RTL TAD I TEMP1 DCA I TEMP1 ISZ NMCT JMP GTNMLP PERIOD, ISZ PRDSW JMP EONAME ISZ PN TAD (4 JMP GTNMX EONAME, TAD NMCT SZA CLA ISZ GETNAM JMP I GETNAM PRINT, 0 JMP .+3 TSF JMP .-1 TLS CLA TAD (NOP DCA PRINT+1 JMP I PRINT PAGE /TELETYPE INPUT ROUTINE XGLINE, 0 TAD (": JMS I PCH DCA RBFLAG TAD (BEGLN-1 DCA LXR CHLOOP, KSF JMP CHLOOP TAD (200 KRS DCA NM1 KCC JMS SRCH -225;CTRLU -215;CARRET -377;RUBOUT -375;ALTMOD -376;ALTMOD -233;ALTMOD -212;LFEED -200;CHLOOP -217;CHLOOP /IGNORE ^O -203;7605 /MUST BE JUST BEFORE 0 ZROFUJ, 0 JMS PRNT CINSRT, TAD NM1 DCA I LXR TAD LXR TAD (-BEGLN-110 SPA CLA JMP CHLOOP CARRET, JMS I CRLF TAD LXR TAD (1-BEGLN SNA CLA JMP XGLINE+1 DCA I LXR DCA I LXR JMP I XGLINE PRNT, 0 ISZ RBFLAG JMP .+3 TAD (334 JMS I PCH DCA RBFLAG TAD NM1 JMS I PCH JMP I PRNT CTRLC, CTRLU, TAD (336 JMS I PCH TAD NM1 TAD (100 CLRLIN, JMS I PCH JMS I CRLF ISZ SRCH TAD I SRCH SZA CLA JMP XGLINE+3 JMP XGLINE+1 ALTMOD, TAD (244 DCA NM1 JMS PRNT JMP CARRET+1 RUBOUT, TAD LXR TAD (1-BEGLN SNA CLA JMP RBSPCL TAD (334 ISZ RBFLAG JMS I PCH CLA CMA DCA RBFLAG TAD LXR DCA TEMP1 TAD I TEMP1 JMS I PCH LBCKUP, CLA CMA TAD LXR JMP CHLOOP-1 RBSPCL, ISZ RBFLAG JMP CLRLIN+1 TAD (334 JMP CLRLIN SRCH, 0 TAD I SRCH ISZ SRCH SNA JMP I SRCH TAD NM1 SNA CLA JMP SFND ISZ SRCH JMP SRCH+1 SFND, TAD I SRCH DCA TEMP1 JMP I TEMP1 LFEED, JMS I CRLF DCA I LXR TAD (BEGLN-1 DCA XR TAD I XR SNA JMP LBCKUP JMS I PCH JMP .-4 PAGE /SUBROUTINE TO PUT CURRENT DATE IN PARAMETER BLOCK DATE, 0 TAD 7777 AND (600 CDF 10 DCA 4513 TAD 7666 DCA 4512 CDF 0 JMP I DATE /CODE FOR SEQUENTIAL PARAMETER BLOCKS SEQUENTIAL, JMS I PRMSG MESS29 /SEQUENTIAL VOLUMES? JMS YESORNO SKP /YES RETURN JMP RESTRT /NO RETURN, START OVER JMS I CRLF JMS I PRMSG MESS30 /MOUNT NEW VOLUME JMS YESORNO NOP CDF 10 ISZ 4504 /INC VOLUME # CLA CLL TAD (4400-1 /COPY OUT OLD PARAMETER BLOCK DCA 14 TAD (5400-1 DCA 15 H1, TAD I 14 DCA I 15 TAD 15 TAD (2000 SPA CLA JMP H1 CDF 0 JMS I DEVHND /READ IN 6 BLOCKS 1410 /AS MAY BE IN BLOCK 6 2000 /IN TO FIELD 1 0001 JMP .-4 /TEMPORARY ERROR RETURN STA DCA ZERO /INIT ZERO SWITCH CDF 10 /LETS LOOK AT THE DIRECTORY TAD 2000 /PICK UP #ENTRIES SEG 1 CLL /FOR TEST TAD (100 /SHOULD BE >-100 SNL CLA /MOST UNMARKED TAPES WILL FAIL THIS TEST JMP NODIR1 /NO DIRECTORY DCA 5002 /TO MAKE SURE WILL END TAD (2002 /WE ARE GOING TO SEE IF SEG 6 DCA LEPNT /IS USED FOR DIRECTORY LEGAL5, TAD I LEPNT /PICK UP A LINK TO NEXT SEGMENT SNA CLA /SKIP IF A LINK JMP LEGAL6 /LAST LINK TAD (400 TAD LEPNT /NEXT SEGMENT LINK DCA LEPNT JMP LEGAL5 /CONTINUE LEGAL6, CDF 0 TAD LEPNT /PICK UP POINTER TAD (-4400 /IF RESULT >0 THEN BLOCK 6 USED SPA CLA JMP LEGAL7 /GO CHECK IF BLOCK ALREADY EXISTS JMS I PRMSG /NO CAN MAKE PARAMETER BLOCK MILLEGAL JMP I K7605 NODIR1, DCA ZERO /INDICATE DEVICE NEEDS ZEROING LEGAL7, CDF 10 /IF COME FROM LEGAL2 CLA CLL DCA CHANGF /CHANGE VIA FLAG TAD (4400-1 /COPY PARAMETER BLOCK BACK DCA 15 TAD (5400-1 DCA 14 H2, TAD I 14 DCA I 15 TAD 15 TAD (2000 SPA CLA JMP H2 CDF 0 CLA CLL DCA CHANGF /TAKE C OPTION JMP DUMPP+1 /AND THERE WILL BE CHANGES PAGE /STANDARD DEVICE LENGTH TABLES. /USERS MAY CHANGE THIS TABLE TO MAKE /NON-STANDARD DEVICES STANDARD. LENTBL, 0 /TTY 0 /HS PTR 0 /HS PTP 7134 /CDR (CC [420]) 0 /LPT 1520 /RK8 (3248) 6001 /RF08 (256K) 4001 / (512K) 2001 / (768K) 1 / (1024K) 7601 /DF32 (32K) 7401 / (64K) 7201 / (96K) 7001 / (128K) 6437 /DECTAPE (737) 6437 /LINCTAPE (737) 0 /TM8E MAGTAPE?? 6437 /TD8E DECTAPE (737) 0 /BATCH 1520 /RK8E (3248) 0 /NULL 7022 /RX (494) 0 0 /DEC CASSETTE 0 /VR12 0 /VT50 0 /OTHERS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1520 /DSD DISK (3248) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 /TABLE OF USED PERMANENT DEVICE NAMES USEDL, 4631 /SYS 5723 /DSK 5524 /TTY 4020 /LPT 4024 /PTP 4224 /PTR 6504 /CDR 4604;4605;4606;4607;4610;4611;4612;4613 /DTAX 5604;5605;5606;5607;5610;5611;5612;5613 /LTAX 6373;6374;6375;6376 /RKAX 6473;6474;6475;6476 /RKBX 6410;6411 /RXAX 6510;6511 /RXBX 0406 /DF 2206 /RF 2426 /TV 7241 /NULL 4503;4504 /CSAX 0303 /CC 5704;5705 /MTAX 0 /ENDS LIST /TABLE OF USED DEVICE NAMES USEDN, DEVICE SYS;0 DEVICE DSK;0 DEVICE TTY;0 DEVICE LPT;0 DEVICE PTP;0 DEVICE PTR;0 DEVICE CDR;0 DEVICE DTA0;0 DEVICE DTA1;0 DEVICE DTA2;0 DEVICE DTA3;0 DEVICE DTA4;0 DEVICE DTA5;0 DEVICE DTA6;0 DEVICE DTA7;0 DEVICE LTA0;0 DEVICE LTA1;0 DEVICE LTA2;0 DEVICE LTA3;0 DEVICE LTA4;0 DEVICE LTA5;0 DEVICE LTA6;0 DEVICE LTA7;0 DEVICE RKA0;0 DEVICE RKA1;0 DEVICE RKA2;0 DEVICE RKA3;0 DEVICE RKB0;0 DEVICE RKB1;0 DEVICE RKB2;0 DEVICE RKB3;0 DEVICE RXA0;0 DEVICE RXA1;0 DEVICE RXB0;0 DEVICE RXB1;0 DEVICE DF;0 DEVICE RF;0 DEVICE TV;0 DEVICE NULL;0 DEVICE CSA0;0 DEVICE CSA1;0 DEVICE CC;0 DEVICE MTA0;0 DEVICE MTA1;0 /REVERSE ORDER SYSTEM TABLE HLP10I;HLP10H;HLP10G;HLP10F HLP10E;HLP10D;HLP10C;HLP10B;HLP10A SYSTBL=.-1 MNOINP, TEXT \NOT NUMERIC INPUT\ YESNO, TEXT \PLEASE ANSWER YES OR NO\ WNTHLP, TEXT \DO YOU WANT HELP?\ MYES, TEXT \YES\ MNO, TEXT \NO\ HEAD1, TEXT \THIS PROGRAM ESTABLISHES A PARAMETER BLOCK HEAD2, TEXT \ON DECSYSTEM-8 FILE STRUCTURED DEVICES\ HEAD3, TEXT \INPUT IS VIA THE REGULAR MONITOR LINE SCANNER\ MESDEV, TEXT \DEVICE NAME\ MGOOF1, TEXT \?BAD INPUT\ MNFLST, TEXT \DEVICE NOT FILE STRUCTURED\ MILLEG, TEXT \DIRECTORY OCCUPIES PARAMETER BLOCK\ MHAVPA, TEXT \DEVICE HAS PARAMETER BLOCK\ MDUMP, TEXT \DO YOU WISH TO DUMP IT?\ MESS0, TEXT \HANDLER ERROR READING BLOCKS 1-6 (PARITY?) MESS1, TEXT \SHALL I CONTINUE?\ MESS2, TEXT \DIRECTORY WILL BE ZEROED\ MESS3, TEXT \STANDARD DEVICE LENGTH?\ HELP3, TEXT \MOST DEVICES HAVE A STANDARD LENGTH\ HELP3A, TEXT \ANSWER YES TO THE NEXT QUESTION\ HELP3B, TEXT \UNLESS YOU HAVE A NON-STANDARD DEVICE.\ HELP3C, TEXT \STANDARD DEVICES ARE:\ HELP3D, TEXT \ DTAN,LTAN,DF32,RF08,RK8,RXN,TD8E\ MESS4, TEXT \DEVICE LENGTH (DECIMAL)\ MESS5, TEXT \SHALL I USE STANDARD SQUASH AND ZERO PARAMETERS?\ HELP5A, TEXT \FOR "SQUASH" AND "ZERO" THE FOLLOWING ARE OPTIONS:\ HELP5B, TEXT \ NO "ZERO" ALLOWED\ HELP5D, TEXT \ ONLY "SQUASH" TO MYSELF\ HELP5C, TEXT \ NO "SQUASH" PERIOD\ HELP5E, TEXT \STANDARD IS ONLY SELF SQUASH, NO ZERO\ MESS6, TEXT \"ZERO" ALLOWED?\ MESS7, TEXT \"SQUASH" FROM OTHER DEVICE ALLOWED?\ MESS8, TEXT \"SQUASH" TO MYSELF?\ MESS9, TEXT \IS A SYSTEM PRESENT?\ MESS10, TEXT \SYSTEM ID: \ HLP10A, TEXT \ 0=UNASSIGNED \ HLP10B, TEXT \ 1=PS/8 \ HLP10C, TEXT \ 2=OS/8 \ HLP10D, TEXT \ 3=OS/12 \ HLP10E, TEXT \ 4=DECSYSTEM-8/78 \ HLP10F, TEXT \ 5=OS/78 \ HLP10G, TEXT \ 6=OS/278 \ HLP10H, TEXT \ 7=MULTI/8 \ HLP10I, TEXT \ 8=UNKNOWN \ MESS11, TEXT \VERSION NUMBER (ASSOCIATED WITH SYSTEM AREA; IE. 1,2,3 ETC.)\ MESS12, TEXT \VERSION RELEASE CODE (IE. 1=A,2=B,3=C ETC.) \ MESS13, TEXT \USER ASSIGNED DEVICE NAME: \ HLP12A, TEXT \THE USER ASSIGNED NAME IS A LOGICAL NAME USED\ HLP12B, TEXT \BY AUTOAS. IT IS RECOMMENDED THAT THIS NAME\ HLP12C, TEXT \BE A TWO CHARACTER NAME STARTING WITH AN ALPHA\ HLP12D, TEXT \TO INSURE UNIQUENESS.\ MESS14, TEXT \ VOLUME ID \ HLP13A, TEXT \THE VOLUME ID IS AN EXTRA LABEL FOR IDENTIFICATION\ HLP13B, TEXT \PURPOSES ONLY. A DECIMAL NUMBER < 4096\ MESS15, TEXT \DESCRIPTIVE LABEL\ HLP15, TEXT \THE DESCRIPTIVE LABEL MAY BE ANY STRING OF\ HLP15B, TEXT \UP TO 127 CHARACTERS ON MULTIPLE LINES\ HLP15C, TEXT \IT MUST BE TERMINATED WITH A ^Z (CNT/Z)\ HLP15D, TEXT \FOLLOWED BY A CARRIAGE RETURN.\ MESS16, TEXT \MORE THAN 128 CHARS INPUT - TERMINATION FORCED\ MESS20, TEXT \ALL FORMS OF "SQUASH" ALLOWED\ MESS21, TEXT \ VERSION: \ MES22A, TEXT \USE STANDARD START OF FILE STORAGE?\ MESS22, TEXT \FILE STORAGE STARTS AT BLOCK (DECIMAL) \ MESS23, TEXT \NO SYSTEM PRESENT\ HLP24A, TEXT \THE NEXT PARAMETER IS USED FOR "ZERO" TO DETERMINE\ HLP24B, TEXT \WHERE FILE STORAGE BEGINS\ HLP24C, TEXT \STANDARD IS 7 FOR NON-SYSTEM DEVICES, HLP24D, TEXT \56 FOR SYSTEM DEVICES\ MLOCK8, TEXT \MMMM!! THAT FEELS BETTER!\ MLOCK9, TEXT \SCRATCH A LITTLE TO THE LEFT....\ MMMM, TEXT \MMMMMMM!!\ MCHANG, TEXT \**CHANGE THIS**?\ ANSABC, TEXT \PLEASE ANSWER A, B, OR C \ MESS25, TEXT \DO YOU WISH TO\ MESS26, TEXT \ A:REPLACE\ MESS27, TEXT \ B:SELECTIVELY DECIDE\ MESS28, TEXT \ C:PRINT IT?\ MESS29, TEXT \SEQUENTIAL VOLUMES (Y OR N)?\ MESS30, TEXT \MOUNT NEW VOLUME, THEN TYPE Y \ MLOCK1, TEXT \PLEASE WRITE ENABLE THE DEVICE\ MLOCK2, TEXT \OUCH!!\ MLOCK3, TEXT \YOU FORGOT SOMETHING.\ MTHANK, TEXT \THANKS!\ MLOCK4, TEXT \CLUE: YOU NEED TO PRESS A SWITCH\ MLOCK5, TEXT \YOU DUMMY! I CAN'T DO EVERYTHING\ MLOCK6, TEXT \THE DEVICE NEEDS TO BE WRITE ENABLED\ MLOCK7, TEXT \NEXT TIME GET HELP!\ MAGAIN, TEXT \TRY AGAIN?\ NCONF, TEXT \ CONFLICTS WITH \ VERSION, TEXT \HEADER VERSION 3D\ $