/ WINUTL - WINCHESTER UTILITY / / 014 EMcD 26-Sep-85 Add Spanish and Dutch Xlations (cond) / 013 EMcD 11-Sep-85 Add Nordic translations (conditional) / 012 RCME 20-JUN-85 Move some text to make space for more / / ------------------- All below refer to V2.0 and earlier -------------------- / / 011 WCE 16-NOV-84 Reset DECmate mode on Winnie boot / 010 DFB 20-SEP-84 Fix power on boot for non winnie systems / 009 DFB 21-AUG-84 Set boot to power boot on floppy / 008 AH 07-MAY-84 FIX, ENHANCE MESSAGES / 007 DFB 08-MAR-84 Fix password check for error vol bug / 006 DFB 21-FEB-84 Do not allow assign/deassign dev. 0 / 005 DFB 20-JAN-84 Fix display messages / 004 DFB 17-JAN-84 Fix display if no volume password / 003 DFB 12-DEC-83 Allow assign if bootable vol / 002 DFB 03-OCT-83 Set MNOPTN bit 9=0 drive 1=RX, / Set MNOPTN bit 9=1 drive 1=WINNIE / 001 DFB 29-AUG-83 NEW MODULE /*************************************************************************** /**** WRITE OUT CODE FOR WINUTL **** /*************************************************************************** FIELD 0 / FIELD WHERE RXHAN IS LOADED *200 / START ADDRESS USED BY OS8 "GO" COMMAND JMP I .+3 / LOCATION USED TO START UP RXHAN JMP I .+1 / LOCATION USED TO RETURN TO OS8 MONITOR 7605 / ADDRESS OF OS8 MONITOR RETURN POINT RXLOAD / ADDRESS OF START LOCATION FOR RXHAN *RXLDLS / ADDRESS WITHIN RXHAN TO OVERLAY RXEWT / WRITE FUNCTION CODE 0 RXQBLK / ADDRESS OF QUEUE BLOCK TO USE . / ADDRESS OF TABLE OF DISK COMMANDS DLWINI / STARTING DISK BLOCK TO WRITE 0 / WRITEOUT ON PAGE BOUNDARY /C061 CDF 10 / FIELD TO WRITE FROM -DSWINI / NEGATIVE NUMBER OF BLOCKS TO WRITE 0 / END OF LIST INDICATOR / THE ACTUAL ROUTINE FIELD 1 / FIELD FOR ASSEMBLY CDFMYF=CDF 30 / MY NORMAL FIELD OF OPERATION IS THREE CDFACP=CDF 70 / ACP FIELD PASSWD=1 / ENABLE PASSWORD CHECK PRQ3=6236 / PRQ3 CODE LENVOL=30 / LENGTH OF 1 VOL DIR 24 WORDS LONG LENNAM=10 / LENGTH OF VOLUME NAME LENRD=2 / LENGTH OF READ PASSWORD LENWRT=2 / LENGTH OF WRITE PASSWORD LENPBL=2 / LENGTH OF PHYSICAL BLOCK LENSIZ=2 / LENGTH OF NO BLOCKS LENOS=7 / LENGTH OF OS DEPENDENT DATA LENDE=1 / LENGTH OF ENTRY DATA BITS VOLNM=0 / START VOLUME NAME VOLRD=VOLNM+LENNAM / START OF READ PASSWORD VOLWRT=VOLRD+LENRD / START OF WRITE PASSWORD VOLPBL=VOLWRT+LENWRT / START PHYSICAL BLOCK NUMBER VOLSIZ=VOLPBL+LENPBL / START OF #BLOCKS L/O FIRST WRD VOLDE=VOLSIZ+LENSIZ / START OF DATA BITS; / 4=READ ACCESS; 5=WRITE ACCESS; 6=UNIT / 7=VOLUME MOUNTED; 9=STARTUP; 10=MODIFIED VOLDAT=VOLDE+LENDE / START OF VOLUME OS/ DATA / 4=BOOTABLE; 5-11=VOLUME TYPE, SEE BELOW WPS8=-10 / VALUES ARE NEGATIVE FOR USE IN TABLE /A008 OS278=-11 /A008 COS310=-12 /A008 CPM=-100 /A008 *100 VOLBUF, VOLTB2 / VOLUME TABLE POINTER / LEN= 60 VOLS*24 WORDS/VOL 2440(8) / PLUS ACTIVE VOLUME DATA / LEN= 8 VOLS*24 WORDS/VOL 300(8) VOLPTR, 0 / POINTER TO CURRENT POSITIONS / IN BUFFER MOUNTED VOLUME VOLPT2, VOLTB2-1 / POINTER TO MOUNTED VOLUME /D008 WINCNT, 0 / -NUMBER DRIVES COUNT /D008 MNTCNT, 0 / NO OF MOUNTED DEVICES RPASS2, 0 / READ PASSWORD H/O RPASS3, 0 / READ PASSWORD L/O WPASS2, 0 / WRITE PASSWORD H/O WPASS3, 0 / WRITE PASSWORD L/O WINJMP, JMPTBL-1 / JUMP TABLE JMPTBL, WINMV / A - MOUNT DEVICE... ASSIGN VOLUME WINDV / D - DISMOUNT DEVICE...DEASSIGN VOLUME WINSA / LA - LIST ASSIGNED VOLUMES WINSAL / LI - LIST ALL VOLUMES DATA SVX0, 0 / SAVE CURRENT POINTER SVX1, 0 / SAVE CURRENT POINTER SVPT2, 0 / SAVE SYSDEV, 0 / SYSTEM DEVICE..0=RX50..ELSE WINNIE /A006 WINPAS, 0 PASSER, 0 / READ PASSWORD ERROR SW BNTMP1, 0 / TMP PNTR BNTMP2, 0 / TMP PNTR BNTMP3, 0 / TMP PNTR BNCNT, 0 / COUNTER CRERSW, 0 / CR-ERROR-SW. IF SET CLEAR BOT LINE. / DONT GO TO LAST MENU /A004 /D008 PRTCNT, 0 / ODD=FIRST TIME EVEN=SECOND PRTL06, 6 / STARTING CURSOR POSITION /A008 WINTMP, 0 / TEMP STORAGE.. VOLTMP, 0 / TEMP STRCNT, 0 / INPUT STRING COUNT SAVENO, 0 / SAVE AREA NUMBER /A007 AREANO, 0 PRTHO, 0 PRTLO, 0 / LO MUST FOLLOW IMMEDIATELY AFTER H/O GTGMCR, PRTLS0 / GET CR OR G.M. ONLY K20, MNRX4X / =20 M7, -7 / CONST M10, -10 / CONST M9, M11, -11 / CONST MVLCHP, MVLCHQ / POINTER TO STRING BUFFER MVLCHX, 0 / SAVE CHAR PRTVOL, MVLCHR / POINTER TO VOLUME NAME PRTLNO, 3 / LINE NO BEING PROCESSED, SET BY / WINSA, WINSAL FROM PRTL06 CLRSCX, CLRSCR / CLEAR SCREEN /A008 PRTHDX, PRTHDR / PRINT HEADER FOR BOTH LISTS /A008 WINP7X, WINPT7 / ERROR MESSAGE ROUTINE /A008 WINP5X, WINPT5 /A008 WINWFX, WINWFT / RING BELL /A008 PRTLSX, PRTLST / RETURN, GOLD MENU MESSAGE /A008 QUBLK1, DSKQUE / 0 / 0 WINQBK, / QBLOCK- 0 / RXQCOD FLAGS RETURNED HERE 0 / RXQFNC FUNCTION CODE 0 / RXQDN1 0 / RXQDN2 0 / RXQENO 0 / RXQID1 0 / RXQSPC 0 / RXQCTL 0 / RXQDRV DRIVE NUMBER 0 / RXQBLK BLOCK NUMBER 0 / RXQRS1 0 / RXQBAD BUFFER ADDRESS CDFMYF / RXQBFD BUFFER FIELD CDF 0 / RXQTRK TRACK 0 / RXQSEC SECTOR X=. / INDICATE FIRST FREE LOCATION ON PAGE /-------------------- PAGE DSKBLK=.%400+DLWINI / DISK BLOCK WHERE PAGE IS LOADED / ENTRY TO WINNIE UTILITY / ENTERS WITH CODE IN MNTMP1 / 1=MOUNT VOLUME / 2=DISMOUNT VOLUME / 3=SHOW ALL MOUNTED AREAS / 4=SHOW ALL DIRECTORY DATA WINUTL, XX JMP WINMNU / CALLED FROM WINNIE MENU WINFIN, XX / CALLED FROM FINISH COMMAND(MAIN MENU) JMP WINFN1 WINFNA, XX / CALLED FROM FINISH COMMAND(MAIN MENU) JMP WINFNB WINMNU, JMS WINFLD / GET CALL FLD DCA RETCIF / STORE IT WNCRET, / WINCHESTER MENU RETURN JMS WINCLR / CLEAR BUFFER AREA CIFMNU JMS I MNUCAL / CALL DLMDUB / WINNIE MAINT MENU NOP / SPARE CLA IAC BSW / 100 JMS I CLRSCX / CLEAR SCREEN FROM LINE 1 /C008 CDFMNU / MENU FLD TAD I (MUBUF+MNTMP1) / GET ARGUMENT CDFMYF SNA / 0=GOLD MENU JMP WINRET / YES TAD WINJMP / SET UP JMP ADDR DCA WINTMP TAD I WINTMP DCA WINTMP / SET POINTER JMS I WINTMP / DOIT JMP WNCRET / TO WINCHESTER MENU MVGOLD, / GOLD MENU RET WINRET, RETCIF, 0 JMP I WINUTL WINFN1, JMS WINFLD / GET CALL FLD DCA RETCF1 / STORE IT JMS WINCHK / SKIP IF NO WINNIE ON LINE /A010 JMS DEALL / DEASSIGN ALL RETCF1, 0 JMP I WINFIN WINMV, XX / MOUNT A WINNCHESTER VOLUME CLA CLL CMA RAL / -2 DCA WINPAS / NO OF PASSWORD RETRIES BEFORE RETURNING TO MM DCA PASSER / PASSWORD ERROR SW WINMVA, JMS GETVOL / GET MOUNTED VOLUME DATA WINMVB, JMS WINPT1 PRC / "TYPE DEVICE NUMBER ... " JMS GTVERA / GET AREA NUMBER, VERIFY JMP WINMVB / ERROR INPUT; ONLY 1-7 ALLOWED JMP WINMVD / NOT MOUNTED WINMVC, JMS I WINP7X /C008 PRTER5 / "DEVICE ALREADY ASSIGNED ... " JMP WINMVB / AREA ALREADY MOUNTED WINMVD, JMS CLRLST / CLEAR LAST LINE /D008 WINMVE, /D008 TAD AREANO / DEVICE NO /D008 SNA CLA / =0? /D008 JMP WINMVB / YES CANNOT MOUNT DRIVE 0 WINMVF, /D008 JMS WINPT1 JMS WINP31 / "TYPE VOLUME NAME ... " /A008 /D008 PRTMVB JMS WINNAM / GET VOLUME NAME SKP / ALREADY MOUNTED JMP WINMVG / NOT ALREADY MOUNTED JMS I WINP7X /C008 PRTER6 / "VOLUME ALREADY ASSIGNED. ... " JMP WINMVF / VOLUME ALREADY MOUNTED WINMVG, JMS CHKVOL / IS VOL NAME VALID? JMP WINMVF / NO. MSSGE PRINTED ALREADY. GET NEXT VOL. WINMVH, JMS CLRLST / CLEAR LST LINE JMS MOVNAM / MOVE NAME TO PRINT AREA /M004 WINMVK, JMS ZERPAS / CHECK PASSWORD=0 /A003 JMP WINMVL / PASSWORD=0 IGNORE /A003 JMS WINPT1 PRTMVC / "ENTER READ PASSWORD ... " JMS GETBIN / GET PASSWORD ISZ PASSER / RET HERE IF ERROR ON READ PASSWORD TAD T3 DCA RPASS3 / LO PASSWORD TAD T2 DCA RPASS2 / HO PASSWORD JMS WINPT1 PRTMVD / "ENTER WRITE PASSWORD ... " JMS GETBIN / GET PASSWORD ISZ PASSER / RET HERE IF ERROR ON WRITE PASSWORD TAD T2 DCA WPASS2 / SAVE TAD T3 DCA WPASS3 JMS CHKPAS / CHECK PASSWORD TAD PASSER / WAS READ PASS AN ERROR SZA CLA / ADDS 1 LEVEL OF PROTECTION JMP WINMVN / WAS AN ERR. WINMVL, TAD SVX0 / POINTER TO VOL PASSWRD-1 /C003 TAD (-VOLRD+1) / SET TO VOLUME NAME IN U.CASE JMS WINIO RDEMNT+4000 / WINNIE MOUNT CMND IAC JMS WINSET / SET TABLE AS MOUNTED WINNIE TAD (VOLSAR) DCA X0 / SET FOR PRINT JMS WINPT3 PRTMVE / "VOLUME IS ASSIGNED TO DEVICE" JMP WINMVQ WINMVN, DCA PASSER / CLEAR PASSWORD ERROR SW JMS WINPTF / "READ/WRITE PASSWORD ERROR" /C005 /D005 PRTER7 ISZ WINPAS / RETRY COUNT /D008 JMP WINMVK / DO IT AGAIN JMP WINMVR / WAIT FOR CR (GM MAYBE) /A008 /D008 JMP I WINMV / ERROR RETURN; WAIT FOR USER ENTRY WINMVQ, JMS I PRTLSX / PRINT MSSG FOR CR OR GOLD MENU /C008 JMS I GTGMCR / GET IT ISZ WINMV / CAR RET ENTERED JMP I WINMV / WAS G.M.-RET WINMVR, / WAIT FOR CR (GM) AFTER FIRST /A008 / WRONG ENTRY /A008 JMP .+2 / NO BELL ON ENTRY /A008 JMS I WINWFX / BELL /A008 JMS I GTGMCR / GET GM OR CR /A008 JMP .-2 / GM NOT ALLOWED, RING BELL /A008 JMP WINMVK / CR, TRY AGAIN /A008 X=. / INDICATE FIRST FREE LOCATION ON PAGE /-------------------- PAGE DSKBLK=.%400+DLWINI / DISK BLOCK WHERE PAGE IS LOADED WINDV, XX / WINNIE DISMOUNT A VOLUME WINDVA, CLA IAC BSW / 100 JMS I CLRSCX /C008 JMS GETVOL WINDVB, JMS WINPT1 PMA / "...AREA TO DISMOUNT.. JMS GTVERA / GET AREA # AND VOL NAME JMP WINDVB / ERROR AREA NO JMP WINDVS / AREA IS NOT MOUNTED-- RETURN TAD VOLPTR / AREA IS MOUNTED DCA X1 /D008 TAD M7 TAD M10 /A008 DCA T3 / SET UP TO MOVE TO PRINT AREA TAD X1 / POINTER TO VOLUME DCA WINPTD / SET IT UP JMS MOVT01 / X0 TO X1 JMS WINPTB / "VOLUME NAME ^A ASSIGNED TO DEVICE !D" JMS WINPT9 / "IS THIS THE VOLUME YOU WANT TO DEASSIGN" JMS I PRTLSX / "PRESS RETURN ... " /C008 WINDVG, JMS WNYORN / GET "Y" OR "N" JMP WINDVA / "N" RET JMP WINDVP / NOT "Y" OR "N" / "Y" RET TAD AREANO DCA WINQBK+RXQDRV / SET DRIVE TO BE DISMOUNTED TAD PRTVOL DCA WINQBK+RXQBAD / VOL NAME ADDRESS /D011 TAD MYFLD1 / PICK UP CDF INSTRUCTION TO THIS FIELD /C011 /D011 DCA WINQBK+RXQBFD / BUFFER FIELD TAD (RDEDIS+4000) / DISMOUNT COMMAND FUNCTION CODE /D011 DCA WINQBK+RXQFNC JMS QURX / DOIT JMP WINDVR / ERROR JMS WINSET / CLEAR MOUNTED BIT <11> TAD WINPTD DCA X0 / SET POINTER TO VOL FOR PRINT JMS WINPT3 PRTDME / "VOLUME HAS BEEN DEASSIGNED FROM DEVICE" JMS I PRTLSX / PRINT MSSG FOR CR OR GOLD MENU /C008 JMS I GTGMCR / GET IT ISZ WINDV / CAR RET ENTERED JMP I WINDV / WAS G.M.-RET WINDVP, /D008 JMS WINPT5 /D008 PRTER3 / ILLEG CHAR JMS I WINWFX / NOT Y OR N, RING BELL /A008 JMS I PRTLSX / CR GM OPTION /C008 JMP WINDVG /Y OR N WINDVR, JMS I WINP5X /C008 PRTER4 / DISK ERROR JMP WINDVB WINDVS, JMS I WINP5X /C008 PRTER2 / "NOT MOUNTED TO A VOLUME" JMP WINDVB WINSA, XX / SHOW ALL MOUNTED VOLUMES....LA JMS GETVOL / GET VOLUME DATA JMS I PRTHDX / PRINT HEADER /C008 /D008 IAC TAD PRTL06 /A008 DCA PRTLNO / SET RELATIVE LINE NO. /D008 DCA PRTCNT / CLEAR SWITCH TAD VOLPT2 / START OF BUFFER POINTER WINSA1, DCA VOLTMP /M006 TAD VOLTMP / GET POINTER TO TABLE DCA X0 TAD I X0 SMA / ENTRY HERE? JMP WINSA3 / YES CLA TAD X0 TAD (LENVOL) JMS I PRTLSX / PRINT MSSG FOR CR OR GOLD MENU /C008 JMS I GTGMCR / GET IT ISZ WINSA / CAR RET ENTERED JMP I WINSA / WAS G.M.-RET WINSA3, JMS WINSA7 / SET PRINT AREA JMP WINSA1 / NEXT / GET 1 LINE OF INPUT / IF CR RET / IF GOLD MENU RET+1 / ELSE RET+2 / ARG PASSED = MAX # INPUT CHARS / IN ORDER TO PRINT MSSG WITH OVFLOW CHAR MUST BE INCREMENTED / THEN CHECKED ON NORMAL RET.. ELSE NOT PUT INTO BUFFER MVLLIN, XX TAD I MVLLIN / GET INPUT STR COUNT DCA STRCNT ISZ MVLLIN MVLLN1, CIFMNU JMS I INACAL / GET A LINE MVLLN2, MVLCHQ / POINTER TO BUFFER...1ST LOC=-CNT OF CHARS+1 JMP MVLLN4 / OVFLOW ERR OR GOLD CHAR TAD I PRTVOL /1ST CHAR OF STRING /C008 SZA CLA /=CR? /C004 JMP MVLLN3 / NO-CHK LNGTH OF STRING /C004 TAD CRERSW / IS CR AFTER ERROR? /A004 SNA CLA /A004 JMP I MVLLIN / NO JMS CLCRER / CLEAR BOTTOM LINE AND ERROR SW /A004 JMP MVLLN1 / GET NEXT LINE /A004 MVLLN3, MQA TAD STRCNT SMA CLA / STRING TOO LONG JMP MVLLN5 / YES JMP MVLLN7 / NO MVLLN4, TAD (-EDMENU) SNA CLA / =GOLD MENU? JMP MVLLN8 / YES MVLLN5, TAD I MVLLN2 / GET LINE CHAR COUNT JMS MVLERM / ERROR MESSAGE JMP MVLLN1 / NEXT MVLLN7, ISZ MVLLIN / SET NORMAL RET MVLLN8, ISZ MVLLIN / GOLD MENU RET JMP I MVLLIN / RET WINFLD, XX CLA RDF TAD CIDF0 MYFLD1, CDFMYF / CDF INSTRUCTION TO THIS FIELD /C011 JMP I WINFLD X=. / INDICATE FIRST FREE LOCATION ON PAGE /-------------------- PAGE DSKBLK=.%400+DLWINI / DISK BLOCK WHERE PAGE IS LOADED WINSAL, XX / SHOW ALL VOLUMES...LI JMS GETVOL / GET VOLUME DATA JMS I PRTHDX / PRINT HEADER /C008 IAC / PASS DEV # TAD VOLPTR DCA WINQBK+RXQBAD / BUFF. ADDR DCA WINQBK+RXQDRV / DEVICE # /D011 TAD MYFLD2 / GET CDF INSTRUCTION TO THIS FIELD /C011 /D011 DCA WINQBK+RXQBFD / BUFFER FIELD TAD (RDEGTD+4000) / GET DIRECTORY DATA FUNCTION CODE /D011 DCA WINQBK+RXQFNC JMS QURX JMP I WINSAL / ERROR TAD VOLPTR / PTR TO DIR DATA DCA SVX0 / CURRENT POINTER /D008 IAC TAD PRTL06 / STARTING CURSOR POSITION /A008 DCA PRTLNO / SET RELATIVE LINE NO. /D008 DCA PRTCNT / CLEAR IT DECIMAL /A008 TAD (-12) / LINE COUNT /A008 OCTAL /A008 DCA LINCNT WINSAA, TAD SVX0 DCA X0 / CURRENT POINTER TO DIR DATA TAD I X0 SNA / END DIR BUF AREA? JMP WINSXX / PRINT GOLD MENU MSSG CIA / NEG TAD P377 SNA CLA / DELETED IN MASTER MENU? JMP WINSAJ / YES IGNORE; BUMP POINTER TO NEXT ENTRY TAD VOLPT2 JMP WINSAC WINSAB, TAD SVPT2 TAD (LENVOL+1) / SET TO NEXT WINSAC, DCA SVPT2 DCA AREANO / CLEAR IT TAD SVX0 DCA X0 / CURRENT POINTER TO DIR DATA TAD SVPT2 DCA X1 / CURRENT POINTER TO MOUNTED VOL TBLE TAD I X1 / AREA # SPA / END OF AREA? JMP WINSAH / YES LAST ENTRY DCA AREANO / SET IT FOR DISPLAY JMS CMPVOL / NO-COMPARE TO ENTRY IN BUFFER; VOLUME NAMES JMP WINSAB / NOT EQUAL JMS WINSAE / DELETE A VOLUME FROM LIST WINSAH, CLA TAD SVX0 DCA X0 TAD AREANO / GET FOR DISPLAY JMS WINSA7 / ON PRINT LINE DCA VOLTMP / INCREMENTED AT WINSA8 /A006 ISZ LINCNT / TIME FOR NEXT SCREEN MSG? /A008 JMP WINSAJ / NO, NORMAL CONTINUE /A008 JMS PRTNXT / NEXT SCREEN, C.R., G.M. AND REPLY /A008 JMP WINSXX / NO MORE TO PRINT, NORMAL EXIT /A008 JMP WINNXT / NEXT SCREEN ENTERED /A008 JMP WINSXY / GOLD MENU /A008 JMP WINSXZ / RETURN /A008 WINSAJ, TAD SVX0 TAD (LENVOL) DCA SVX0 / SET TO NEXT ENTRY JMP WINSAA / NEXT WINSXX, CLA JMS PRTLST / PRINT MSSG FOR CR OR GOLD MENU JMS I GTGMCR / GET IT WINSXY, ISZ WINSAL / CAR RET ENTERED /C008 WINSXZ, JMP I WINSAL / WAS G.M.-RET /C008 WINNXT, JMS I PRTHDX / PRINT HEADER ON NEW SCREEN /A008 DECIMAL /A008 TAD (-12) / SET LINE COUNT /A008 OCTAL /A008 DCA LINCNT /A008 TAD PRTL06 / RESET CURSOR POSITION /A008 DCA PRTLNO /A008 JMP WINSAJ / AND CONTINUE /A008 LINCNT, 0 / LINE COUNTER FOR NEXT SCREEN /A008 WINSAE, XX / DELETE A VOLUME FROM THE ACTIVE VOLUME LIST TAD SVPT2 DCA X0 / SET TO DELETE VOLUME FROM MOUNTED AREA TAD SVPT2 TAD (LENVOL+1) / SET TO END OF THIS VOLUME + AREA NUM DCA X1 WINSAF, TAD I X1 SPA / END OF AREA? JMP WINSAG / YES DCA I X0 / NO STORE IT JMP WINSAF / REPEAT WINSAG, DCA I X0 / SET END JMP I WINSAE / SET WINNIE CODE IN TABLE 4000=WINNIE DEVICE / 1=MOUNTED / ADDS 4000 TO AC THEN SETS INTO DEVICE TABLE IN ACP / RXSTRT+1=POINTER TO STRT TABLE +DEV NO = LOCATION FOR DEVICE WINSET, XX MQL / SAVE MOUNT/DISMOUNT CODE /A002 CLA CMA /A002 TAD WINQBK+RXQDRV / DRIVE# /A002 SZA CLA / MOUNTING/DISMOUNTING DRIVE 1? /A002 JMP I WINSET / NO /A002 MQA / GET CODE /A002 CLL RTL / TO BIT 8 /A002 RAL /A002 MQL / SAVE IT /A002 CDFMNU / MENU FLD /A002 TAD I (MNOPTN+MUBUF) / OPTN CODE /A002 AND K7767 / CLEAR BIT 8 /A002 MQA / CLEAR/SET IT /A002 DCA I (MNOPTN+MUBUF) /A002 MYFLD2, CDFMYF / CDF INSTRUCTION TO THIS FIELD /C011 JMP I WINSET / RETURN K7767, 7767 PRTER1, IFDEF ENGLSH /A008 IFDEF ITALIAN /A008 IFDEF V30NOR /A013 IFDEF V30SWE IFDEF DUTCH IFDEF SPANISH X=. / INDICATE FIRST FREE LOCATION ON PAGE /-------------------- PAGE DSKBLK=.%400+DLWINI / DISK BLOCK WHERE PAGE IS LOADED / GET AREA NUMBER AND VOLUME NAME AND VERIFY / RET+0 IF ERROR ELST RET+1 GTVERA, XX TAD VOLPT2 / MOUNTED VOLUME TABLE DCA X0 TAD M7 DCA T3 / COUNT FOR MAX VOL NAME SIZE JMS MVLLIN / GET LINE -2 / STRING COUNT JMP MVCRET / CARRIAGE RET JMP MVGOLD / IS A GOLD MENU TAD I PRTVOL / CHAR /C008 TAD (-60) / SET TO BIN DCA WINTMP TAD WINTMP / GET DEV NUM. /C008 SNA / TRYING TO ASSIGN/DEASSIGN DEV. 0? /A006 JMP GTVERB / YES.......ERROR /A006 TAD M10 / IS DEV NUMBER G.T. 7 /C008 SPA CLA / .LE. 7? /C008 JMP GTVERC / OK CONT GTVERB, JMS I WINP5X / ERROR /C008 /D008 PRTER1 PRTERA / CHOOSE 1-7. ... /A008 JMP I GTVERA / ERROR RET. C+1 GTVERC, ISZ GTVERA / C+2 TAD WINTMP DCA AREANO / AREA NUMBER JMS GETNAM / CHECK IF AREA ALREADY MOUNTED JMP I GTVERA / AREA NUM NOT FOUND IN MOUNT TABLE. C+2 ISZ GTVERA / FOUND AREA # IN MOUNTED VOLUME TABLE JMP I GTVERA / C+3 / SET PRINT BUFFERS / ENTERS WITH AC=AREA # AND X0 POINTER TO VOLUME TABLE WINSA7, XX DCA AREANO / SET TO PRINT DEVICE NO. TAD (-10) / CHECK FOR DEVICE 10..FOR SOME REASON /A006 TAD AREANO /..IT SHOWS UP WHEN BOOTING FROM WINNIE /A006 SNA CLA / IS IT 8?...(THINK FIRMWARE SENDS IT) /A006 JMP WINSA8 / YES IGNORE IT...DOESNT HAPPEN W/FLOPPY BOOT/A006 TAD (VOLSAR-1) DCA X1 / SET TO VOLUME NAME TAD (-LENNAM) / LENGTH DCA T3 JMS MOVT01 / MOV FROM X0 TO X1 WHERE T3=COUNT TAD X0 TAD (VOLSIZ-VOLRD) / PTR SET TO VOLUME SIZE/16 DCA X0 TAD I X0 DCA T3 / LOW ORDER COUNT TAD I X0 / HIGH ORDER DCA T2 / JMS MULT16 / MULT T2-T3 * 16 TAD T3 CLL RTL / *8 RTL / *16 DCA T3 / FORMAT WAS 8BITS H/O 8BITS L/O / SHIFT L/O IS = DIV/16 DECIMAL TAD (999) OCTAL DCA NUMBLO / DIVISOR JMS DBLDVD / DIVIDE T2-T3 BY 999 TAD T3 / GET QUOTIENT DCA PRTHO / SET TO PRINT H/O TAD NUMBLO / GET REMAINDER(L/O) DCA PRTLO / SET TO PRINT L/O TAD PRTLNO / LINE NO TO DISPLAY BSW / TO H/O TAD (05) / CURSOR POSITION; COLUMN 05 FOR DEVICE /A008 DCA PRTLN2 /D008 TAD PRTCNT / SW--EVEN=FRST TIME FOR LINE /D008 RAR /D008 SZL CLA / FRST TIME? /D008 TAD (46) / NO SET COL AT END /D008 TAD (402) / SET UP FIRST LINE /D008 TAD PRTLN2 /D008 DCA PRTLN2 TAD PRTLN2 TAD (17) / COLUMN 24 FOR BLOCKS /C008 DCA PRTLN3 / CURSOR POSITION FOR BLOCKS /D008 SZL /1ST TIME TO PRINT LINE ISZ PRTLNO / NO INCREMENT LINE NO /D008 ISZ PRTCNT / NEXT LINE SW JMS PRTLN1 / DISPLAY LINE WINSA8, ISZ VOLTMP /A006 TAD VOLTMP TAD (LENVOL) / SET TO NEXT VOL /D006 DCA VOLTMP JMP I WINSA7 / RET MOVNAM, XX / MOVE NAME FROM INPUT BUFFER TO SET FOR PRINT TAD MVLCHP DCA X0 / FROM STRING PTR TAD (VOLSAR-1) DCA X1 / TO STRING POINTER TAD M9 / COUNT DCA T3 JMS MOVT01 / FROM X0 TO X1 JMP I MOVNAM / RET / / GET INPUT CHECK FOR "Y" OR "N" / "N" = NORMAL RET / NOT "Y" OR "N" = RET+1 / "Y" = RET+2 WNYORN, XX JMS MVLLIN / GET LINE -4 / STRING COUNT JMP MVCRET JMP MVGOLD TAD I PRTVOL / GET CHAR /C008 AND (337) / SET UPPER CASE TAD (-"N+200) SNA / =N? JMP I WNYORN / "N" RET IFDEF ENGLSH < TAD (-"Y+"N) > IFDEF ITALIAN < TAD (-"S+"N) > IFDEF DUTCH < TAD (-"J+"N) > IFDEF V30NOR < TAD (-"J+"N) > IFDEF V30SWE < TAD (-"J+"N) > IFDEF SPANISH < TAD (-"S+"N) > SNA CLA / =Y ISZ WNYORN / SET YES RET ISZ WNYORN / NOT Y OR N RET JMP I WNYORN / RET MVCRET, CLA / SET MNTMP2 TO 0 RETURN TO WINNIE MENU MVGLDA, CDFMNU DCA I (MUBUF+MNTMP2) CDFMYF JMP WNCRET X=. / INDICATE FIRST FREE LOCATION ON PAGE /-------------------- PAGE DSKBLK=.%400+DLWINI / DISK BLOCK WHERE PAGE IS LOADED / / MOUNT CHECK--CHECKS NAME STORED IN PRTVOL / AGAINST VOLUME MOUNTED TABLE / RET+0 =NO MATCH RET+1=MATCH(ALREADY MOUNTED) MNTCHK, XX TAD X1 DCA SVX1 TAD VOLBUF / POINTER TO MOUNTED VOLUME TABLE MNTCK2, DCA SVX0 TAD SVX1 DCA X1 TAD SVX0 / SAVE CURRENT POINTER DCA X0 TAD I SVX0 / GET DEVICE? SPA CLA / END OF MOUNTED VOLUME TABLE JMP I MNTCHK / MATCHES ISZ LCCLUG / LOWER CASE IGNORE CLUDGE JMS CMPVOL / CHECK IF VOLUME ALREADY MOUNTED SKP / NO JMP MNTCK3 / YES TAD SVX0 TAD (LENVOL+1) JMP MNTCK2 / NEXT VOL MNTCK3, ISZ MNTCHK JMP I MNTCHK PADNAM, XX / PADNAM PADS TABLE WITH SPACES MQA / GET COUNT TAD MVLCHP / START ADDRESS-1 DCA X0 / SET IT MQA / GET COUNT TAD M10 / SET TO LAST CHAR-1 SNA / FULL? JMP PADNM2 / YES DON'T NEED PAD DCA T3 PADNM1, TAD (" -200) / SPACE DCA I X0 ISZ T3 / END? JMP PADNM1 / NO PADNM2, DCA I X0 / SET 0 TERMINATOR FOR PRINT. TAD MVLCHP / PNTR TO NAME DCA X1 / RESET TAD M10 DCA T3 JMP I PADNAM / GET VOLUME AREA FROM DISMOUNT TABLE / VOLUME NUMBER IN AREANO / RETURNS WITH X0 POINTING TO NAME GETNAM, XX TAD VOLPT2 GETNM1, DCA X0 TAD I X0 SPA JMP GETNM9 / END TABLE CIA TAD AREANO SNA CLA / FOUND? JMP GETNM7 / YES TAD X0 TAD (LENVOL) / SET TO NEXT JMP GETNM1 GETNM7, ISZ GETNAM / SET FOUND RET GETNM9, CLA JMP I GETNAM IFDEF PASSWD < / GET DEC NO FROM KEYBOARD AND CONVERT IT TO BIN DBLE PREC. ADDED TO T2-T3 / GET DBLE PREC. # IN T2 T3. / RETURNS WITH H/O IN T2 L/O IN T3 GETBIN, XX DCA T2 / CLEAR DCA T3 GETBN1, JMS MVLLIN / GET LINE -106 / STRING COUNT JMP MVCRET / CARRIAGE RET JMP MVGOLD / IS A GOLD MENU GETBN2, MQA / CHAR COUNT SNA / ONLY CRET? JMP MVCRET / YES CIA / NEG DCA GETCNT / COUNTER TAD MVLCHP / ADDRESS OF BUFFER DCA X3 GETBN3, TAD I X3 / GET CHAR TAD (-"0+200) SPA / L.T. 0? JMP GETBNM / YES EXIT TAD (-"9+"0) SMA SZA / G.T.9? JMP GETBNM / YES TAD ("9-"0) / SET TO BINARY DCA BNTMP1 TAD M11 / -9 DEC DCA BNCNT / COUNT / MULTIPLY T2--T3 BY 10 / MULT23, 0 TAD T2 DCA BNTMP2 / SAVE TAD T3 DCA BNTMP3 / LO MULTLP, TAD T3 TAD BNTMP3 / ADD TO ITSELF DCA T3 RAL / CARRY BIT TAD T2 TAD BNTMP2 /H/O DCA T2 TAD T2 / AND K20 SZA CLA / G.T. 65000? JMP GETBNM / YES =ERROR ISZ BNCNT / COUNT JMP MULTLP / LOOP TAD T3 TAD BNTMP1 DCA T3 / SET IT RAL / SHIFT IN CARRY TAD T2 DCA T2 / CHAR ADDED TO T2,T3 ISZ GETCNT JMP GETBN3 / NEXT GETBN5, ISZ GETBIN / SET RETURN JMS SHIFT4 / SHIFTS H/O 4 BITS IN T3(LO WRD) / TO L/O 4 BITS IN T2(HO) GETBNM, CLA JMP I GETBIN / RET GETCNT, 0 / CHAR COUNTER > / END IFDEF PASSWD CLRLST, XX / CLEAR BOTTOM LINE OF SCREEN TAD (3000) / POINTER JMS I CLRSCX / DO IT /C008 JMP I CLRLST X=. / INDICATE FIRST FREE LOCATION ON PAGE /-------------------- PAGE DSKBLK=.%400+DLWINI / DISK BLOCK WHERE PAGE IS LOADED / DIVIDE T2-T3 BY NUMBLO LEAVING QUOTIENT IN T3 AND REM IN NUMB / USES T2-T3 NUMBLO DBLDVD, XX DCA PSMQHI DCA PSMQLO TAD (-31) DCA MQCNT TAD NUMBLO CLL CMA CML DCA NUMBLO RAL TAD NUMBHI CLA CMA CML DCA NUMBHI JMP DBDV2 DBDV1, TAD PSMQLO RAL DCA PSMQLO TAD PSMQHI RAL DCA PSMQHI TAD PSMQLO TAD NUMBLO MQL RAL TAD PSMQHI TAD NUMBHI SNL JMP DBDV2 DCA PSMQHI MQA DCA PSMQLO DBDV2, CLA TAD T3 RAL DCA T3 TAD T2 RAL DCA T2 ISZ MQCNT JMP DBDV1 TAD PSMQLO DCA NUMBLO TAD PSMQHI DCA NUMBHI JMP I DBLDVD /VARIABLES FOR MULT/DIV /SUBR----NEGATE NUMB PSMQHI, 0 PSMQLO, 0 MQCNT, 0 NUMBHI, 0 NUMBLO, 0 / /SHIFT4 ROUTINE....CONVERTS PASSWORD CONTAINED IN T2(L/O 4 BITS OF H/O WORD) / ............................. AND T3(12 BITS OF L/O D.P. WORD) / ..............INTO 2 8 BIT WORDS H/O IN T2 LO IN T3 SHIFT4, XX TAD (-4) / SHIFT COUNT DCA SHFTCT TAD T2 / H/O MQL TAD T3 / L/O SHFTNX, CLL RAL / SHIFT L/O LNK BIT NOT MATTER HERE SWP / GET H/O RAL / INTO BIT 11 SWP / RESET BACK ISZ SHFTCT / DONE? JMP SHFTNX / NO CLA TAD T3 / GET UNSHIFTED L/O WRD AND P377 / YES CLEAR BITS 0-3 L/O WORD DCA T3 / RESET CLA SWP / GET H/O DCA T2 / RESET JMP I SHIFT4 SHFTCT, 0 / TEMP STORE / CHKVOL ROUTINE READS IN DIRECTORY DATA / VERIFIES THAT THE VOLUME NAME IS VALID / IF VOLUME NAME NOT FOUND IT PRINTS ERROR MESSAGE AND RETURNS RET+0 / IF VOLUME NAME VALID IT RETURNS RET+1 / SVX0 LEFT POINTING TO PASSWORD CHKVOL, XX TAD VOLBUF / BUFFER DCA WINQBK+RXQBAD TAD (RDEGTD) / GET DIRECTORY DATA FUNCTION CODE /D011 DCA WINQBK+RXQFNC JMS QURX / DO IT JMP CHKVL2 / IO ERROR TAD VOLPT2 / BUFFER-1 CHKNXT, DCA X0 IAC / SET UP BUFFER TAD X0 DCA SVX0 / SAVE IT TAD MVLCHP / POINTER TO START OF NAME VOLUME-1 DCA X1 ISZ LCCLUG / LOWER CASE IGNORE CLUDGE JMS CMPVOL / VOLUME IN TABLE=VOLIME TO BE MNTED SKP / NO CHECK TABLE END JMP CHKVL1 / FOUND VOLUME..X0 POINTS TO PASSWORD-1 TAD I SVX0 / FIRST CHAR OF NAME SNA CLA / 0=END TABLE JMP CHKVL0 / ERROR TAD SVX0 TAD (LENVOL-1) / SET TO NEXT BUFFER -1 JMP CHKNXT / DO IT CHKVL0, JMS I WINP7X / PRINT ERROR MESSAGE /C008 PRTER8 / "^P ^A NOT A VOLUME NAME. ... " JMP CHKVL2 / ERR RET CHKVL1, TAD X0 / POINTES TO READ PASSWORD-1 DCA SVX0 TAD SVX0 TAD (VOLDAT-VOLRD+1) / SET POINTER TO OS/WPS DATA DCA SHFTCT / TEMP TAD (10) / -(WPS-8) CODE BIT /C003 AND I SHFTCT / REQUESTED VOLUME CODE /C003 SZA CLA / =WPS-8? /C003 JMP CHKVL3 / YES JMS I WINP7X / NO PRINT ERR MESSAGE /C008 PRTER9 / "NOT A WPS VOL ... " CHKVL2, TAD AREANO / SAVE IT AS GETVOL RESETS IT /A007 DCA SAVENO /A007 JMS GETVOL / RESET MOUNTED VOLUME DATA /A006 TAD SAVENO / GET IT BACK /A007 DCA AREANO / /A007 JMP I CHKVOL / RET CHKVL3, ISZ CHKVOL / SET NORMAL RET JMP I CHKVOL X=. / INDICATE FIRST FREE LOCATION ON PAGE /-------------------- PAGE DSKBLK=.%400+DLWINI / DISK BLOCK WHERE PAGE IS LOADED / CHKPAS ROUTINE ENTERS WITH SVX0 POINTING TO PASSWORD FOR DESIRED VOLUME / .... IT THEN CHECKS THE PASSWORD FOR THAT VOLUME AGAINST THE / .... ONE ENTERED.. IF ERROR IT SETS PASSER CHKPAS, XX TAD SVX0 DCA X0 TAD I X0 / GET L/O PASSWORD CIA TAD RPASS3 SZA CLA / =? JMP CHKPEE / NO TAD I X0 / GET H/O PASSWORD CIA TAD RPASS2 SZA CLA / =? JMP CHKPEE / NO TAD I X0 / GET L/O PASSWORD CIA TAD WPASS3 SZA CLA / =? JMP CHKPEE / NO TAD I X0 / GET H/O PASSWORD CIA TAD WPASS2 SZA CLA / =? CHKPEE, ISZ PASSER / SET ERROR JMP I CHKPAS WINFNB, / FINISH COMMAND /D009 JMS WINFLD / GET CALL FLD /D009 DCA RETCF2 / SET RET FLD SETPRQ, / BOOT WINNIE OR RX50D TAD (MNRX5X+MNRX4X) / WINNIE FIRMWARE BIT 6 OR SYS DEV = WINNIE/C009 CDFMNU AND I (MUBUF+MNOPTN) / STATUS WORD CDFMYF CLL RTR / SHIFT DRV 0 WINNIE BIT /A009 SNA CLA / WINNIE FIRMWARE? /C009 JMP POBOOT / NO DO POWER ON BOOT /C009 SZL / IS DRIVE 0 = WINNIE? /A009 JMP WNBOOT / YES REBOOT MASTER MENU /A009 CDFMNU /A009 TAD I (MNSYSA+MUBUF) / LAST CHAR ENTERED /A009 CDFMYF /A009 SZA CLA / CHECK FOR CARRIAGE RETURN /C011 JMP RX50BT / NO, GO BOOT THE FLOPPY /C011 / YES, FALL INTO WINNIE BOOT WNBOOT, CIFMNU JMS I IOACAL / SET TO KEYPAD MODE WINZRO, 0 / USE DEFAULT OUTPUT ROUTINE /C011 TXTKEY / CONTROL STRING TO OUTPUT RESET COMMANDS /D011 TXTPAD / CURSOR KEYPAD MODE ISZ WINZRO / WAIT TO INSURE COMPLETE SCREEN OUTPUT /A011 JMP .-1 / NOT DONE, GO DO IT AGAIN /A011 TAD DEALP7 / SET UP TO DISMOUNT VOL 0 /C011 DCA DEALP1 /A003 JMS DEALL / DISMOUNT DRIVE 0 /A003 DCA AREANO / SET DRIVE=0 JMS WINIO RDEMTS / MOUNT SYSTEM VOLUME PRQ3 / RESET DECMATE MODE /A011 10 / FUNCTION CODE ARGUMENT /A011 -1 / END OF LIST INDICATOR /A011 AC7775 / BOOT THE WINNIE /C011 SKP / SKIP OVER RX-50 BOOT CODE /A011 RX50BT, AC7776 / BOOT THE FLOPPY /C011 PRQ3 / ISSUE PANNEL REQUEST COMMAND 6 / COMMAND CODE -1 / TERMINATOR JMP . / TEST HALT /C009 POBOOT, PRQ3 / ISSUE PANNEL REQUEST COMMAND 5 / CODE FOR A POWER UP BOOT -1 / TERMINATOR JMP . / TEST HALT /C009 FRMTYP, 0 / FRIMWARE TYPE 0=FLOPPY -1=WINNIE DEALL, XX / DEALLOCATE ALL VOLUMES XCPT 0 JMS GETVOL / GET ALL ASSIGNED VOLUMES TAD VOLBUF / POINTER TO START OF TABLE DEALP0, DCA VOLTMP / SET IT TAD I VOLTMP / GET DEVICE # ISZ VOLTMP / POINTER TO NAME SNA / =0? DEALP1, JMP DEALP5 / YES SKIP DEASSIGN /C003 SPA / END OF TABLE? JMP DEALP7 / YES DCA WINQBK+RXQDRV / SET DRIVE TO BE DISMOUNTED TAD VOLTMP DCA WINQBK+RXQBAD / VOL NAME ADDRESS /D011 TAD (CDFMYF) /D011 DCA WINQBK+RXQBFD / BUFFER FIELD TAD (RDEDIS+4000) / DISMOUNT COMMAND FUNCTION CODE /D011 DCA WINQBK+RXQFNC JMS QURX / DO IT JMP DEALP5 / IGNORE ERROR DO NEXT DEALP5, TAD (LENVOL) TAD VOLTMP / SET TO NEXT JMP DEALP0 / DO NEXT DEALP7, CLA JMP I DEALL / RET QURX, XX DCA WINQBK+RXQFNC / STORE COMMAND CODE IN QUEUE BLOCK /A011 CIFSYS / CHANGE TO SYSTEM FIELD ENQUE / QUEUE TO RXHAN QUBLK1 / ADDRESS OF QUEUE BLOCK TO USE QURX1, CIFSYS / CHANGE TO SYSTEM FIELD JWAIT / WAIT FOR DONE /D011 CLA TAD WINQBK+RXQCOD / PICK UP THE COMPLETION CODE SNA / CHECK FOR DONE /C011 JMP QURX1 / NOT DONE, GO CHECK AGAIN /C011 SMA CLA / CHECK FOR AN ERROR /C011 ISZ QURX / BUMP FOR SUCESSFUL RETURN JMP I QURX / ERROR--RETURN WITH NO INCRMENT /D011 TAD WINQBK+RXQCOD /D011 SNA CLA / /D011 JMP QURX1 /D011 ISZ QURX / BUMP FOR SUCESSFUL RETURN /D011 JMP I QURX / DONE / GET DIRECTORY DATA / AC=POINTER TO VOL NAME WINIO, XX DCA WINQBK+RXQBAD / BUFFER ADDRESS TAD AREANO DCA WINQBK+RXQDRV /D011 TAD (CDFMYF) /D011 DCA WINQBK+RXQBFD TAD I WINIO / GET COMMAND FUNCTION CODE ISZ WINIO / SET RETURN ADDRESS /D011 DCA WINQBK+RXQFNC / FUNCTION CODE JMS QURX JMP WINMVN / DISK ERROR JMP I WINIO / RET IFDEF ENGLSH < TXTLN2, TEXT '^P!2D/!2D/!2D !2D:!2D' /MOVED HERE FOR SPACE REASONS /M012 > IFDEF ITALIAN < TXTLN2, TEXT '^P!2D/!2D/!2D !2D:!2D' /MOVED HERE FOR SPACE REASONS /M012 > IFDEF V30NOR < TXTLN2, TEXT '^P!2D/!2D/!2D !2D:!2D' /MOVED HERE FOR SPACE REASONS /M012 > IFDEF V30SWE < TXTLN2, TEXT '^P!2D/!2D/!2D !2D:!2D' /MOVED HERE FOR SPACE REASONS /M012 > IFDEF DUTCH < TXTLN2, TEXT '^P !2D/!2D/!2D !2D:!2D' /MOVED HERE FOR SPACE REASONS /M012 > IFDEF SPANISH < TXTLN2, TEXT '^P !2D/!2D/!2D !2D:!2D' /MOVED HERE FOR SPACE REASONS /M012 > X=. / INDICATE FIRST FREE LOCATION ON PAGE /-------------------- PAGE DSKBLK=.%400+DLWINI / DISK BLOCK WHERE PAGE IS LOADED / GET ALL MOUNTED VOLUME DIRECTORIES / AND SET POINTERS IN VOLTB1 POINTING TO THE NAMES IN THE DIRECTORIES GETVOL, XX TAD VOLBUF DCA VOLPTR / MAIN POINTER CDFMNU TAD I (MUBUF+MNMXDR) / MAX NUM DRIVES IN SYSTEM MYFLD3, CDFMYF / CDF INSTRUCTION TO THIS FIELD /C011 CMA DCA WINCNT / # DEVICES PROCESSED DCA AREANO / AREA/DRIVE BEING PROCESSED DCA MNTCNT / # DRIVES MOUNTED GTVOLA, TAD AREANO DCA I VOLPTR / SET DEV # AT BEG. OF TABLE /C006 ISZ VOLPTR TAD VOLPTR DCA WINQBK+RXQBAD / ADDRESS /D011 TAD MYFLD3 / GET CDF INSTRUCTION TO THIS FIELD /C011 /D011 DCA WINQBK+RXQBFD / FIELD TAD AREANO DCA WINQBK+RXQDRV / DEVICE # TAD (RDEGTV+4000) / GET VOLUME DATA FUNCTION CODE /D011 DCA WINQBK+RXQFNC / FUNCT. CODE JMS QURX SKP / IS AN ERROR JMP WINOK / IS MOUNTED CLA CMA TAD VOLPTR / RESET POINTER DCA VOLPTR CLA CMA / -1 DCA I VOLPTR / NOT MOUNTED JMP WINEXT / IS END? WINOK, TAD VOLPTR TAD (LENVOL) / SET TO NEXT DCA VOLPTR ISZ MNTCNT / NO OF MOUNTED DEVICES = +1 WINEXT, ISZ AREANO / NEXT ISZ WINCNT / MAX # DRIVES JMP GTVOLA CLA CMA DCA I VOLPTR / SET END JMP I GETVOL WINCNT, 0 / -NUMBER OF DRIVES /M008 MNTCNT, 0 / NUMBER OF MOUNTED DEVICES /M008 MOVT01, XX / MOVE FROM X0(POINTER) TO X1(PTR) T3=COUNT MOV01A, TAD I X0 DCA I X1 ISZ T3 JMP MOV01A JMP I MOVT01 MULT16, XX / MULTIPLY T2 T3 BY 16 TAD (-4) DCA MULCNT / COUNTER MULTLQ, TAD T3 / LOW ORDER CLL RAL / SHFT DCA T3 TAD T2 / HIGH ORDER RAL / SHIFT IN LINK DCA T2 ISZ MULCNT / DONE? JMP MULTLQ / NO JMP I MULT16 / YES MULCNT, 0 / COMPAR VOLUME NAME IN X0 TO NAME IN X1 T3=NUM CHARS TO COMP / RETURN+0 IF ERROR END TABLE / RETURN+1 IF MATCH CMPVOL, XX TAD (-LENNAM) DCA T3 CMPVL1, JMS SETUPC / SET UPPER CASE IF SW SET CMPVL2, TAD I X1 CIA TAD I X0 SZA CLA / =? JMP CMPVL3 / NOT EQ. ISZ T3 / END NAME? JMP CMPVL1 / NOT YET ISZ CMPVOL / SET RET CMPVL3, DCA LCCLUG / CLEAR SW JMP I CMPVOL / EXIT /-------------------- / THIS IS THE ERROR MESSAGE HANDLER / THIS ROUTINE WILL WAIT FOR A GOLD MENU OR A CR / RESPONSE FROM THE KEYBOARD. / CALLING SEQUENCE: / JMS WTFRRS / HERE / RETURNS HERE IF RETURN PRESSED / HERE+1 / RETURNS HERE IF GOLD-MENU PRESSED / HERE+2 / RET FOR OTHER CHAR / V036 CODE DELETED WHICH CHECKS SYSTEM DISK ID / MVLGET, XX CIFMNU JMS I (INAIN) / GET A CHAR AND UPDATE TIME DCA MVLCHX / SAVE CHAR AND EXIT TAD MVLCHX TAD (-EDMENU) / CHECK FOR A GOLD MENU SNA / JMP MVLGTC TAD (EDMENU-EDNWLN) / NOW FOR A CR SNA CLA / JMP I MVLGET / / JMS WINWFT / BELL REPLY / CLA ISZ MVLGET / NORMAL RET MVLGTC, / GOLD MENU WAS TYPED ISZ MVLGET / SKIP RETURN JMP I MVLGET MVLERM, XX DCA MVLERT / SAVE NUM CHARS SHOULD HAVE BEEN READ MQA / LOAD # CHARS READ -1 IAC TAD MVLERT / ADD -NUM CHARS SHOULD HAVE BEEN READ SNA CLA / WAS RETURN DUE TO TOO MANY CHARS ENTERED JMP MVLERP / NO JMS I WINP5X / PRINT ERR MSG /C008 PRTER1 / "INPUT TOO LONG /A008 JMP I MVLERM / RET MVLERP, CIFMNU JMS I MNUCAL / CALL ERROR MESSAGE DLMCR1 / MENU ERROR MSG TAD (2200) / LINE 22 JMS I CLRSCX / CLEAR BOTTOM OF SCREEN FROM LINE 22 /C008 JMS I PRTLSX / PAINT CR G.MENU MSG /C008 JMP I MVLERM / RETURN CLCRER, XX / CLEAR BOTTOM LINE AND ERROR SW DCA CRERSW / CLEAR ERROR SW /A004 TAD (2700) / LAST LINE /A004 JMS I CLRSCX / CLEAR IT /C008 JMP I CLCRER / RET /A004 MVLERT, 0 / TEMP HOLD BUFFER X=. / INDICATE FIRST FREE LOCATION ON PAGE /-------------------- PAGE DSKBLK=.%400+DLWINI / DISK BLOCK WHERE PAGE IS LOADED PRTLN1, XX / PRINT LINE NO IN AC TAD AREANO / GET DEVICE # SZA / DEVICE 0? TAD K20 / NO SET TO NUMERIC TAD (40) / YES SET TO SPACE BSW / CHAR IN H/O AND TERMINATOR IN L/L DCA PRTLN4 / SET FOR PRINT / PRTLN3 = 24 TAD PRTLN3 / SET POSITION FOR TYPE IFDEF ENGLSH < TAD (7) / COLUMN 33(8) > IFDEF ITALIAN < TAD (7) / COLUMN 33(8) > IFDEF V30NOR < TAD (7) / COLUMN 33(8) > IFDEF V30SWE < TAD (7) / COLUMN 33(8) > IFDEF DUTCH < TAD (12) > IFDEF SPANISH < TAD (12) > DCA PRTLN5 TAD PRTLN5 / SET POSITION FOR ATTRIBUTES IFDEF ENGLSH < TAD (12) / COLUMN 45(8) > IFDEF ITALIAN < TAD (12) / COLUMN 45(8) > IFDEF V30NOR < TAD (12) / COLUMN 45(8) > IFDEF V30SWE < TAD (12) / COLUMN 45(8) > IFDEF DUTCH < TAD (13) > IFDEF SPANISH < TAD (13) > DCA PRTLN7 TAD PRTLN7 IFDEF ENGLSH < TAD (31) / COLUMN 76(8) FOR LAST BACKUP > IFDEF ITALIAN < TAD (31) / COLUMN 76(8) FOR LAST BACKUP > IFDEF V30NOR < TAD (31) / COLUMN 76(8) FOR LAST BACKUP > IFDEF V30SWE < TAD (31) / COLUMN 76(8) FOR LAST BACKUP > IFDEF DUTCH < TAD (25) > IFDEF SPANISH< TAD (25) > DCA PRTLN8 / ON ENTRY, X0 CONTAINS ADDRESS OF SECOND WORD (20(8)) OF NUMBER OF BLOCKS / START WITH 1, NOT 0 / WORD 21(8) CONTAINS READ/WRITE ACCESS (4,5); UNIT (6); VOLUME MOUNTED (7) / STARTUP (9); MODIFIED (10); / WORD 22(8) CONTAINS BOOTABLE (SYSTEM) (4); SYSTEM TYPE (5-11) / PUT TYPE (WPS, OS8, COS, CPM) INTO CALLING SEQUENCE NOP / FOR DEBUG ONLY CLL CLA IAC RAL / AC=2 TAD X0 DCA WORKX0 / POINT TO DATA BITS FOR TYPE; WORD 21(8) TAD (PTLN90-1) / SET UP TO SCAN TABLE DCA X1 PTLN30, TAD I X1 / GET FROM TABLE SNA / DONE? JMP PTLN32 / END OF TABLE W/O MATCH DCA PRTTMP / SAVE TABLE ENTRY A MOMENT TAD I WORKX0 / COMPARE TO DATA AND (0113) / KEEP BITS 5, 8, 10,11 TAD PRTTMP SZA CLA JMP PTLN30 / NO MATCH, TRY AGAIN TAD (-PTLN90) / FOUND TYPE, CALCULATE DISTANCE DOWN TABLE TAD X1 TAD (PTLN20) / PLUS ADDRESS OF START OF MESSAGES DCA PRTLN6 / INTO CALLING SEQUENCE TAD I PRTLN6 DCA PRTLN6 JMP PTLN40 PTLN32, CLA CMA / CHECK FOR RESERVED TYPE TAD WORKX0 / BACK TO WORD 20(8) FOR VOLUME MOUNTED BIT DCA WORKX0 / IF BIT=0, VOLUME NOT MOUNTED (RESERVED) TAD I WORKX0 AND (20) / CHECK BIT 7 SNA CLA TAD (PTLN19-PTLN18) / PRINT SPACES, NOT RESERVED TAD (PTLN18) DCA PRTLN6 / PUT ATTRIBUTES (SYSTEM, MODIFIED, STARTUP) INTO CALLING SEQUENCE PTLN40, TAD (PTLN50-1) / POINT TO TEXT ARRAY DCA X1 IAC TAD X1 DCA WORKX0 DCA I WORKX0 / SET TERMINATOR IN TEXT ARRAY CLL CLA IAC RAL / BUMP TO WORD 22(8) TAD X0 DCA WORKX0 TAD I WORKX0 / GET DATA BITS AND (200) / BIT 4 (SYSTEM) SNA CLA / CHECK FOR BOOTABLE (SYSTEM) JMP .+3 JMS PTLN80 / MOVE TEXT TO OUTPUT ARRAY PTLN50 PTSYST-1 / "SYSTEM" CLA CMA / BACK TO WORD 21(8) TAD WORKX0 DCA WORKX0 TAD I WORKX0 AND (2) / MODIFIED BY WRITE COMMAND SNA CLA JMP .+3 JMS PTLN80 / MOVE TEXT PTMODI-1 / "MODIFIED" TAD I WORKX0 AND (4) / STARTUP SNA CLA JMP .+3 JMS PTLN80 PTSTAR-1 / "STARTUP" CIFMNU JMS I IOACAL 0 TXTLN1 / ^P^S____^A^P!4D!3D^P^S^P^A PRTLN2, /D008 0402 0500 / ^P; CURSOR POSITION FOR DEVICE; COL. 05 /A008 PRTLN4 / ^S; ADDR. OF DEVICE # VOLSAR / ^A; ADDR. OF ASCII STRING(VOLUME NAME PRTLN3, 0 / ^P; CURSOR POSITION FOR BLOCKS; COL. 22 PRTHO / !4D; ADDR. OF BLOCK # HIGH ORDER PRTLO / !3D; ADDR. OF BLOCK # LOD ORDER PRTLN5, 0 / ^P; CURSOR POSITION FOR TYPE /A008 PRTLN6, 0 / ^S; ADDRESS OF TEXT FOR TYPE /A008 PRTLN7, 0 / ^P; CURSOR POSITION FOR ATTRIBUTES /A008 PTLN50 / ^A; ADDRESS OF TEXT FOR ATTRIBUTES /A008 JMS PTLN00 / DATE OF LAST BACKUP JMP I PRTLN1 PRTLN4, 0 / DEVICE NUM WORKX0, 0 PRTTMP, 0 PTLN20, PTLN10 / POINTERS TO TEXT MESSAGES PTLN11 PTLN12 PTLN13 PTLN90, WPS8 / LOOKUP TABLE FOR SYSTEM TYPE OS278 COS310 CPM 0 X=. / INDICATE FIRST FREE LOCATION ON PAGE /-------------------- PAGE DSKBLK=.%400+DLWINI / DISK BLOCK WHERE PAGE IS LOADED WINCLR, XX / CLEAR BUFFER AREA -PRIMARILY FOR DIR READ END TAD VOLBUF / STRT BUFFER POINTER DCA X0 TAD (VOLTB2-VLTBLE) / COUNTER DCA CLRCNT DCA CRERSW / CR-ERR-SW...INITIALIZE /A004 WINCL1, DCA I X0 ISZ CLRCNT JMP WINCL1 CDFMNU /A006 TAD I (MUBUF+MNOPTN) / GET OPTION CODE /A006 CDFMYF /A006 AND K20 / DEV 0=WINNIE(BIT 7) /A006 DCA SYSDEV / SET SYSTEM DEV. 0=RX50,ELSE WINNIE /A006 JMP I WINCLR / DONE CLRCNT, 0 / COUNTER / CHECK PASSWORD FOR 0...IF ZERO RET NORMAL / ..ELSE RET + 1 ZERPAS, XX /A003 TAD SVX0 / PNTR TO PASSWORD /A003 DCA X0 /A003 TAD M4 /-4 /A003 DCA BNTMP1 / TEMP /A003 ZERPS1, TAD I X0 / GET PASS /A003 SZA CLA /=0 /A003 JMP ZERPS3 / NO..MUST NOW CHECK IT /A003 ISZ BNTMP1 / DONE /A003 JMP ZERPS1 / NO /A003 JMP I ZERPAS / YES..0 RET /A003 ZERPS3, ISZ ZERPAS /A003 JMP I ZERPAS /A003 M4, -4 /A003 /SETUPC ..SETS UPPER CASE FOR STRING IN X1 IF SWITCH SET AND RETURNS .+1 /ELSE RETURNS NORMAL SETUPC, XX TAD LCCLUG / GET SW SNA CLA / SET? JMP I SETUPC / NO ISZ SETUPC TAD I X1 TAD (-140) / VOLUME NAME CAN NOT CONTAIN NON ALPHA CHRS SPA / L.C.ALPHA? TAD (40) / YES CLEAR LC BIT TAD (100) JMP I SETUPC / RET LCCLUG, 0 WINPT9, XX CIFMNU JMS I IOACAL 0 PRTDMC /C008 1505 JMP I WINPT9 PRTLS0, XX / GET A CHARACTER, BELL IF NOT CR OR GOLD MENU JMP PRTLS2 / IGNORE BELL 1ST TIME PRTLS1, JMS WINWFT / RING BELL PRTLS2, JMS MVLGET / GET A CHAR /D008 JMP PRTLS3 / CR ISZ PRTLS0 / CR /A008 JMP I PRTLS0 / GOLD MENU JMP PRTLS1 /D008 PRTLS3, ISZ PRTLS0 / CR /D008 JMP I PRTLS0 WINWFT, XX / PRINT BELL HERE TO SAVE SPACE TAD (7) / RING THE BELL IF BAD CHARACTER JMP .+3 CIF 0 / JWAIT CIF 0 / TTYOU JMP .-4 JMP I WINWFT / RETURN PRTLST, XX / PRINT LINE CIFMNU JMS I IOACAL 0 TLS1 / ^P PRESS RETURN TO RECALL ... ^P^S^P PRTLS9, 2205 / PRTLS9, PRTL10, PRTL11 SET /C008 / AND RESTORED BY PRTNXT PRTL10, 2305 /C008 TXTLS2 / OR PRESS GOLD MENU ... PRTL11, 2405 /C008 JMP I PRTLST / / / THIS ROUTINE CHECKS FOR A WINNIE ON LINE... / ...IF NO WINNIE IT RETURNS TO RET+1 WINCHK, XX /A010 TAD (MNRX5X+MNRX4X) / WINNIE FIRMWARE BIT 6 /A010 / OR SYS DEV = WINNIE /A010 CDFMNU /A010 AND I (MUBUF+MNOPTN) / STATUS WORD /A010 CDFMYF /A010 SNA CLA / IS WINNIE ON LINE? /A010 ISZ WINCHK / NO -- SKIP RETURN /A010 JMP I WINCHK /A010 WINNAM, XX / WINNAM GETS NAME OF VOLUME TO BE MOUNTED JMS MVLLIN / GET LINE -11 / COUNT JMP MVCRET / CR JMP MVGOLD JMS PADNAM / PADS TABLE WITH BLONKS JMS MNTCHK / CHECK IF VOL ALREADY MOUNTED ISZ WINNAM / NO MATCH RETURN JMP I WINNAM / MATCH RETURN /***********************************************************************/ / / / CLRSCR--ROUTINE TO CLEAR THE SCREEN FROM A GIVEN POSITION / / AC CONTAINS THE POSTION TO CLEAR THE SCREEN FROM / / / /***********************************************************************/ CLRSCR, XX / CLEAR THE SCREEN DCA CLRSCP / SET THE POSITION TO CLEAR FROM CIFMNU JMS I IOACAL 0 PSCR CLRSCP, 0 / POSTION TO CLEAR FROM JMP I CLRSCR PTLN80, XX TAD I PTLN80 / FROM DCA X3 ISZ PTLN80 PTLN81, TAD I X3 SNA JMP PTLN82 DCA I X1 JMP PTLN81 PTLN82, DCA I X1 / TERMINATING ZERO CMA / BACK UP X1 FOR NEXT STORE TAD X1 DCA X1 JMP I PTLN80 X=. / INDICATE FIRST FREE LOCATION ON PAGE /-------------------- PAGE DSKBLK=.%400+DLWINI / DISK BLOCK WHERE PAGE IS LOADED WINPT1, XX / PRINT LINE AND WAIT FOR CR OR GOLD MENU TAD I WINPT1 / POINTER TO STRING DCA WINPT2 ISZ WINPT1 / SET RETURN CIFMNU JMS I IOACAL 0 WINPT2, 0 / STRING ADDRESS (PRC, PRTMVC, PRTMVD, PMA) 1405 2700 / PTR TO RESPONSE JMS I PRTLSX / CR OR G.M. MSGE JMP I WINPT1 / RET WINPT5, XX TAD I WINPT5 DCA WINPT6 ISZ WINPT5 CIFMNU JMS I IOACAL 0 WINPT6, 0 2705 /D008 MVLCHQ+1 IFDEF V30NOR < PRTRYK > /A013 IFDEF V30SWE < PRTRYK > IFDEF SPANISH < PULSE > ISZ CRERSW / CR-RET-ERROR SW /A004 JMP I WINPT5 WINPT3, XX TAD X0 / PTR TO VOL NAME -1 DCA WINPTZ / SET IT TAD I WINPT3 DCA WINPT4 ISZ WINPT3 CIFMNU JMS I IOACAL 0 WINPT4, 0 / ADDRESS OF OUTPUT STRING 1405 / CURSOR POSITION WINPTZ, MVLCHR AREANO / AREA NUMBER 2700 JMP I WINPT3 WINPT7, XX TAD I WINPT7 DCA WINPT8 ISZ WINPT7 CIFMNU JMS I IOACAL 0 WINPT8, 0 / ADDRESS OF TEXT 3000 /C008 MVLCHR IFDEF V30NOR < PRTRYK > /A013 IFDEF V30SWE < PRTRYK > IFDEF SPANISH < PULSE > ISZ CRERSW / CR-RET-ERROR SW /A004 JMP I WINPT7 / ERROR RET WINPTB, XX CIFMNU JMS I IOACAL 0 PRTDMB / ^P!E ... ^A ... !D^P 1405 WINPTD, 0 / ADDRESS OF ASCII NAME AREANO / DEVICE NUMBER 1505 JMP I WINPTB WINPTE, XX /D008 JMS I WINWPT / BELL CIFMNU JMS I IOACAL 0 PRTERA / "CHOOSE 1-7. ... " 3014 IFDEF V30NOR < PRTRYK> /A013 IFDEF V30SWE < PRTRYK> IFDEF SPANISH < PULSE > ISZ CRERSW / CR-RET-ERROR SW /A004 JMP I WINPTE / ERROR RET WINPTF, XX / PASSWORD ERROR /D008 JMS I WINWPT / BELL CIFMNU JMS I IOACAL 0 PRTER7 / "READ/WRITE PASSWORD ERROR ... " 3000 IFDEF V30NOR < PRTRYK > /A013 IFDEF V30SWE < PRTRYK > IFDEF SPANISH < PULSE > ISZ CRERSW / CR-RET-ERROR SW JMP I WINPTF / ERROR RET /D008 WINWPT, WINWFT WINP31, XX CIFMNU JMS I IOACAL 0 PRTMVB / OUTPUT STRING 1405 / CURSOR POSITION AREANO / DEVICE NUMBER 1505 / CURSOR POSITION FOR SECOND LINE 2700 / CURSOR POSITION FOR INPUT JMS I PRTLSX / GET INPUT JMP I WINP31 PRTHDR, XX / PRINT MENU HDR CIFMNU JMS I IOACAL 0 TXTHD0 / FORMAT 0202 / POSITION CURSOR FOR ERASE 0212 / POSITION CURSOR FOR TEXT /C008 TXTHD1 / FIRST LINE OF HEADER; VOLUME... /D008 0250 /D008 TXTHD1 /D008 0302 /D008 D3 /D008 0405 0302 / POSITION CURSOR /A008 TXTHD2 / SECOND LINE OF HEADER /A008 0402 / POSITION CURSOR /A008 D3 / UNDERLINES /A008 0502 / POSITION CURSOR /A008 JMP I PRTHDR PTLN00, XX / TEST TO SEE IF DATE OF LAST BACKUP, / OUTPUT IF THERE CLL CLA IAC CML RAL / AC = 3 TAD X0 DCA PRTLN9 TAD I PRTLN9 / SEE IF DATE SNA CLA JMP I PTLN00 / NO DATE JMS I PTLNAA / SET ADDRESSES IN CALLING SEQ CIFMNU / OUTPUT DAATE OF LAST BACKUP JMS I IOACAL 0 TXTLN2 / ^P!2D/!2D/!2D !2D:!2D PRTLN8, 0 / CURSOR POSITION PRTLN9, 0 / ADDRESS OF MONTH 0 / DAY 0 / YEAR 0 / HOUR 0 / MINUTE JMP I PTLN00 PTLNAA, PTLN05 X=. / INDICATE FIRST FREE LOCATION ON PAGE /-------------------- PAGE DSKBLK=.%400+DLWINI / DISK BLOCK WHERE PAGE IS LOADED PTLN05, XX / SET UP ADDRESSES OF LAST BACKUP CLA CLL IAC RAL / AC = 2 TAD X0 DCA PTLN09 / FROM ADDRESS-1 TAD PRTLNA / TO ADDRESS DCA X1 TAD PRTLNB / 5 ITEMS DCA PTLN08 PTLN06, ISZ PTLN09 / BUMP FROM ADDRESS TAD PTLN09 / GET ADDRESS DCA I X1 / ADDRESS INTO CALLING SEQ ISZ PTLN08 / COUNT JMP PTLN06 JMP I PTLN05 PTLN09, 0 PTLN08, 0 PRTLNA, PRTLN9-1 PRTLNB, -5 PRTNXT, XX / NEXT SCREEN, CR, GM MESSAGES TAD SVX0 / TEST IF MORE TO DISPLAY TAD PRTNXG / SET POINTER TO NEXT ENTRY IAC / TO MAKE UP FOR AUTO INCREMENT REGISTER DCA T1 TAD I T1 / TEST FOR ENTRY SNA CLA JMP I PRTNXT / EXIT C+1 FOR NORMAL CONTINUATION TAD PR2510 / ADJUST CURSOR POSITION FOR NEXT SCREEN MSG. DCA I PRTNXF TAD PR2605 DCA I PRTNXH TAD PR2705 DCA I PRTNXI CIFMNU JMS I IOACAL 0 TLS00 / "^P; PRESS NEXT SCREEN ... ^POR " 2405 2505 JMS I PRTLSX / CR, GM MESSAGE TAD PR2205 / RESET CURSOR POSITION DCA I PRTNXF TAD PR2305 DCA I PRTNXH TAD PR2405 DCA I PRTNXI PRTNX1, JMS I PRTNXC / GET INPUT JMP PRTNX7 / CR: GOTO C+4 EXIT JMP PRTNX8 / GM: GOTO C+3 EXIT TAD MVLCHX / OTHER, TEST FOR NEXT SCREEN TAD PRTNXD SNA CLA JMP PRTNX9 / NS: GOTO C+2 EXIT JMS I WINWFX / NOT ANY, BELL JMP PRTNX1 / GET AGAIN NOP / IN CASE NOP PRTNX7, ISZ PRTNXT PRTNX8, ISZ PRTNXT PRTNX9, ISZ PRTNXT JMP I PRTNXT PR2510, 2510 PR2205, 2205 PR2605, 2605 PR2705, 2705 PR2305, 2305 PR2405, 2405 PRTNXC, MVLGET PRTNXD, -EDNXSC PRTNXF, PRTLS9 PRTNXG, LENVOL PRTNXH, PRTL10 PRTNXI, PRTL11 NOP / SAVE A LITTLE ROOM NOP PTLN10, TEXT "!&WPS-8 " PTLN11, TEXT "!&OS278 " PTLN12, TEXT "!&COS-310 " PTLN13, TEXT "!&CP/&M " PTLN18, IFDEF ENGLSH < TEXT "RESERVED" > IFDEF ITALIAN < TEXT "RESERVED" > IFDEF V30NOR < TEXT 'RESERVERT' > IFDEF V30SWE < TEXT 'RESERVERAD'> IFDEF DUTCH < TEXT " VOORBH. " > IFDEF SPANISH < TEXT "RESERVADO" > PTLN19, TEXT " " PTSYST, "S&177 "Y&177 "S&177 "T&177 "E&177 IFDEF DUTCH < "E&177 > "M&177 40 0 PTMODI, IFNDEF DUTCH < "M&177 "O&177 "D&177 "I&177 "F&177 "I&177 "E&177 "D&177 40 0 > IFDEF DUTCH < "H&177 "E&177 "R&177 "Z&177 "I&177 "E&177 "N&177 40 0 > PTSTAR, "S&177 "T&177 "A&177 "R&177 "T&177 IFNDEF DUTCH < "U&177 "P&177 > 0 / TEXT STRINGS TXTHD0, TEXT '^P!E^P^S^P^S^P^S^P' /C008 IFDEF ENGLSH < TXTHD1, TEXT '!&VOLUME !&SIZE' /C008 TXTHD2, TEXT '!&DEVICE !&NAME (!&BLOCKS) !&TYPE !&ATTRIBUTES ' /A008 *.-1 / CONTINUATION OF TXTHD2 /A008 TEXT ' !&LAST !&BACKUP' /A008 > IFDEF ITALIAN < TXTHD1, TEXT '!&ARCHIVIO !&DIM.' /C008 TXTHD2, TEXT '!&UNIT\@ !&DO.TI !&BLOCCHI !&FORMATO !&CARATTERISTICHE ' /A008 *.-1 / CONTINUATION OF TXTHD2 /A008 TEXT ' !&ULTIMO !&SALVA.IO' /A008 > IFDEF V30NOR < /A013 TXTHD1, TEXT '!&OMR\EDTS !&STR.' TXTHD2, TEXT '!&ENHETENS !&NAVN (!&BLOKKER) !&TYPE !&ATTRIBUTTER' *.-1 TEXT ' !&SISTE !&SIKKERHETSKOPIERING' > IFDEF V30SWE < TXTHD1, TEXT '!&VOLYM !&STORLEK' TXTHD2, TEXT '!&ENHET !&NAMN (!&BLOCK) !&SKRIV !&ATTRIBUT' *.-1 TEXT ' !&SENASTE !&S\DKERHETSKOPIERING'> IFDEF DUTCH < TXTHD1, TEXT ' &NAAM &GROOTE' TXTHD2, TEXT '&AANDR. GEBIED (BLOKKEN) &TYPE &KENMERK ' *.-1 TEXT ' &LAATSTE &KOPIE' > IFDEF SPANISH < TXTHD1, TEXT '!&VOLUMNE &TAMA\QO' TXTHD2, TEXT '&DISP. !&NOMBRE (!&BLOQUES) !&TIPO !&ATRIB ' *.-1 TEXT ' &ULT.&COP.&SEG' > TXTKEY, TEXT '![[61"P![C' / ESC [ 6 1 " p RESET TO LEVEL 1 /C011 / ESC c RESET TERMINAL /C011 /D011 TXTPAD, ESC;"[&177;"?&177;"1&177;57;0 / ESC[?1/ D3, IFDEF ENGLSH < TEXT '------ ------ -------- -------' /C008 *.-1 / CONTINUATION OF D3 /C008 TEXT '- ----------------------- ---------------' /C008 > IFDEF ITALIAN < TEXT '------ ------ -------- -------' /C008 *.-1 / CONTINUATION OF D3 /C008 TEXT '- --------------- ---------------' /C008 > IFDEF V30NOR < TEXT '------- ---- -------- ---- ------- ---- -----------' *.-1 TEXT ' ----- -------------------' > IFDEF V30SWE < TEXT '------ ------ -------- -------' /C008 *.-1 / CONTINUATION OF D3 /C008 TEXT '- ----------------------- ---------------' /C008 > IFDEF DUTCH < TEXT '------ ------ ---------- --------' *.-1 TEXT '- --------------------- --------------' > IFDEF SPANISH < TEXT '------ ------ ---------- --------' *.-1 TEXT '- --------------------- --------------' > TXTLN1, TEXT '^P^S ^A^P!4D!3D^P^S^P^A' /C008 IFDEF ENGLSH < TLS00, TEXT '^P&PRESS !&NEXT !&SCREEN FOR MORE,^P!&OR ' /A008 TLS1, TEXT '^P&PRESS !&RETURN TO RECALL THE &HARD &DISK &VOLUME &MENU,' /C008 *.-1 /A008 TEXT '^P^S^P' / CONTINUATION OF TLS1 /A008 TXTLS2, TEXT '!&OR &PRESS &GOLD !&MENU TO RECALL THE &MAIN &MENU' PMA, TEXT '^P&TYPE THE DEVICE NUMBER YOU WANT TO DEASSIGN AND PRESS !&RETURN^P' PRTDMB, TEXT '^P!E&VOLUME NAME ^A IS NOW ASSIGNED TO &DEVICE !D^P' /C008 PRTDMC, TEXT '&IS THIS THE VOLUME YOU WANT TO DEASSIGN? (&Y OR &N)^P' /C008 PRTDME, TEXT '^P!E&VOLUME ^A HAS BEEN DEASSIGNED FROM &DEVICE !D.^P' / MOUNT MESSAGES PRC, TEXT '^P!L&TYPE THE DEVICE NUMBER YOU WANT TO ASSIGN AND PRESS !' /C008 *.-1 /A008 TEXT '&RETURN.^P' / CONTINUATION OF PRC /A008 PRTMVB, TEXT '^P!L&TYPE THE VOLUME NAME YOU WANT TO ASSIGN TO &DEVICE !D' /C008 *.-1 / CONTINUATION OF PRTMVB /A008 TEXT '^PAND &PRESS !&RETURN.^P' /A008 IFDEF PASSWD < PRTMVC, TEXT '^P!E&ENTER READ PASSWORD AND PRESS !&RETURN.^P' /C008 PRTMVD, TEXT '^P!E&ENTER WRITE PASSWORD AND PRESS !&RETURN.^P' > / END IFDEF PASSWD PRTMVE, TEXT '^P!E&VOLUME NAME ^A ASSIGNED TO DEVICE !D.^P' > IFDEF ITALIAN < TLS00, TEXT '^P&PREMERE !&SCHERM !&SUCC PER CONTINUARE,^PO ' /A008 TLS1, TEXT '^P&PREMERE !&RITORNO PER TORNARE AL &MENU &DEFINIZIONI SU &DISCO &RIGIDO ' /C008 *.-1 /A008 TEXT '^P^S^P' / CONTINUATION OF TLS1 /A008 TXTLS2, TEXT '&PREMERE &ORO !&MENU PER TORNARE AL &MENU &PRINCIPALE' PMA, TEXT /^P&INTRODURRE L'UNIT\@ DA ANNULLARE E PREMERE !&RITORNO^P' PRTDMB, TEXT /^P!E&ARCHIVIO DOCUMENTI ^A \H DEFINITO COME UNIT\@ !D^P//C008 PRTDMC, TEXT '&CONFERMA ANNULLAMENTO ? (&S/&N)^P' /C008 PRTDME, PRTMVE, TEXT '^P!E&ARCHIVIO DOCUMENTI ^A DEFINITO COME UNIT\@ !D ANNULLATO.^P' / MOUNT MESSAGES PRC, TEXT /^P!L&INTRODURRE L'UNIT\@ DA DEFINIRE E PREMERE !&RITORNO./ /C008 PRTMVB, TEXT /^P!L&INTRODURRE L'ARCHIVIO DOCUMENTI DA DEFINIRE COME UNIT\@ !D / /C008 *.-1 / CONTINUATION OF PRTMVB /A008 TEXT '^PE PREMERE !&RITORNO.^P' /A008 IFDEF PASSWD < PRTMVC, TEXT '^P!E&INTRODURRE PAROLA CHIAVE PER LETTURA E PREMERE !&RITORNO.^P' /C008 PRTMVD, TEXT '^P!E&INTRODURRE PAROLA CHIAVE PER SCRITTURA E PREMERE !&RITORNO.^P' > / END IFDEF PASSWD > IFDEF V30NOR < /A013 TLS00, TEXT '^P&TRYKK P\E !&SKJERM,FOR \E G\E TIL NESTE SIDE ^P!&EL ' /A008 TLS1, TEXT '^P&TRYKK P\E !&RETUR FOR \E F\E MENYEN FOR &PLATELAGER, ' /C008 *.-1 /A008 TEXT '^P^S^P' / CONTINUATION OF TLS1 /A008 TXTLS2, TEXT '!&EL &TRYKK P\E !&GEULL !&MENY FOR \E F\E &HOVEDMENYEN' PMA, TEXT '^P&SKRIV NUMMERET P\E ENHETEN DU VIL TREKKE TILBAKE OG TRYKK P\E' *.-1 TEXT ' !&RETUR^P' PRTDMB, TEXT '^P!E&OMR\EDENAVNET ^A ER N\E TILDELT ENHET !D^P' /C008 PRTDMC, TEXT '&ER DET DETTE OMR\EDET DU VIL TREKKE TILBAKE (&J EL. &N)^P'/C008 PRTDME, TEXT '^P!E&OMR\EDE ^A ER TRUKKET TILBSKE FRA ENHET !D.^P' / MOUNT MESSAGES PRC, TEXT '^P!L&ANGI NUMMERET P\E ENHETEN DU VIL TILDELE, OG TRYKK P\E !'/C008 *.-1 /A008 TEXT '&RETUR.^P' / CONTINUATION OF PRC /A008 PRTMVB, TEXT '^P!L&ANGI NAVNET P\E OMR\EDET DU VIL TILDELE ENHET !D ' /C008 *.-1 / CONTINUATION OF PRTMVB /A008 TEXT '^POG TRYKK P\E !&RETUR.^P' /A008 IFDEF PASSWD < PRTMVC, TEXT '^P!E&ANGI PASSORD FOR !&LESE OG TRYKK P\E !&RETUR.^P' /C008 PRTMVD, TEXT '^P!E&ANGI PASSORD FOR !&SKRIVE OG TRYKK !&RETUR.^P' > / END IFDEF PASSWD PRTMVE, TEXT '^P!E&OMR\EDENAVNET ^A ER TILDELT ENHET !D.^P' > IFDEF V30SWE < TLS00, TEXT '^P&TRYCK P\E N\DSTA BILD FVR MER INFORMATION' /A008 TLS1, TEXT '^P&FVR ATT \ETERG\E TILL MENYN FVR FAST SKIVMINNE, TRYCK P\E RETUR' *.-1 /A008 TEXT '^P^S^P' / CONTINUATION OF TLS1 /A008 TXTLS2, TEXT '&FVR ATT \ETERG\E TILL HUVUDMENYN, ANV\DND GULD MENY' PMA, TEXT '^P&SKRIV NR P\E ENHET D\DR DU VILL TA BORT TILLDELN. OCH TRYCK P\E RETUR^P' PRTDMB, TEXT '^P!E&VOLYMNAMN ^A \DR NU TILLDELAT ENHET !D^P' /C008 PRTDMC, TEXT '&\DR DETTA DEN VOLYM D\DR DU VILL TA BORT TILLDELNING (J ELLER N)^P' /C008 PRTDME, TEXT '^P!E&TILLDELNINGEN FVR VOLYM ^A HAR TAGITS BORT FR\EN ENHET !D.^P' / MOUNT MESSAGES PRC,TEXT '^P!L&SKRIV NUMRET P\E DEN ENHET DU VILL TILLDELA OCH TRYCK P\E RETUR' /C008 PRTMVB, TEXT '^P!L&SKRIV NAMET P\E DEN VOLYM DU VILL TILLDELA ENHET !D' /C008 *.-1 / CONTINUATION OF PRTMVB /A008 TEXT '^POCH TRYCK P\E RETUR^P' /A008 IFDEF PASSWD < PRTMVC, TEXT '^P!E&SKRIV L\DS LVSENORD OCH TRYCK P\E RETUR^P' /C008 PRTMVD, TEXT '^P!E&SKRIV SKRIV LVSENORD OCH TRYCK P\E RETUR^P' > / END IFDEF PASSWD PRTMVE, TEXT '^P!E&VOLYMNAMNET ^A \DR TILLDELAT ENHET !D.^P' > IFDEF DUTCH < TLS00, TEXT '^P&DRUK OP !&VOLG !&BEELD VOR VERVOLG.^P' /A008 TLS1, TEXT '^P!&RETURN OM TERUG TE GAAN NAAR HET MENU.' /C008 *.-1 /A008 TEXT '^P^S^P' / CONTINUATION OF TLS1 /A008 TXTLS2, TEXT '&GOUD !&MENU OM TERUG TE GAAN NAAR HET &HOOFMENU.' PMA, TEXT '^P&TYP HET NUMMER VAN DE TE ANNULEREN TOEWIJZING EN DRUK !&RETURN.^P' PRTDMB, TEXT '^P!E !D VERWIJST NU NAAR GEBIED ^A^P' /C008 PRTDMC, TEXT '&WEET U ZEKER DAT U DE TOEWIJZING WILT ANNULEREN (&JA/&NEE).^P'/C008 PRTDME, TEXT '^P!E&NAAM ^A TOEGEWEZEN AAN GEBIED !D.^P' / MOUNT MESSAGES PRC, TEXT '^P!L&TYP NUMMER VAN TOE TE WIJZEN GEBIED EN DRUK OP !&RETURN.^P'/C008 PRTMVB, TEXT '^P!L&TYP NAAM TOE TE WIJZEN GEBIED EN DRUK OP !&RETURN' /C008 IFDEF PASSWD < PRTMVC, TEXT '^P!E&TYP WACHTWOORD VOOR !&LEZEN EN DRUK OP !&RETURN .^P' /C008 PRTMVD, TEXT '^P!E&TYP WACHTWOORD VOOR !&SCHRIJVEN EN DRUK OP !RETURN.^P' > / END IFDEF PASSWD PRTMVE, TEXT '^P!E&NAAM ^A TOEGEWEZEN AAN GEBIED !D.^P' > IFDEF SPANISH < TLS00, TEXT '^P&PULSE !&PROX !&PANTALLA PARA M\AS INFO.,^P!&O ' /A008 TLS1, TEXT '^P&PULSE !&RETORNO PARA VOLVER AL &MEN\Z DE VOLUMEN DE DISCO DURO , '/C008 *.-1 /A008 TEXT '^P^S^P' / CONTINUATION OF TLS1 /A008 TXTLS2, TEXT '!&O &PULSE &DORADA !&MENU PARA VOLVER AL &MEN\Z &PRINC.' PMA, TEXT '^P&TECLEE EL N\ZMERO DE DISPOSITIVO QUE DESEA DESASIGNAR ' *.-1 TEXT 'Y PULSE !&RETORNO^P' PRTDMB, TEXT '^P!E&EL NOMBRE DE VOLUMEN ^A AHORA EST\A' *.-1 TEXT ' ASIGNADO AL &DISPOSITIVO !D^P' /C008 PRTDMC, TEXT '&ES ESTE EL VOLUMEN QUE DESEA DESASIGNAR? (&S O &N)^P' /C008 PRTDME, TEXT '^P!E&SE HA DESASIGNADO EL VOLUMEN ^A DEL &DISPOSITIVO !D.^P' / MOUNT MESSAGES PRC, TEXT '^P!L&TECLEE EL N\ZMERO DE DISPOSITIVO QUE DESEA ASIGNAR Y PULSE ' /C008 *.-1 /A008 TEXT 'RETORNO.^P' / CONTINUATION OF PRC /A008 PRTMVB, TEXT '^P!L&TECLEE EL NOMBRE DEL VOLUMEN QUE DESEA ASIGNAR AL' /C008 *.-1 / CONTINUATION OF PRTMVB /A008 TEXT ' DISPOSITIVO !D ^PY &PULSE !&RETORNO.^P' /A008 IFDEF PASSWD < PRTMVC, PRTMVD, TEXT '^P!E&TECLEE LA CLAVE DE LECTURA/ESCRITURA Y PULSE !&RETORNO.^P' > / END IFDEF PASSWD PRTMVE, TEXT '^P!E&EL NOMBRE DE VOLUMEN ^A ASIGNADO AL DISPOSITIVO !D.^P' > / TEXT ERROR MESSAGES IFDEF ENGLSH < /D008 PRTER1, TEXT '^P^A IS AN ILLEGAL DEVICE NUMBER' /C003 PRTER2, TEXT '^P!E IS NOT ASSIGNED TO A VOLUME. &PRESS !&RETURN' /A008 /D008 PRTER3, TEXT '^P!E^A IS AN ILLEGAL ENTRY. &PLEASE TYPE &Y OR &N.' PRTER4, TEXT '^P&DISK &ERROR. &PLEASE TRY AGAIN.' PRTER5, TEXT '^P!E &DEVICE ^A ALREADY ASSIGNED. &PRESS !&RETURN' /C008 PRTER6, TEXT '^P!E &VOLUME ^A ALREADY ASSIGNED. &PRESS !&RETURN' /C008 PRTER7, TEXT '^P!E &READ/WRITE PASSWORD ERROR. &PRESS !&RETURN' PRTER8, TEXT '^P!E ^A NOT A VOLUME NAME. &PRESS !&RETURN' /C008 PRTER9, TEXT '^P!E &VOLUME ^A IS NOT A &W&P&S-8 VOLUME. &PRESS !&RETURN'/C008 /D008 PRTERA, TEXT '^P !&ERROR ON INPUT..TOO MANY CHARACTERS.' PRTERA, TEXT '^P &CHOOSE 1-7. &PRESS !&RETURN' /A008 > IFDEF ITALIAN < /D008 PRTER1, TEXT '^P^A IS AN ILLEGAL DEVICE NUMBER' /C003 PRTER2, TEXT '^P!E NON DEFINITA. &PREMERE !&RITORNO' /A008 /D008 PRTER3, TEXT '^P!E^A IS AN ILLEGAL ENTRY. &PLEASE TYPE &Y OR &N.' PRTER4, TEXT '^P&ERRORE SU DISCO. &PROVARE ANCORA.' PRTER5, TEXT '^P!E &UNIT\@ ^A GI\@ DEFINITA. &PREMERE !&RITORNO' /C008 PRTER6, TEXT '^P!E &ARCHIVIO DOCUMENTI ^A GI\@ DEFINITO. &PREMERE !&RITORNO' /C008 PRTER7, TEXT '^P!E &ERRORE IN PAROLA CHIAVE. &PREMERE !&RITORNO' PRTER8, TEXT '^P!E ^A NON \H UN NOME DI UN ARCHIVIO. &PREMERE !&RITORNO'/C008 PRTER9, TEXT '^P!E &ARCHIVIO DOCUMENTI ^A NON \H DI TIPO &W&P&S-8. &PREMERE !&RITORNO'/C008 /D008 PRTERA, TEXT '^P !&ERROR ON INPUT..TOO MANY CHARACTERS.' PRTERA, TEXT '^P &SCEGLIERE 1-7. &PREMERE !&RITORNO' /A008 > IFDEF V30NOR < /D008 PRTER1, TEXT '^P^A IS AN ILLEGAL DEVICE NUMBER' /C003 PRTER2, TEXT '^P!E ER IKKE TILDELT ET OMR\EDE.&^S' /A008 /D008 PRTER3, TEXT '^P!E^A IS AN ILLEGAL ENTRY. &PLEASE TYPE &Y OR &N.' PRTER4, TEXT '^P&DISK-FEIL. &PR\XV IGJEN.^S' PRTER5, TEXT '^P!E &ENHET ^A ER ALLEREDE TILDELT. &^S' /C008 PRTER6, TEXT '^P!E &OMR\EDE ^A ER ALLEREDE TILDELT. &^S'/C008 PRTER7, TEXT '^P!E &FEIL I PASSORD . &^S' PRTER8, TEXT '^P!E ^A ER IKKE ET OMR\EDE-NAVN. &^S' /C008 PRTER9, TEXT '^P!E &OMR\EDE ^A ER IKKE ET !&WPS-8-OMR\EDE. &^S'/C008 /D008 PRTERA, TEXT '^P !&ERROR ON INPUT..TOO MANY CHARACTERS.' PRTERA, TEXT '^P &VELG 1-7. &^S' /A008 PRTRYK, TEXT 'TRYKK P\E !&RETUR' > IFDEF V30SWE < /D008 PRTER1, TEXT '^P^A IS AN ILLEGAL DEVICE NUMBER' /C003 PRTER2, TEXT '^P!E \OR INTE TILLDELAT EN VOLYM. &^S' /A008 /D008 PRTER3, TEXT '^P!E^A IS AN ILLEGAL ENTRY. &PLEASE TYPE &Y OR &N.' PRTER4, TEXT '^P&FEL P\E MINNE - &FVRSVK IGEN!' PRTER5, TEXT '^P!E &ENHET ^A \DR REDAN TILLDELAD. &^S' /C008 PRTER6, TEXT '^P!E &VOLYM ^A \DR REDAN TILLDELAD. &^S' /C008 PRTER7, TEXT '^P!E &L\DS/SKRIV-FEL FVR LVSENORD. &^S' PRTER8, TEXT '^P!E ^A \DR INTE ETT VOLYMNAMN. &^S' /C008 PRTER9, TEXT '^P!E &VOLYMEN ^A \DR INTE EN "&W&P&S-8"-VOLYM. &^S'/C008 /D008 PRTERA, TEXT '^P !&ERROR ON INPUT..TOO MANY CHARACTERS.' PRTERA, TEXT '^P &V\DLJ 1-7. &^S' /A008 PRTRYK, TEXT 'TRYCK P\E RETUR' > IFDEF DUTCH < PRTER2, TEXT '^P!E IS NIET TOEGEWEZEN AAN EEN GEBIED. DRUK OP !&RETURN.'/A008 PRTER4, TEXT '^P&SCHIJFFOUT &PROBEER OPNIEUW.' PRTER5, TEXT '^P!E &GEBIED ^A IS AL TOEGEWEZEN. &DRUK OP !&RETURN' /C008 PRTER6, TEXT '^P!E &GEBIED ^A IS AL TOEGEWEZEN. &DRUK OP !&RETURN' /C008 PRTER7, TEXT '^P!E &WACHTWOORD ONJUIST.&DRUK OP !&RETURN.' PRTER8, TEXT '^P!E ^A IS GEEN GEBIEDSNAAM. &DRUK OP !&RETURN.' /C008 PRTER9, TEXT '^P!E &GEBIED ^A IS GEEN &W&P&S-8 GEBIED. &DRUK OP !&RETURN'/C008 PRTERA, TEXT '^P &KIES 1-7. &DRUK OP !&RETURN' /A008 > IFDEF SPANISH < PRTER2, TEXT '^P!E NO SE HA ASIGNADO AL VOLUMEN. ^S' /A008 PRTER4, TEXT '^P&ERROR DE DOSCO. &INT\INTELO OTRA VEZ.' PRTER5, TEXT '^P!E &EL DISPOSITIVO ^A YA EST\A ASIGNADO. ^S' /C008 PRTER6, TEXT '^P!E &EL VOLUMEN ^A YA EST\A ASIGNADO.^S' /C008 PRTER7, TEXT '^P!E &ERROR DE CLAVE . ^S' PRTER8, TEXT '^P!E ^A NO UN NOMBRE DE VOLUMEN. ^S' /C008 PRTER9, TEXT '^P!E &EL VOLUMEN ^A NO ES UN VOLUMEN &W&P&S-8. ^S'/C008 PRTERA, TEXT '^P &SELECCIONE 1-7. ^S' /A008 PULSE, TEXT '&PULSE !&RETORNO' > /D008 TEXTG1, TEXT '^P^S^P' / GENERAL 1 SUBSTRING CONTROL STRING PSCR, TEXT '^P!E' / CLEAR SCREEN / BUFFER AREAS MVLCHQ, -107 / -NUM CHARS +1 MVLCHR, 0 / LAST CHAR ENTERED PRVTBL, 0 ZBLOCK 105 0 / TERMINATOR DECIMAL VOLSAR, ZBLOCK 9 / STORED VOL NAME IN ASCII VOLTB2, 0 / MOUNTED VOLUME BLOCK BUFFER ZBLOCK 193 / 8 VOLS * 24 WORDS PER VOL VLEND2, 0 / END 2 VOLTBL, 0 / VOLUME DIR TABLE ZBLOCK 1440 /60 VOLS * 24 WORDS PER VOL VLTBLE, 0 / END ALL OCTAL PTLN50, ZBLOCK 31 / ARRAY FOR "SYSTEM MODIFIED STARTUP" TEXT/A008 VOLEND=. /