/CPYFIL (COPY FILE) MAINTENCE COMMAND TO COPY DOCUMENTS / .VERSION / / / / COPYRIGHT (C) 1983 / DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754 / / THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED / ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE / INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER / COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY / OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY / TRANSFERRED. / / THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE / AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT / CORPORATION. / / DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS / SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. / /++ / FACILITY: / / ABSTRACT: / / ENVIRONMENT: / / AUTHOR: GEORGE PANOS CREATION DATE: OCTOBER 31,1981 / /-- / /************************************************************************ / EDIT HISTORY /*************************************************************************** / / 046 EMcD 11-Sep-85 Add Nordic translations / conditionalised / 045 MART 02-AUG-85 FIX ITALIAN assembly bugs / 044 EJL 12-OCT-84 fix COPY ONE, COPY ALL copying / wrong file / 043 WCE 18-SEP-84 Change #'s to NUMBER in text messages / 042 DFB 24-AUG-84 Fix bug due to hard wired references / 041 WJY 07-AUG-84 Change "Not enough room..." error message / to reflect the possibility of a non-init / diskette (volume). Bug WPSV2-96. / 040 WCE 30-OCT-83 CHANGED CHRCNT TAG TO CHARCT / 039 WJY 27-SEP-83 DM II V1.5 WINCHESTER SUPPORT / *note* The term area has been replaced / by device. Since device is already used / in another context, I left the term area / in the comments & only changed TEXT statements / 038 HLP 23-SEP-83 Fix bug induced V10J when copy one by / number it thinks has no name / 037 HLP 01-SEP-83 QAR EZ-59 number over 200 in index doc / GENERAL CLEANUP & SOME RECONSTRUCTION / THRU TO SAVE SPACE FOR THE ABOVE FIXES / ADDED SCREEN FOR ILLEGAL DOCUMENT NUMBER / 19-SEP-83 REWORDED SCREEN TO SHOW THAT TYPING RETURN / TO A NUMBERED DOCUMENT ASSIGNS A NEW NUMBER / 036 HLP 07-SEP-83 Replace SOTFL with 100; VALUE, thus / eliminating the need for WPSRDF / in MASTER.INF / 035 WCE 19-JUL-83 Modify labels for new prefix file / 034 DFB 26-MAY-83 Fix copy one doc msg / 033 DFB 19-MAY-83 Fix to pass TBOE menu when input drive / =output drive. Go to "E"nter / 032 GJP 12-JAN-83 save and restore names of documents / when user types command keys when / copying docs and no room on diskette / 031 GJP 22-DEC-82 CAN'T COPY NUMBERED DOC BUG / 030 AIB 14-DEC-82 conditionalize "Rubout key" messages / 029 GJP 10-DEC-82 Clear out default drive and document / number upon returnn to Main Menu / 028 GJP 30-NOV-82 MAKE SURE WE'RE REPLACING DRIVE 0 / 027 GJP 29-NOV-82 TYPING GARGAGE HAS NO MEANING / 026 GJP 23-NOV-82 ERASE LINE FROM SCREEN ON ERROR / 025 GJP 18-NOV-82 FIX COPY ONE BY NUMBER / 024 GJP 17-NOV-82 REMOVE NOMEANING BUG (TOO LONG) / 023 GJP 12-NOV-82 FIX 'THEN PRESS RETURN' BUG / 022 GJP 10-NOV-82 CAN'T FIND DOC NAME AFTER HITTING GOLD KEYS / 021 GJP 09-NOV-82 FIX UP COSMETIC MESSAGES / 020 GJP 5-NOV-82 FIX SCREWS UP INDEX DOC ON COPY ONE / 019 GJP 26-OCT-82 FIX BUG THAT WILL NOT COPY NUMBERED DOC / 018 GJP 22-OCT-82 NO DISKETTE IN DRIVE-WRONG MESSAGE / 017 GJP 21-OCT-82 FIX UP ERROR MESSAGES / 016 GJP 21-OCT-82 REMOVE ADDITIONAL LINE ON ERROR MESS / 015 GJP 21-OCT-82 FIX ERASURE OF VALUE IN INBUF / 014 GJP 20-OCT-82 FIX WON'T OVERWRITE WITH LESS THAN 8-BLOCKS / 013 GJP 20-OCT-82 FIX ERASURE OF NAME ON WRONG INPUT / 012 GJP 10-OCT-82 FIX PRES RETURN TO RECALL MAIN MENU BUG / 011 GJP 05-OCT-82 FIX GOLD MENU RETURN / 010 AIB 29-SEP-82 changed RUB CHAR, RUB WORD to Rubout / 009 GDH 30-MAR-82 (another) fix to CREATE ordering. / 008 DFB 26-MAR-82 Write out dir block after copy / 007 GJP 22-MAR-82 Put code to display name to user / 006 GJP 19-MAR-82 Fixed no-name in index bug / 005 GDH 11-MAR-82 Fixed "create" ordering. / 004 GJP 2-MAR-82 FIX COPY ALL BAD FILE NAME BUG / 003 GJP 28-FEB-82 MAKE ROOM FOR ADDITIONAL FUNCTIONALITY / 002 GDH 08-JAN-82 Implemented "read error detection". / 001 PHA 21-JAN-82 CORRECTS LOSS OF HDR INFO DURING COPY / WRITE OUT COPY FILE UTITLITY FIELD 0 *200 JMP I .+3 JMP I .+1 7600 RXLOAD *RXLDLS RXEWT=4 RXEWT 0 RXQBLK=11 RXQBLK . DLCPFL;100;CDF 30;-17 0 / CPYFIL.PA - COPY FILE UTILITY FIELD 3 /D036 *SOTFL *100 / THE FIRST 100 LOCATIONS CONTAIN COMMON SYSTEM CONSTANTS / (E.G. P177, ETCETERA.) VALUE, 0 TABLE, 0 / AREA TO SUPPORT DECIMAL CONVERSION DPREC, 0 / DECIMAL CONVERSION PRECISION COUNT FOR DEC CONVERT DPREC1, 0 / SIGNIFICANCE STARTER FOR DECIMAL CONVERSION RTNE CDFMYF=CDFEDT / BELOW ARE A BUNCH OF SAVE AREAS USED BY THIS PROGRAM STATUS, 0 / STATUS OF THE DOCUMENT. 0=EXISTS, -1=DOESN'T EXIST CPYCHR, 0 / HOLDS THE CHARACTER BEING COPIED WHEN / CHECKING FOR GOLD HALT. OPTION, 0 / OPTION THE USER WANTS, TOP,BOTTOM,OVERWRITE / -1=OVERWRITE DOC, 0=WRITE TO TOP, 1=WRITE TO BOTTOM SVIDCN, 0 / HOLDS THE INPUT DOCUMENT NUMBER SVODCN, 0 / HOLDS THE OUTPUT DOCUMENT NUMBER SVIFNO, 0 / FILE ID OF INPUT, DRIVE + FILE NO SVOFNO, 0 / FILE ID OF OUTPUT SVISIZ, 0 / SIZE OF INPUT DOCUMENT SVOSIZ, 0 / SIZE OF OUTPUT DOCUMENT TODRV, 0 / HOLDS THE DRIVE NUMBER WE'RE COPYING TO FROMDR, 0 / HOLDS THE DRIVE NUMBER WE'RE COPYING FROM OSXTY, 60 / TO MAKE ASCII NUMBERS WITH DISKID, 0 / HOLDS THE DISK ID OF THE SYSTEM DISKETTE RSIGN, 0 / HOLDS THE SIGNAL THAT WE WANT TO COPY BY NAME ONLY COPYTP, 0 / HOLDS THE TYPE OF COPY WE'RE DOING / 1=COPY ONE, 2=COPY SOME, 3=COPY ALL SIGNL, 0 / SIGNAL TO TELL US WE'RE DOING NUMBERED DOCUMENTS DRVNBR, 0 / SAVE DRIVE NUMBER WHEN DOING COPY ONE DCNBR, 0 / SAVE THE DOCUMENT NUMBER WHEN DOING COPY ONE PERIOD, 56 / A PERIOD. SVIDCH, 0 / HOLDS THE INPUT DOCUMENT HEADER BLOCK NUMBER HBLSIG, 0 / SIGNAL THAT THE HOME BLOCK HAS BEEN READ 1=READ M44, -44 / NUMBER OF WORDS TO MOVE FROM HEADER TO NEW DOCUMENT HDR / THIS IS USED FOR LOOP CONTROL IN MOVING THE HEADER WORDS / OF DATES, TIMES, RULERS, ETC TO THE NEW DOC HEADER FOUR, 4 / WHERE TO BEGIN MOVING WORDS FROM HDR TO HDR NINE, 11 / WHERE IN HDR TO PUT THE DOCUMENT NUMBER / HDRBLK, 0 /HEADER BLOCK NUMBER OF DOCUMENT TO BE COPIED /A001 MSEVN, -7 / CONSTANT OF MINUS 7 MSPACE, -40 / SPACE TO CHECK FOR A SPACE /A004 SEVEN, 7 / CONSTANT OF 7 (USED TO ELIMINATE WORD WRAPS) INBUF2=INBUF+1 / CONSTANT OF INBUF +1 FOR CHECKING LENGTH /A006 MSTRLN, -STRLEN / NEG OF STRING LENGTH, USED FOR LOOP CONTROL PLT, LT / LEFT ANGLE BRACKET MLT, -LT / NEG OF LEFT ANGLE BRACKET, TO REVERSE WHEN CHECKING / FOR LEFT ANGLE BRACKET SFTRET, -2012 / A SOFT RETURN CHAR (TO CHECK FOR THEM) WWRAPB, 2012-2040 / A WORD WRAP BLANK (TO CHECK FOR THEM AFTER CHKING FOR / WD WRP CHAR) PWWRPB, 2040 / POS WORD WRAP BLANK FOR RESTORING CHARACTERS DCNBRS=200 / LOCATION IN BUFFER FIELD WHERE FILE NUMBERS ARE STORED/A003 FLNBRS, DCNBRS-1 / WHERE FILE NUMBERS ARE IN BUFFER (FOR INDEX) /A003 M512, -1000 / CONSTANT OF -512 (OCTAL) /A007 ONE, 1 / CONSTANT OF 1 (OCTAL) /A007 SIGNL2, 0 / SIGNAL THAT THE USER WANTS TO COPY DOC ON COPY SOME /A007 SIGNL3, 0 / SIGNAL THAT THE USER GAVE DOC A NAME ON COPY SOME /A007 DOCSIG, 0 / SIGNAL THAT ROTINE 'DTAO' ROUTINE IS USING 'READMU' /A023 /M017 MOVED HERE FOR SPACE REASONS ERSTAT, 0000 /TYPE OF CREATE ERROR MESSAGE TO DISPLAY /0 = GENERAL CANNOT CREATE /1 = DOC # OUT OF RANGE /2 = NO DOCS AVAILABLE LSTSIZ, 0 /SIZE OF INPUT FILE OVRSPCE, 0 /SIZE OF RESULT FILE 0 WHEN ADDING TO TOP OR BOTTOM TOPSC, PTOPSC / ADDED FOR SPACE REASONS /A018 MDOCFS, 0 / MINUS (NEGATIVE) NUMBER OF DOCS IN FILE SYSTEM /A037 NDOCFS, 0 / (POSITIVE) NUMBER OF DOCS IN FILE SYSTEM /A037 IDNCNT, 0 / ILLEGAL DOCUMENT NUMBER COUNT /A037 IDNTMP, 0 / ILLEGAL DOCUMENT NUMBER TEMP /A037 DSTMED, 0 / PTR. TO THE MEDIA TYPE STRING ('DISKETTE'or'VOLUME') /A039 WINSRC, 0 / FLAG INDICATING FROM DRIVE IS A WINNIE AREA /A039 / IF = 0 NOT A WINNIE, IF .GT. 0 IT IS THE WINNIE AREA #/A039 WINDST, 0 / SAME AS ABOVE FOR TO DRIVE /A039 WINONE, 0 / TRUTH FLAG INDICATING DEVICE # 1 IS A WINNIE AREA /A039 /---------------------- PAGE BELL= 7 / BACKSP= 10 / TAB= 11 / TAB CHARACTER FF= 14 / FORM FEED LT= 74 / LEFT ANGLE BRACKET LF= 12 / CR= 15 / KVTWIDTH=121 / 81(10) IS THE WIDTH OF A LINE OF THE VT SREXT=10 /ADDED TO SIZE OF LIST DOC DURING SIZING TO ALLOW 8(10) EXTRA /BLOCKS /D042 MUIOFF=MUBUF+MNSYSA+4 / LOCATION OF MENU BUFFER OFFSET /D042 MUISTR=MUBUF+MNIBUF / BUFFER ADDR OF WHERE WP2CMF'S 'READ' AND / 'FILNAM' COMMANDS READ INTO A FROM. ADRASM= 0 /THIS ASSEMBLES THE CREATE MODULE SO IT WILL NOT /TRY TO DISPLAY ERROR MESSAGES BUT SET THE AC FOR /A PARTICULAR MESSAGE SO WPSTPR DISPLAYS APPROPRIATE /MESSAGE ON CREATE ERROR /WE GET HERE AFTER HITTING MC-C-X-# WHERE X IS {A,S,O} AND /A037 /N IS THE DRIVE NUMBER THAT CONTAINS THE SOURCE DISK /A037 /THE MENU FOR THE INSTRUCTIONS TO REMOVE THE SYSTEM DISK IS DONE /A037 /WITHIN THIS MODULE. WHY? SO THAT WE ARE GUARANTEED TO HAVE /A037 /CPYFIL LOADED BY THE TIME THE USER SEES THE TEXT ON THE SCREEN /A037 /WHICH TELLS HIM THAT HE MAY REMOVE THE SYSTEM DISK /A037 /THIS MAY BE DONE MORE EFFICIENTLY IN THE FUTURE WITH A MENU CALL...HLP /A037 CPYFIL, XX /FIRST GET THE DISK ID OF THE SYSTEM DISK SO WE CAN MAKE SURE THE SAME /SYSTEM DISK IS INSERTED WHEN WE LEAVE CPYFIL TO RETURN TO MAIN MENU JMS GTDKID / GET DISK ID DCA DISKID / SAVE IT DCA IDNCNT / CLEAR THE ILLEGAL DOCUMENT NUMBER COUNT/A037 / THIS SECTION GETS ALL THE PARAMETERS PASSED INITIALLY BY THE USER / IT GETS THE TO AND FROM DRIVES AND IF NECESSARY TELLS THE USER TO REMOVE / THE SYSTEM DISKETTE AND INSERT THE DISKETTE THAT EITHER WILL RECEIVE / THE DOCUMNTS OR FROM WHICH DOCUMENTS WILL BE COPIED. / THE PARAMETERS THAT ARE PASSED ARE THE COPY TYPE WE'RE DOING (1=COPY / ONE DOCUMENT, 2=COPY SOME OF THE DOCUMENTS, 3=COPY ALL OF THE DOCUMENTS) / AND THE DRIVE NUMBERS THAT WE'RE COPYING FROM AND TO. CDFMNU TAD I (MUBUF+MNTMP1) / GET THE COPY TYPE:1=ONE, 2=SOME, 3=ALL DCA COPYTP / SAVE IT FOR FUTURE USE TAD I (MUBUF+MNTMP4) / GET THE DRIVE WE'RE COPYING FROM DCA FROMDR / SAVE IT TAD I (MUBUF+MNTMP5) / GET THE DRIVE WE'RE COPYING TO DCA TODRV / SAVE IT JMP WINCHK / GO SEE IF WE'RE ON A WINNIE SYSTEM /A039 WINRET, / WINCHK ROUTINE IS IN 2 PIECES FOR /A039 / SPACE REASONS, SO WE ARE USING JUMPS /A039 /D039 CDFMYF DCA DSTMED / CDF IS DONE IN WINCHK RTNE., ADDRESS /A039 / OF "DISKETTE" OR "VOLUME" LEFT IN AC /A039 TAD TODRV / GET THE 'TO' DRIVE SNA CLA / IF ZERO, THEN SYSTEM DRIVE IS RECEIVING DRV JMP RCVING / GO ASK HIM TO REMOVE THE SYSTEM DRIVE TAD FROMDR / GET THE DRVIE NO WE'RE COPYING FROM SZA CLA / IF NON-ZERO, THEN NOT SYSTEM DRIVE JMP GOBCK / DON'T ASK FOR SYSTEM DRIVE TAD (COPYF / GET ADDRESS OF "CONTAINS" GODISP, / GO DISPLAY MESSAGE JMS DISP1 / GO DISPLAY GOBCK, JMP CUGSP / RCVING, TAD (RECEV / GET ADDRESS OF "TO RECEIVE" JMP GODISP / GO DISPLAY IT CUGSP, / PROMPT FOR COPY DOC NAME DCA RSIGN / CLEAR 'NAME ONLY' SIGNAL /M031 AC7777 / SEE WHAT TYPE OF COPY WE'RE DOING TAD COPYTP / ARE WE DOING A COPY ONE? SZA CLA / YES, THEN PROCEED JMP CPYSAL / GO PROCESS A COPY SOME OR COPY ALL / WE ARE DOING A COPY ONE AT A TIME DCA SIGNL / CLEAR 'DOING NUMBERED DOCUMENT' SIGNAL MQL AC0002 / SIGNAL MAIN MENU NOT DO FILNAM THIS TIME JMS STTMPS / GO SET UP FOR MAIN MENU CALL /ASK THE USER THE NAME OR NUMBER OF THE DOCUMENT /HE WISHES TO COPY JMS I TOPSC / GO ERASE AND DISP '--COPY DOCUMENT--' /A018 CIFMNU JMS I IOACAL 0 TXCS2 / G. P. TWO SUBSTRINGS /A037 1505 SPRMPT / "PLEASE ENTER THE NAME OR .. NOW WISH /C037 1605 / POSITION FOR A NEW LINE /M037 NARG / NULL ARGUMENT FOR A NEW LINE JMS APRORG / "AND PRESS RETURN OR GOLD MENU /A037 JMS READMU / PROCESS INPUT FROM MENU JMP GOLDMU / RETURN TO MM CDFMYF / READMU LEAVES DATA FIELD AT MENU JMS HMBLCK / GO GET HOME BLOCK INTO MAIN MEMORY JMS CPMNOV / GO COPY INPUT FROM MENU FLD TO CHECK IT JMS CKINPT / GO SEE WHAT WAS PUT IN JMP CUGSP / HE HIT RETURN JMP NMNING / NO MEANING TO WHAT HE PUT IN CUGSP1, CLA / MEANING TAD FROMDR / GET THE FROM DRIVE NBR TAD OSXTY / MAKE IT AN ASCII NUMBER JMS FIXNAM / GO SET UP THE NAME JMS CSTUFF / SUBROUTINE INVENTED TO SAVE SPACE /A037 MQL / Store number passed / A44 CUGSP2, TAD DCNBR / If DCNBR is zero we are doing / copy one. If non zero don't use / number passed. It can return a wrong / value if the filename lookup is a / subset of an existing name. This / should be fixed at the filename lookup / routine and not here..but thats field test / for you. SNA / A44 ACL / COPY ONE. used number passed by cstuff/ A44 / UPDATE menu locations so right / document number is being used. DCA SVIDCN / SAVE IT FOR FUTURE USE TAD I (MUBUF+MNFNO) / GET THE FILE ID AND (7400 / re-building menu words / A44 TAD SVIDCN / " " " " / A44 DCA SVIFNO / SAVE IT FOR FUTURE USE TAD SVIFNO /re-building menu words DCA I (MUBUF+MNFNO / / A44 CDFMYF / GET BACK TO THIS FIELD AC7777 TAD COPYTP / ONLY IF IT'S A COPY ONE... /A001 SNA CLA JMS FIXONE / FIND ITS HEADER BLK # /A001 TAD STATUS / GET THE STATUS SMA CLA JMP CTDIN / CONTINUE IF FILE EXISTS JMS NDERR / COMPLAIN THAT IT DOESN'T EXIST INBUF+1 / WHERE FILE NAME EXISTS, ALTERRED BY 'FIXNAME RTN JMP CUGSP / GO ASK FOR ANOTHER CTDIN, TAD SIGNL / ARE WE DOING A NUMBERED FILE? SZA CLA / NO, CONTINUE... JMP CTDIN3 / YES /C037 CTDIN2, / RETURN POINT AFTER NUMBER IS SET UP FOR FILNAM JMS GTNAM / GO GET FULL NAME OF DOCUMENT IF DOING COPY ONE TAD TODRV / GET THE TO DRIVE NBR TAD OSXTY / MAKE IT AN ASCII NUMBER CDFMNU / CHANGE TO MENU FIELD DCA I (MUBUF+MNIBUF / PUT DRIVE NUMBER AT MNIBUF /C042 TAD (MUBUF+MNIBUF / GET ADDRESS OF MENU STRING /C042 DCA I (MUBUF+MNPOS / PUT ADDR OF MENU STRING INTO MENU OFFSET/C042 CDFMYF JMP CTDIN1 CTDIN3, TAD SVIDCN / GET DOCUMENT NUMBER /A037 DCA DCNBR / PUT IT WHERE ASKNM CAN DISPLAY IT /A037 JMP MVNBR / GO TELL USER DOCUMENT HAS NO NAME /A037 GOLDMU, / WHERE THINGS COME ON GOLD MENU CDFMNU /A029 DCA I (MUBUF+MNFNO) / CLEAR OUT DEFAULT DOC AND DRV NUMBER /A029 CDFMYF /A029 JMS REPLC / GO GET THE SYSTEM DISKETTE BACK UP /D035 RETURN, DCA SIGNL / CLEAR THE 'DOING NUMBERED FILES' SIGNAL CDIMNU /A037 JMP I CPYFIL /-------------------- PAGE /DOCUMENT EXISTS ALREDY ON THE OUTPUT DRIVE SO DISPLAY TAO PROMPT DTAO, XX DTAO1, /A018 AC7777 / SIGNAL READMU ROUTINE TO RETURN HERE ON /A023 DCA DOCSIG / INCORRECT INPUT BY USER /A023 JMS I TOPSC / GO ERASE AND DISP '--COPY DOCUMENT--' /A018 CIFMNU JMS I IOACAL 0 DEXTS /ADDRESS OF TEXT STRING 305 /POSITION FIRST LINE ON SECOND ROW 5 COLUMN SVODCN / OUTPUT DOCUMENT NUMBER TAD SIGNL / CHECK TO SEE IF ITS NUMBER ONLY SMA CLA JMS DONAME / THERE IS A NAME TO IT, GO DISPLAY IT CIFMNU JMS I IOACAL 0 DREST 705 1105 1305 1505 1705 2105 2305 JMS ORGOLD ORAR JMS MVCPIN / GO SAVE NAME OF DOCUMENT IN CASE OF ERROR /A012 JMS READMU /READ INPUT FROM MENU MODULE JMP GOLDMU /GOLD M SO ASK FOR SYSTEM DISKETTE CDFMYF /CHANGE DATA FIELD TO MINE SMA /IF AC NEGATIVE INAPPROPRIATE INPUT JMP STORE /IF APPROPRIATE CONTINUE IAC / LETS SEE IF WE CAME FROM RTNWT /A023 SZA CLA / IF ZERO HERE WE CAME FORM MAIN MENU /A023 JMP DTAO1 / JUST A RETURN /A023 / CPMSGA -- SAVES THE NAME OF THE DOCUMENT BEING COPIED WHEN /A012 / THE USER TYPES IN THE WRONG THING /A012 / /A012 JMS MVINPT / COPY INPUT FROM MENU FIELD /A037 JMS NOMEAN / DISPLAY TYPING '' HAS NO MEANING HERE /A037 JMS COPOVR /A012 JMP DTAO1 /ASK AGAIN STORE, DCA OPTION /STORE THE OPTION WANTED DCA DOCSIG / CLEAR SIGNAL TO RETURN HERE ON INCORRECT INPUT/A023 JMP I DTAO /RETURN /********************************************************************** / / THIS CODE HANDLES COPY SOME AND COPY ALL OPERATIONS. / IT WILL FIRST GET FILE NAMES FROM THE INDEX DOCUMENT / AND COPY THEM OVER THEN IT WILL PROCEED TO COPY OVER THE / UNNAMED DOCUMENTS. IF A COPY SOME OPERATION, IT WILL DISPLAY / THE NAME TO THE USER AND ASK HIM IF HE WANTS TO COPY IT. / /************************************************************************** CPYSAL, DCA IDNTMP / CLEAR TEMPORARY IDN COUNT /A037 JMS HMBLCK / GO GET THE HOME BLOCK IN TO MEMORY AC0004 / SIGNAL MAIN MENU WE'VE GOT THE FILE CDFMNU DCA I (MUBUF+MNTMP3) TAD (MUBUF+MNIBUF / RE-INITALIZE MUISTR FOR 'FILNAM' RTNE/C042 DCA I (MUBUF+MNPOS / INITIALIZE IT /C042 CDFMYF TAD SIGNL / GET INDEX END OF FILE SIGNAL SZA CLA / IS IT ON? JMP CPYSL3 / YES, GO PROCESS NAMELESS DOCUMENTS TAD FROMDR / GET THE DRIVE NUMBER WE'RE COPYING FROM BSW CLL RTL / SET UP DRIVE AND FILE NBR FOR OPEN IAC / INDEX FILE= FILE 1 JMS OPENRD / GO OPEN THE FILE FOR READING CPYSL1, CLA JMS GTLIST / GET A FILE NUMBER FROM INDEX FILE JMP CPYSL3 / END OF INDEX FILE TAD MDOCFS / SEE IF A LEGAL DOCUMENT NUMBER /A037 SMA SZA / /A037 JMP CPYSL6 / NOT A LEGAL DOCUMENT NUMBER /A037 TAD NDOCFS / RESTORE DOCUMENT NUMBER /A037 JMS MKNBR / GO CHECK IF FILE HAS BEEN DONE JMP CPYSL1 / YES IT HAS BEEN DONE AC7776 / CHECK WHAT SORT OF COPY WE'RE DOING TAD COPYTP / IS IT A COPY SOME? SNA CLA JMP CPYSL2 / WE ARE DOING COPY SOME JMP CUGSP1 / WE'RE DOING COPY ALL, GO COPY IT CPYSL2, TAD T2 / GET THE FILE NUMBER FOR DISPLAY JMS CPWISH / GO DISPLAY IT INBUF+1 / THE NAME OF THE FILE JMP CUGSP1 / HE PRESSED YES CPYSL6, / ILLEGAL DOCUMENT NUMBER DETECTED /A037 CLA / CLEAR ILLEGAL EXCESS /A037 TAD IDNCNT / GET COUNT OF ILLEGAL DOC NOS /A037 CIA / SO WE CAN DETERMIN IF WE HAVE /A037 TAD IDNTMP / TOLD USER ABOUT THIS INVALID /A037 SZA CLA / INDEX DOCUMENT ENTRY /A037 JMP CPYSL8 / ... WE ALREAD TOLD HIM ONCE! /A037 ISZ IDNCNT / COUNT THIS INVALID ENTRY /A037 JMS I TOPSC / CLA, ERASE AND INITALIZE SCREEN /A037 CIFMNU /A037 JMS I IOACAL /A037 0 /A037 TXTIDN / "DOCUMENT ^A HAS AN ILLEGAL DOCUMENT NUMBER 1305 / SCREEN POSITION /A037 INBUF+1 / ADDRESS OF THE NAME OF THE DOCUMENT /A037 1505 / POSITION OF SUBSTRING /A037 TXTID1 / "HAS AN ILLEGAL DOCUMENT NUMBER /A037 CPYSL7, TAD (1700) / POSITION TO ERASE FROM /A037 JMS ERASE / ERASE ANY ..YOU TYPED GARBAGE /A037 CIFMNU / /A037 JMS I IOACAL / /A037 0 /A037 TXCS1 / G. P. CONTROL STRING ONE /A037 2305 / POSITION /A037 TXPRCN / "PRESS RETURN TO CONINUE..." /A037 JMS ORGOLD / "OR PRESS GOLD MENU TO RETURN TO MM /A037 ORAR / /A037 JMS ASK / GET RESPONSE /A037 JMP GOLDMU / GOLD MENU /A037 JMP CPYSL7 / NO MEANING--REPAINT /A037 / RETURN--CONTINUE /A037 CPYSL8, ISZ IDNTMP / BUMP TEMPORARY COUNTER /A037 JMP CPYSL1 / HE HIT RETURN. GO TO NEXT DOC /A037 /----------------- PAGE / LOGIC REWRITTEN BELOW TO SAVE 2 LOCS. /A039 CRERR, AC7776 / GET -2 IN AC /A039 TAD ERSTAT / ADD IN ERSTAT /A039 SNA CLA / IF ERSTAT .NE. 2 THEN SKIP /A039 JMP NSPCMSG / ELSE WAS 2, DISPLAY NO SPACE FOR DOC MSG /A039 TAD ERSTAT / GET BACK ERROR STATUS /A039 SZA CLA / IF STATUS=0 THEN DISPLAY SHORT MESSAGE /A039 JMP WRGMSG / ELSE DISP WRONG DOC # MSG /A039 STMSG, /C017 TAD CUB1 /A017 TAD P377 /A017 SZA CLA /A017 JMP NOTINT / NON INITIALIZED DIKSETTE /A017 TAD CUB1+1 / GET HOME BLOCK ID /A017 AND (6077) / STRIP OFF VERSION NBR /A017 CIA / COMPARE IT /A017 TAD (30) / CHECK OR VALID HOME BLOCK /A017 SZA CLA /A017 JMP NOTINT / NOT INITIALIZED, GO COMPLAIN /A017 TAD (CNRG) /GET NO DISPLAY ARGUMENT JMS CREMSG /GO TO DISPLAY CREATE ERROR MESSAGE /C017 JMP PRETRN /A017 NOTINT, /A039 TAD DSTMED / PTR TO "DISKETTE" OR "VOLUME" TEXT /A039 DCA CRMED / PUT INTO IOACAL PARM LIST /A039 JMP NOTIN1 /A039 WRGMSG, TAD (WNUM) /GET WRONG DOCUMENT NUMBER ARGUMENT JMS CREMSG /GO TO DISPLAY CREATE ERROR MESSAGE /C017 JMP PRETRN /A017 NSPCMSG,TAD (NMDC-NONIN)/ GET NO DOCUMENTS AVAILABLE ARGUMENT /C037 NOTIN1, / NOT INITIALIZED /C037/C039 TAD (NONIN) / GENERATE THE CORRECT MESSAGE POINTER /A037 JMS CREMSG /GO TO DISPLAY CREATE ERROR MESSAGE /C017 PGOLD, JMS ORGOLD / ENTRY POINT FOR UNASSIGNED WINNIE ERROR RET /A017/C039 NARG /A017 JMS KBRD /A017 JMP GOLDMU /A017 CREMSG, XX /C017 DCA CRMSG /STORE APPROPRIATE MESSAGE ARGUMENT FOR DISPLAY /C017 CRMSG1, /A018 JMS I TOPSC / GO ERASE AND DISP '--COPY DOCUMENT--' /A018 JMS RBELL CIFMNU JMS I IOACAL 0 CNTCRE /DISPLAY CANNOT CREATE DOCUMENT 1505 /ON LINE 15 COLUMN 5 CIFMNU JMS I IOACAL 0 CRMSG, 0000 /DISPLAY DOC # OUT OF RANGE, OR NO MORE DOCS 1605 CRMED, NOP / WHEN ERROR IS "NOT INITIALIZED" THIS LOCATION /A039 / WILL HAVE "DISKETTE" OR "VOLUME" TEXT /A039 / FOR ALL OTHERS THE NOP WILL BE EXECUTED ON /A039 / RETURN FROM IOA /A039 JMP I CREMSG /A017 PRETRN, /A017 CIFMNU /CHANGE INSTRUCTION FIELD TO MENU JMS I IOACAL /CALL IOA 0 TARTN /DISPLAY PRESS RETURN TO TRY ANOTHER NAME 2005 /LINE TO DISPLAY JMS ORGOLD /DISPLAY PRESS GOLD M ORAR /DISPLAY OR JMS ASK / GET RESPONSE /C037 JMP GOLDMU / GOLD MENU /A037 JMP CRERR / GARBAGE--REPAINT /C037 JMP MVNBR / RETURN--REASK ABOUT NUMBERED DOC /C037 /THIS ROUTINE READS INPUT IN RESPONSE TO ERROR MESSAGES WHICH REQUEST A RETURN /WHEN RETURN IS TYPED RETURN TO USER IF NOT RING BELL AND COMPLAIN AGAIN /CALLED BY JMS RTNWT;WRONG RETURN;OK RETURN RTNWT, XX TAD INBUF / GET NEG NBR OF LENGTH OF INPUT /A023 DCA CUPBF0+STRLEN / PUT IT IN FRONT OF BUFFER AREA /A023 CIFMNU JMS I INACAL CUPBF0+STRLEN /INPUT BUFFER TO RECEIVE INPUT /C023 JMP WRNG /GOLD KEY RING BELL COMPLAIN AGAIN CLA MQA /MQ HAS # OF CHARS IF NOT 0 THEN NOT RETURN SZA CLA /SEE IF IT IS 0 JMP WRNG /IF NOT RETURN RING BELL COMPLAIN AGAIN ISZ RTNWT /MUST BE RETURN SO INCREMENT FOR OK RETURN JMP .+2 /RETURN TO CALLER /C015 WRNG, JMS RBELL /RING BELL JMP I RTNWT /RETURN TO CALLER TO COMPLAIN AGAIN /********************************************************************* / / THIS ROUTINE WILL CHECK TO SEE IF THE FILE NUMBER THAT IS / PASSED TO IT IN THE AC HAS BEEN COPIED ALREADY. IF IT HAS, / IT RETURNS TO THE NEXT SEQUENTIAL INSTRUCTION AFTER THE / RETURN ADDRESS. IF IT HASN'T, IT MARKS IT AS HAVING BEEN DONE / BUMPS UP THE RETURN ADDRESS, AND THEN RETURNS. / CALL IT SO: / JMS MKNBR / ADDRESS TO COME TO IF THE FILE HAS BEEN COPIED / ADDRESS TO RETURN TO IF THE FILE HASN'T BEEN COPIED / /*************************************************************************** MKNBR, XX DCA DCNBR / SAVE THE FILE NUMBER /C004 TAD FROMDR / GET THE DRIVE WE'RE COPYING FROM BSW / CONSTRUCT A FILE ID - DRIV-FILE NBR CLL RTR TAD DCNBR /C004 DCA SVIFNO / SAVE THE FILE ID TAD DCNBR / GET THE FILE NUMBER /C004 TAD FLNBRS / GET ADDRESS WHERE FILE NUMBERS ARE KEPT /C003 CDFBUF /A003 DCA T1 / SAVE IT TAD I T1 / GET THE FILE HEADER BLOCK NBR SNA / IF ZERO, NOT IN USE JMP MKNBRX / NOT IN USE, RETURN SPA CLA JMP GOLDMU / IF MINUS HERE, WE HIT THE END OF THE FILE NUMBER TBL AC7777 TAD I T1 / SEE IF HAS ALREADY BEEN COPIED SNA CLA / ZERO HERE MEANS IT HASN'T JMP MKNBRX / GO BACK NSI TAD I T1 /SAVE A COPY OF HDR BLK # /A001 DCA HDRBLK / SO WE CAN FIND IT LATER /A001 AC0001 / MARK FILE AS HAVING BEEN COPIED DCA I T1 / MARK IT IN TABLE ISZ MKNBR / BUMP UP TO RETURN ADDR MKNBRX, CLA / CLEAR THE AC CDFMYF /A003 JMP I MKNBR / GO BACK / ********************************************************************* /A039 / /A039 / ISWIN - INPUT: AC=DEVICE # /A039 / OUTPUT: AC=WINNIE AREA # OR 0 IF DISKETTE /A039 / /A039 / ********************************************************************* /A039 ISWIN, XX /A039 DCA T1 / SAVE DEVICE # /A039 AC7777 / GET -1 IN AC /A039 TAD T1 / ADD IN DEVICE # /A039 SZA CLA / IF DEVICE # IS 1 CHECK FURTHER /A039 JMP ISWINX / ELSE IT IS DRIVE 0 OR AREA 2,3.... /A039 TAD WINONE / GET "DEVICE ONE IS A WINNIE" FLAG /A039 SZA CLA / IT ISN'T SO RETURN A CLEARED AC /A039 ISWINX, TAD T1 / RETURN DEVICE # (=0 DRIVE,.GT.0 AREA) /A039 JMP I ISWIN /A039 /------------------- PAGE /***************************************************************************** / / ASKNM -- ASK AND GET AN ANSWER FROM THE USER AS TO WHETHER / HE WISHES TO NAME AN UNNAMED DOCUMENT, OR GIVE IT A NUMBER, OR GO ON TO / THE NEXT DOCUMENT OR TO MAIN MENU. / / JMS ASKNM / JMP FOO1 / RETURN HERE HIT GOLD MENU / JMP FOO2 / RETURN HERE, HIT JUST RETURN / TAD ETC / RETURN HERE, NAME OR NUMBER / /******************************************************************************* ASKNM, XX ASKNM1, JMS I TOPSC / GO ERASE AND DISP '--COPY DOCUMENT--' /A018 TAD DCNBR / GET THE DOC NUMBER TO DISPLAY DCA DOCNBR / PUT IT WHERE IT CAN BE DISPLAYED CIFMNU JMS I IOACAL 0 GLST 1705 DOCNBR, 0 2105 2305 JMS ORGOLD ORAR TAD INBUF / GET INITIAL STRING LENGTH FOR INACAL DCA CUPBF0 / PUT INTO BUFFER AREA CIFMNU JMS I INACAL CUPBF0 JMP GOLDK CLA MQA SNA CLA JMP ASKNM3 / HE HIT RETURN JMS CPYOVR / GO COPY IT TO JMS CKINPT / GO CHECK WHAT THE USER TYPED IN /A003 JMP ASKNM1 / IF NO ARGUMENT TYPED IN, GO ASK AGAIN /A003 JMP ASKNM4 / NO MEANING TO WHAT HE TYPED IN /A003 ISZ ASKNM / BUMP UP TO RETURN ADDRESS ASKNM3, ISZ ASKNM JMP I ASKNM ASKNM4, /A003 JMS NOMEAN / GO TELL USER HIS INPUT IS MEANINGLESS /A003 JMP ASKNM1 / GO ASK HIM FOR IT AGAIN /A003 GOLDK, JMS GMTST 2105 / ERASE FROM THIS LINE /A026 JMP I ASKNM / HE HIT GOLD MENU JMP ASKNM1 / GO DISPLAY THE MESSAGE AGAIN /***************************************************************************** / / THIS ROUTINE GETS THE DRIVE NUMBER (PASSED TO IT IN THE AC) AND / THE CDF TO THIS FIELD INTO THE Q-BLOCK, AND THEN DOES A GET DENSITY / TO ESTABLISH THE DENSITY OF THE DRIVE SO [PASSED TO IT. / /***************************************************************************** GTDENS, XX DCA DRVDSP / PUT DRIVE NUMBER WHERE IT CAN BE DISPALYED /A018 TAD DRVDSP / GET DRIVE NUMBER BACK INTO AC /A018 JMS CUPDRS / GO PUT DRIVE NBR AND CDF INTO Q-BLOCK TAD (RXEDN+4000) / GET FUNCTION CODE FOR GET DENSITY DCA QUQBLK+RXQFNC / PUT IT INTO Q-BLOCK JMS QURX / GO ESTABLISH THE DENSITY OF THE DRIVE SMA CLA / ERROR RETURN? /C018 JMP I GTDENS / RETURN JMS I TOPSC / GO ERASE AND DISP '--COPY DOCUMENT--' /A018 JMS ERRWIN / GO SEE IF ERROR ON WINNIE & DISPLAY MS/A039 / ELSE RETURN HERE /A039 CIFMNU /A018 JMS I IOACAL /A018 0 /A018 YNAD / YOU NEED A DISKETTE IN DRIVE X. PUT A DISKETE ETC /A018 1505 /A018 DRVDSP, 0 / DRIVE NUMBER TO BE DISPLAYED /A018 JMS APRORG / "AND PRESS RETURN OR GOLD MENU /A037 JMS MVCPIN /A018 JMS KBRD /A018 JMS COPOVR /A018 JMP GTDENS+2 /A018 /DISPLAYS TYPING "" HAS NO MEANING HERE /CALLED BY: / JMS NOMEAN / GO READ INPUT AGAIN NOMEAN, XX NMNDSP, JMS RBELL /RING BELL DCA INBUF+17 / CUTOFF LENGTH OF ERROR MESSAGE /A024 CIFMNU /DISPLAY TYPING "" HAS NO MEANING HERE JMS I IOACAL 0 NMEAN TWOSIX, 2605 INBUF+1 /WE NEED THE +1 TO MOVE ONE ADDRESS BEYOND /THE BUFFER SIZE IN FIRST LOCATION JMS RTNWT /WAIT FOR RETURN JMP NMNDSP /NO RETURN COMPLAIN AGAIN TAD TWOSIX /RETURN SO ERASE SCREEN JMS ERASE JMP I NOMEAN /RETURN TO CALLER TO ASK AGAIN /************************************************************************* / / A COPY ROUTINE TO COPY FILE NAMES FROM ONE AREA TO ANOTHER / /**************************************************************************** CPYOVR, XX JMS CUCOPY CUPBUF CDFMYF CUPFNM CDFMYF STRLEN-1 / LENGTH OF MOVE JMP I CPYOVR / GO BACK CTDIN1, TAD TODRV / TAD OUTPUT DRIVE NUMBER /A018 JMS GTDENS / ESTABLISH DEN AND DRIVE /A018 JMS CSTUFF / SUBROUTINE INVENTED TO SAVE SPACE /A037 DCA SVODCN / SAVE IT FOR FUTURE USE TAD I (MUBUF+MNFNO) / GET THE FILE ID DCA SVOFNO / SAVE IT FOR FUTURE USE CDFMYF / GET BACK TO THIS FIELD TAD STATUS / GET THE STATUS SMA CLA JMP CTDDIN / GO TELL USER DOC ALREADY EXISTS JMS TSTSZ / GO SEE IF THERE IS ROOM FOR THE DOCUMENT JMP TSMLL / THE OUTPUT DOESN'T HAVE ENOUGH ROOM JMS ADRCRT / CREATE THE OUTPUT DOCUMENT JMP CRERR / ERROR ON CREATE, PROCESS /D036 DCA SOTFL / STORE IN DOC NUMBER IN SOTFIL DCA VALUE / STORE IN DOC NUMBER IN VALUE TAD CUPFNO / GET THE DRV+FILE NO OF FILE JUST CREATED DCA SVOFNO / PUT IT WHERE EVERYBODY CAN GET AT IT JMP DOIO / GO COPY DOCUMENT /-------------------- PAGE /IF CALLED WITH ZER0 IN AC THIS ROUTINE CHECKS SIZE OF SPACE ON RESULT /FLOPPY AGAINST SIZE OF INPUT FLOPPY + 8 BLOCKS /OTHERWISE AC CONTAINS SIZE OF INPUT DOC TO ADD TO TOTAL SPACE NEEDED ON RESULT /FLOPPY WHEN WRITING TO TOP OR BOTTOM ON THE RESULT DRIVE /IF THERE IS ENOUGH SPACE ON RESULT FLOPPY TO ACCOMMODATE OUTPUT PROGRAM /CONTINUES. TSTSZ, XX TAD OPTION / GET THE OPTION THE USER WANTED SMA CLA / WAS IT AN OVERWRITE OPTION? JMP NOTOVR / NOT AN OVERWRITE TAD SVOFNO / WE NEED TO GEWT THE SIZE OF THE OUTPUT JMS GTFLSZ / GO GET SIZE OF TOUTPUT DOCUMENT CIA / MAKE IT NEGATIVE DCA OVRSPCE / SAVE IT JMP GTIFSZ / GO GEET THE INPUT FILE SIZE /A014 NOTOVR, TAD (SREXT) /THIS IS EXTRA SPACE REQUIRED IF DOC IS TO BE /M014 / EDITED AFTERF BEING COPIED /C014 DCA OVRSPCE /A014 GTIFSZ, /A014 TAD SVIFNO /PUT INPUT DRIVE AND DOC NUMBER INTO AC JMS GTFLSZ / GO OPEN THE FILE FOR READING TO GET FILE SIZE DCA LSTSIZ /STORE IN MY FIELD TAD TODRV /TAD OUTPUT DRIVE NUMBER JMS CUPDRS /SET DRIVE NUMBER FOR QURX TAD (RXESP /GET SPACE LEFT ON DISKETTE DCA QUQBLK+RXQFNC JMS QURX CLA /THIS ERASES ANY ERROR RETURN FROM QURX TAD OVRSPCE /ADD RESULT DOC SIZE (OR 0 FOR T, A, OR CREATE) TAD LSTSIZ /ADD THE SIZE OF INPUT DOC CIA /NEGATE TAD QUQBLK+RXQSPC /ADD FREE SPACE SPA CLA /IF RESULT IS NEGATIVE INPUT IS GREATER THAN JMP I TSTSZ /SPACE AVAILABLE ON FLOPPY ERROR RETURN ISZ TSTSZ /ELSE THERE IS ENOUGH SPACE INCREMENT FOR OK RETURN JMP I TSTSZ TSMLL, JMS TOSMAL / GO DISPLAY MESSAGE AND ASK WHAT TO DO TODRV / FILE NUMBER TO BE DISPLAYED INBUF+1 / FILE NAME JMP CUGSP / HE TYPED RETURN, GO ASK FOR NEXT ONE NMNING, / NO MEANING TO WHAT HE PUT IN JMS MVINPT / COPY INPUT FROM MENU FIELD /A037 JMS NOMEAN / TYPING "" HAS NO MEANING HERE /A037 JMP CUGSP / GO ASK AGAIN MVNBR, / THIS SETS UP A NUMBERED OUTPUT DOC FOR FILNAM TO READ JMS ASKNM / GO ASK USER IF HE WANTS TO NAME OR NUMBER DOC JMP GOLDMU / HE HIT GOLD MENU JMP MVNBR2 / HE HIT RETURN, GO SEE IF ITS A COPY SOME JMP MVNBR1 / HE ENTERED A NAME OR A NUMBER MVNBR2, / CHECK TO SEE IF WE'RE DOING A COPY SOME AC7776 / GET A MINUS 2 TAD COPYTP / GET THE COPY TYPE OPERATION SZA CLA / IF ZERO, THEN DOING SOME /C007 JMP DONBRD / NOT DOING COPY SOME, GO DO NUMBERED DOC /A007 TAD SIGNL / GET SIGNAL THAT HE WANTS TO COPY 1=YES /A007 SNA CLA / SKIP IF YES /A007 JMP CUGSP / CONTINUE TO NEXT FILE DCA SIGNL2 / TURN SIGNAL OFF FOR NEXT TIME /A007 DONBRD, /A007 JMS GTNBR / GO GET A NUMBER OFF THE OUTPUT DISKETTE MVNBR1, JMS COPOVR / GO COPY THE NUMBER TO THE INBUF AREA FOR FIXNAM TAD TODRV / GET THE NUMBER OF THE DRIVE WE'RE COPYING TO TAD OSXTY / MAKE IT AN ASCII NUMBER JMS FIXNAM / GO SET UP FOR READ JMP CTDIN2 / GO BACK AND READ IT /************************************************************************ / / THIS CODE OPENS A FILE FOR READING ONLY. / PASS IT THE DRIVE AND FILE NUMBER IN THE AC. / THE DRIVE NUMBER MUST BE IN THE HIGH ORDER 4 BITS OF THE AC. / THE FILE NUMBER MUST BE IN THE LOW ORDER 8 BITS OF THE AC. / JUST CALL IT AS FOLLOWS: / JMS OPENRD / WHEN IT RETURNS, THE FILE WILL BE OPEN FOR READING. / /*************************************************************************** OPENRD, XX CDFMYF / ENSURE DATA FIELD IS TO THIS FIELD CIFFIO / CHANGE INSTRUCTION FIELD TO IO FILEIO XRDFIN JMP I OPENRD / RETURN /**************************************************************************** / / THIS CODE WILL COPY OVER THE INFORMATION IN THE 1ST HEADER BLOCK / THAT IS RELEVANT TO THE DOCUMENT, SUCH AS THE CREATION DATE, THE / SETTINGS FOR THE DOCUMENT'S PRINT MENU, ETC. THIS CONSISTS OF THE / 35 (DECIMAL) WORDS BEGINNING AT THE SIXTH WORD OF THE HEADER / BLOCK EXCEPTING WORD ELEVEN WHICH IS THE DOCUMENT NUMBER. SINCE / IT IS UNLIKELY THAT THE DOCUMENT NUMBER WILL BE THE SAME ON THE / OUTPUT DISKETTE AS IT IS ON THE INPUT DISKETTE, THE OUTPUT / DOCUMENT NUMBER IS PUT OUT AFTER MOVING THESE 35 WORDS. / /****************************************************************************** CPHDRI, XX CLA TAD SVOFNO / GET THE FILE ID (DRV-DOC NBR) AND P377 / AND OUT THE DRIVE NUMBER TO GET ONLY DOC NBR DCA SVODCN / STORE IT IN ORDER TO RESTORE IT TAD HDRBLK / GET HDR BLK # FROM WHERE I STASHED IT DCA QUQBLK+RXQBLK / PUT IT INTO THE Q-BLOCK TAD FROMDR / GET THE INPUT DRIVE NUMBER JMS CUPDRS / GO PUT THE DRIVE NUMBER AND CDF INTO Q-BLOCK TAD (CUB1) / GET THE BUFFER ADDRESS DCA QUQBLK+RXQBAD / PUT IT INTO THE Q-BLOCK TAD (RXERD) / GET THE FUNCTION CODE (LOGICAL READ) DCA QUQBLK+RXQFNC / PUT IT INTO THE Q-BLOCK JMS QURX / GO DO THE I-O CLA / HEADER IS NOW AT CUB1 TAD (CUB1+5) / GET THE BEGINNING OF AREA TO MOVE DCA X1 / PUT THIS ADDRESS INTO INDEX 1 TAD M44 / GET A MINUS 44 (OCTAL)/36 (DECIMAL) DCA T1 / PUT IT WHERE WE CAN ISZ IT FOR LOOP CTL TAD FOUR / GET THE NUMBER FOUR (WHERE WE'RE COPYING TO IN HDR DCA T2 / PUT IT WHERE WE CAN ISZ IT CPDNXT, TAD I X1 / GET THE VALUE OF THE WORD TO BE MOVED MQL / PUT IT INTO THE MQ TAD T2 / GET THE WORD NUMBER TO PUT IT TO IN NEW HDR CIFFIO FILEIO XHDRPT ISZ T2 / BUMP UP THE WORD NUMBER WE'RE COPYING TO ISZ T1 / ARE WE ALL DON? JMP CPDNXT / GO DO THE NEXT ONE SINCE WE'RE NOT DONE CLA TAD SVODCN / GET THE OUTPUT DOCUMENT NUMBER MQL / PUT IT IN MQ SO WE CAN PUT IT OUT TO THE NEW HDR / BECAUSER WE OVERWROTE IT WITH THE INPUT DOC NBR ABOVE TAD NINE / GET THE WORD NUMBER WHERE DOC NBRS GO IN HEADER CIFFIO FILEIO XHDRPT JMP I CPHDRI / RETURN /THIS ROUTINE IS FOR "COPY ONE" TO READ THE HEADER BLOCK # OF THE DOCUMENT /ABOUT TO BE COPIED. HDR BLK # IS READ FROM THE HOME BLOCK BUFFER AT DCNBRS /THEN PLACED IN HDRBLK (PAGE 0), FOR LATER USE BY CPHDRI. / FIXONE, XX TAD FLNBRS / GET ADDRESS WHERE FILE NBRS ARE /C003 TAD SVIDCN /MAKE PTR FROM DOC # DCA T1 CDFBUF /A003 TAD I T1 /FIND HDR BLK # DCA HDRBLK CDFMYF /A003 JMP I FIXONE /------------------- PAGE /************************************************************************* / / THIS ROUTINE WILL CHECK TO SEE IF THE SYSTEM DISKETTE IS MOUNTED / AND WILL RETURN TO THE NEXT SEQUENTIAL INSTRUCTION IF IT IS. / OTHERWISE, IT WILL DIPLAY A MESSAGE TO MOUNT THE SYSTEM DISKETTE / AND PRESS RETURN,AND THEN CHECK TO SEE IF THE SYSTEM DISKETTE / IS MOUNTED, ETC, ETC. / /*************************************************************************** REPLC, XX / ROUTINE TO ASK USER TO REPLACE THE SYTEM DISKETTE REPLC1, JMS GTDKID / GO GET THE KEY-ID OF THE DISK ON DRIVE 0 CIA / SET IT UP FOR COMPARE TAD DISKID / GET KEY ID PREVIOUSLY GOTTEN SNA CLA / IF ZERO HERE, IT ISN'T THE SYSDTEM DISKETTE JMP I REPLC / RETURN, SYSTEM DISKETTE IS MOUNTED JMS I TOPSC / GO ERASE AND DISP '--COPY DOCUMENT--' /A018 CIFMNU JMS I IOACAL 0 RPLACE /ASK USER FOR NEW DISKETTE FOR RESULT DOC 1505 /DISPLAY REPLACE PROMPT ON LINE 12 COLUMN 5 JMS PRETURN / AND PRESS RETURN JMS RTNWT / GO GET A RETURN REPLY ONLY JMP REPLC1 / USER HIT SOMETHING OTHER THAN RETURN, GO DIPLAY JMP REPLC1 / USER HIT RETURN, GO SEE IF SYSTEM DISKETTE IS IN PLACE /******************************************************************************* / / THIS ROUTINE WILL GET THE FULL NAME OF THE DOCUMENT ON A COPY ONE / OPERATION. THE ROUTINE 'FILNAM' IN MAIN MENU WILL READ THE FILE NAME / FROM OUT OF THE INDEX FILE, BUT IF THE USER ONLY PUTS IN A PARTIAL / PART OF THE NAME, IT LEAVES ONLY THE PARTIAL PART OF THE NAME IN THE / BUFFER AREAS. THIS RESULTS IN COPYING THE DOCUMENT WITH ONLY THE / PARTIAL NAME ON THE OUTPUT INDEX FILE. TO GET AROUND THIS PROBLEM, / THIS ROUTINE WAS WRITTEN. HERE THE FULL NAME OF THE DOCUMENT IS READ / INTO THE BUFFER AREAS SO THAT THE ENTIRE NAME WILL BE WRITTEN OUT TO / THE OUTPUT DISKETTE'S INDEX FILE. / JUST CALL THE ROUTINE, NO PARAMETERS TO PASS... / /****************************************************************************** GTNAM, XX AC7777 / ARE WE DOING A COPY OINE? TAD COPYTP / GET THE COPY TYPE 1=COPY ONE SZA CLA / YES, GO GET FULL NAME JMP I GTNAM / RETURN TAD SVIDCN / GET THE DOCUMENT NUMBER OF INPUT FILE DCA DCNBR / PUT IT WHERE 'DTNAM' CAN GET IT TAD FROMDR / SIGNAL 'DTNAM' THAT WE'RE DOING FROM DRIVE JMS DTNAM / GO DETERMINE THE NAME OF THE FILE TAD FROMDR / GET THE FROM DRIVE NUMBER TAD OSXTY / MAKE IT AN ASCII NUMBER JMS FIXNAM / GO SET IT UP FOR WRITING IT JMP I GTNAM / RETURN /CALLED WITH POSITION OF CURSOR IN AC ERASE, XX DCA CRPOS /STORE POSITION FOR CURSOR CIFMNU JMS I IOACAL 0 PSCR /STRING TO ERASE SCREEN AND POSITION CURSOR CRPOS, 0000 /CURSOR POSITION PASSED IN AC FROM CALLER JMP I ERASE /RETURN TO CALLER /A018 ADDED FOR SPACE REASONS. THIS ROUTINE ERASES THE SCREEN AND PUTS OUT /A018 THE '---COPY DOCUMENT--' HEADER ONTHE SCREEN PTOPSC, /A018 XX /A018 CLA / ERASE WHOLE SCREEN, I.E. FROM ZERO /A018 JMS ERASE /A018 CIFMNU JMS I IOACAL / PUT OUT '--COPY DOCUMENT--' 0 CPY 0 JMP I PTOPSC /A018 /CALLED BY JMS ORGOLD / VALUE FOR FIRST WORD ARGUMENT (EITHER ORAR FOR OR PRESS GOLD / M OR NARG FOR PRESS GOLD M) ORGOLD,XX /DISPLAYS (OR) PRESS GOLD M TO RECALL MENU CLA TAD I ORGOLD DCA FWARG /STORE ARGUMENT IN FIRST WORD ARGUMENT ISZ ORGOLD /NOTE AC MUST BE 0 HERE TO ENSURE GTDKID WILL READ SYSTEM FLOPPY CIFMNU JMS I IOACAL 0 DOGM /ADDRESS OF OR TYPE GOLD M TO RECALL MENU 2505 /POSITION OF LINE FWARG, 0 /FIRST WORD OF PROMPT EITHER "OR" OR " " JMP I ORGOLD /RETURN TO CALLER /***************************************************************************** / / THE ROUTINE BELOW COPIES THE FILE CPYFLE, XX JMS CPHDRI / GO COPY OUT HDR INFO (PRINTER CTL INFO, ETC) CPYNXT, JMS RDNXCH / GO GET A CHARACTER TO COPY JMP CPFLEX / ALL DONE COPYING DCA CPYCHR / STORE THE CHARACTER JUST GOT CDFSYS TAD I HLTFLG / DID THE USER PRESS GOLD HALT? CDFMYF SZA CLA / NO HE DIDN'T JMP CPFLHT / YES HE DID, GO CLOSE AND CONTINUE TAD CPYCHR / GET CHARACTER TO COPY JMS PDXCH / GO PUT CHAR OUT JMP CPYNXT CPFLEX, ISZ CPYFLE / NORMAL RETURN CPFLHT, / GOLD HALT WAS HIT/ ABNORMAL RETURN CIFFIO / CLOSE THE FILE FILEIO XDSKCL CLA /A008 DCA QUQBLK+RXQFNC /SET 0 FNCTION CODE(WRITE DIR IF NEC./A008 JMS QURX /DO IT /A008 CLA / INSURE THAT WE'RE DOING DRIVE ZERO /M029/A028 JMP I CPYFLE / GO BACK ALL DONE /************************************************************************* / / THIS CODE IS THE LAST PART OF THE CODE THAT PROCESSES COPY SOME / AND COPY ALL. PROCESSING COMES HERE WHEN ALL THE NAMED / DOCUMENTS HAVE BEEN PROCESSED, AND NOW ALL THAT NEEDS TO BE / DONE IS TO COPY UNNAMED DOCUMENTS. FOR A COPY SOME, IT WILL / DISPLAY A MESSAGE ASKING WHETHER THE USER WISHES TO COPY / THE NUMBERED DOCUMENT. FOR A COPY ALL, IT SIMPLY GETS THE / NUMBERED DOCUMENT AND COPIES IT. / /************************************************************************** CPYSL3, JMS GTFNO / GO GET A FILE NUMBER (UNNAMED) JMP GOLDMU / NO MORE OF THEM DCA FILNBR / PUT IT WHERE IT CAN BE DISPALYED TAD FILNBR / GET THE FILE NUMBER TO SAVE IT DCA DCNBR / SAVE IT ON PAGE ZERO SO OTHERS CAN GET IT DCA SIGNL2 / TURN OFF SIGNAL THAT USER WANTS TO COPY /A007 DCA SIGNL3 / TURN OFF SIGNAL THAT USER GAVE NAME TO DOC /A007 TAD FILNBR JMS MKNBR / GO SEE IF FIEL HAS BEEN DONE JMP CPYSL3 / IT HAS, GO GET ANOTHER ONE TAD FILNBR / GET THE NUMBER IN THE AC CPYSL4, JMS DONBR / GO CONVERTY IT TO ASCII JMS COPOVR / GO COPY IT TO INBUF AC7776 / CHECK TO SEE IF WE'RE DOING A COPY SOME TAD COPYTP SZA CLA / YES WE ARE JMP CUGSP1 / NO WE AREN'T TAD FILNBR / GET THE FILE NUMBER /A037 JMS CPWISH / GO DISPLAY DO YOU WISH 0 / NO NAME ISZ SIGNL2 / SIGNAL THAT USER WANTS TO COPY /A007 JMP CUGSP1 / GO ASK FILNBR, 0 / SPOT FOR THE FILE NUMBER /M039 CODE MOVE HERE IN SPACE WAR /****************************************************************************/M039 APRORG, XX / DISPLAY "AND PRESS RETURN" /A037/M039 / "OR PRESS GOLD MENU ... /A037/M039 JMS PRETURN / /A037/M039 JMS ORGOLD / /A037/M039 ORAR / /A037/M039 JMP I APRORG / RETURN /A037/M039 /---------------------- PAGE /********************************************************************** / / THIS ROUTINE WILL CHECK TO SEE IF FILES HAVE BEEN COPIED / /************************************************************************** GTFNO, XX AC7777 / GET SIGNAL THAT WE'RE DOING NUMBERS ONLY DCA SIGNL / SIGNAL CKINPT RTNE THAT WE'RE DOING NUMBERS TAD (DCNBRS / PREPARE TO SEARCH FILE TABLE /C037 DCA X0 / PUT IT INTO INDEX 0 CDFBUF /A003 GTFNO1, TAD I X0 / GET A FILE HEADER BLOCK NBR SNA / IF ZERO HERE, DOCUMENT DOES NOT EXIST JMP GTFNO2 / NO DOCUMENT, GO GO ON TO THE NEXT TAD (-1) / CHECK TO SEE IF ITS BEEN COPIED ALREADY SNA CLA / ZERO HERE MEANS IT HAS BEEN COPIED JMP GTFNO2 / HAS BEEN COPIED TAD X0 / GET THE ADDRESS OF THE HDR BLOCK NBR TAD (-DCNBRS+1) / SUBTRACT FILE TABLE BASE /C037 ISZ GTFNO / BUMP UP GOT NUMBER RETURN ADDRESS GTFNOX, CDFMYF /A003 JMP I GTFNO / RETURN TO CALLER EOF ADDRESS GTFNO2, / DONE OR NONEXISTENT, CHECK TO SEE IF AT END OF TABLE TAD X0 / GET INDEX REGISTER TAD (-DCNBRS+1) / COMPARE TO TABLE END POINT /A037 TAD MDOCFS / AND NO OF DOCS IN FILE SYSTEM /A037 SMA CLA / SKIP IF NOT DONE /A037 JMP GTFNOX / DONE, GO EXIT WITH NO ISZ, AC=0000 /A037 JMP GTFNO1 / GO LOOK AT NEXT NUMBER /A037 /**************************************************************************** / / CONTROL IS PASSED HERE WHENEVER THERE IS NO DOCUMENT ON THE INPUT DRIVE / BY THE NAME GIVEN BY THE USER TO COPY OVER TO THE OUTPUT DRIVE. IT / ASKS THE USER TO PRESS RETURN FOR ANOTHER NAME. / /****************************************************************************** NDERR, XX JMS CPYSL5 / GO SEE IF WE'RE DOING COPY ALL /C004 TAD I NDERR /PICK UP DOC NAME DCA DCNAM /STORE IT FOR ERROR MESSAGE ISZ NDERR /INCREMENT FOR RETURN CDFMNU /CHANGE TO MENU FIELD TAD I (MUBUF+MNDRV) /PICK UP DRIVE NUMBER CDFMYF /CHANGE BACK TO MY FIELD DCA DCRV /STORE IN DRIVE NUMBER FOR ERROR MESSAGE JMS I TOPSC / GO ERASE AND DISP '--COPY DOCUMENT--' /A018 NDDSP, CIFMNU JMS I IOACAL 0 NDOC ONE303, 1305 DCDEV, 0 / PTR TO "DRIVE" OR "AREA" TEXT /A039 DCRV, 0000 DCNAM, 0000 CIFMNU JMS I IOACAL 0 TARTN 2505 JMS RTNWT /WAIT FOR RETURN JMP NDDSP /NOT RETURN COMPLAIN AGAIN TAD ONE303 /RETURN ERASE SCREEN JMS ERASE DCA SIGNL / CLEAR OUT NUMBERED DOC SIGNAL JMP I NDERR /AND CONTINUE /*************************************************************************** / / A ROUTINE TO COPY THE INPUT FROM MENU FIELD TO THIS FIELD / /**************************************************************************** CPMNOV, XX JMS CUCOPY MUBUF+MNIBUF /C042 CDFMNU CUPFNM CDFMYF STRLEN JMP I CPMNOV /************************************************************************** / / ROUTINE TO CONVERT A OCTAL NUMBER TO DECIMAL AND PUT IT AT INBUF. / ENTER THE ROUTINE WITH A JMS INSTRUCTION WITH THE VALUE OF THE / NUMBER IN THE AC. UPON RETURN, THE VALUE IN DECIMAL WILL BE AT / 'INBUF+1', RIGHT JUSTIFIED. / /**************************************************************************** DONBR, XX DCA VALUE / SAVE THER OCTAL NUMBER TO BE CONVERTED TAD DPREC / GET THE PRECISION (ALWAYS 4) TAD (TENS-1) / GET THE POWERS OF TEN TABLE DCA TABLE / PUT IT HERE TO INDIRECT THRU TAD (CUPFNM-1) / GET THE ADDR WHERE THE NUMBER WILL BE PUT DCA X1 / PUT THE ADDR INTO THE INDEX REGISTER TAD DPREC / GET THE PRECISION DCA DPREC1 / STORE IT HERE TO ISZ IT DONBR1, DCA COUNT / ZERO THE COUNTER ISZ TABLE / GET THE POWER OF TEN TAD I TABLE SNA / ARE WE DONE? JMP DONBRX / YES GO BACK CMA SNA CLA ISZ DPREC1 / TURN ON SIGNIFICANCE STARTER DONBR2, TAD VALUE / GET THE OCTAL NUMBER TAD I TABLE / SUBTRACT OUT THE POWER OF TEN SPA / STILL POSITIVE? JMP DONBR3 / NO, GO CONSTRUCT THE DIGIT DCA VALUE / YES, STORE THE DECREMENTED OCTAL FOR NEXT LOOP ISZ COUNT / INCREMENT THE DIGIT OF THE DECIMAL NBR JMP DONBR2 / GO SEE IF WE'RE THRU WITH THIS DIGIT DONBR3, CLA TAD DPREC1 / GET THE SIGNIFICANCE STARTER TAD COUNT / GET THE DECIMAL DIGIT SNA CLA / IF ZERO HERE, SIGNIFICANCE HASN'T STARTED JMP DONBR1 / GO DO NEXT DIGIT TAD OSXTY / GET AN ASCII ZERO TAD COUNT / ADD IN THE BINARY NBR FOR THE DIGIT ISZ DPREC1 / SET UP SIGNIFICANCE STARTER DCA I X1 / PUT DIGIT AT INBUF JMP DONBR1 / GO DO NEXT DIGIT DONBRX, CLA DCA I X1 / NULL END OF ASCIZ STRING JMP I DONBR / RETURN COUNT, 0 / AREA TO CREATE DECIMAL DIGIT IN OCTAL DECIMAL TENS, -1000 -100 -10 -1 0 / END OF TABLE MARKER OCTAL /***********************************************************************/A012 / /A012 / DISPLAYS MESSAGE "IF YOU DO, TYPE Y AND PRESS RETURN, OR JUST /A012 / 'PRESS RETURN TO CONTINUE TO THE NEXT DOCUMENT, /A012 / /A012 /***********************************************************************/A012 MSIYDT, /A012 XX /A012 CIFMNU /M012 JMS I IOACAL /M012 0 /M012 TXCS2 / G. P. CONTROL STRING, TWO SUBSTRINGS /A037 2105 / POSITION OF 1ST SUBSTRING /A037 TXIYD / IF YOU DO PRESS Y, OF RETURN ETC, /M012 2305 /M012 TXPRCN / "PRESS RETURN TO CONTINUE TO NEXT..." /A037 JMS ORGOLD /M012 ORAR /M012 JMP I MSIYDT /A012 /------------------------ PAGE /M039 SPACE WARS MOVE /D039/**************************************************************************** /D039 /D039APRORG, XX / DISPLAY "AND PRESS RETURN" /A037 /D039 / "OR PRESS GOLD MENU ... /A037 /D039 JMS PRETURN / /A037 /D039 JMS ORGOLD / /A037 /D039 ORAR / /A037 /D039 JMP I APRORG / RETURN /A037 /**************************************************************************** PRETURN,XX /DISPLAYS "AND PRESS RETURN" CIFMNU JMS I IOACAL 0 PRTRN 2305 JMP I PRETURN /**************************************************************************** / GOLD MENU IF GOLD MENU IS TYPED, / NO MEANING IF GARBAGE KBRD, XX / RETURN IF RETURN IS TYPED, KBRD1, /A011 CIFMNU JMS I INACAL /CALL INA TO READ INPUT INBUF /LOCATION TO RECEIVE INPUT JMP GMTEST /A011 CLA MQA /MQ CONTAINS #CHARS IN BUFFER SNA CLA /IF THIS IS 0 RETURN WAS TYPED JMP I KBRD /GO BACK TO CALLER JMS NOMEAN /ELSE MUST BE INAPPROPRIATE RESPONSE COMPLAIN JMP KBRD1 /ASK AGAIN GMTEST, /A011 JMS GMTST / GO SEE WHAT KIND OF GOLD KEY WAS HIT /A011 2205 / ERASE FROM THIS LINE FORWARD /A026 JMP GOLDMU / HE HIT GOLD MENU /A011 JMP I KBRD / HE HIT RETURN AFTER MESG NOT TO HIT GOLD KEYS /A011 /CALLED WITH 0 OR 1 IN AC TO DETERMINE FROM WHICH FLOPPY THE HOME BLOCK /WILL BE READ GTDKID, XX TAD (NOP) / LOAD A NOP INSTRUCTION INTO AC /A039 DCA CRMED / & PLACE INTO CREATE ERROR IOACAL SEQUENCE /A039 / THIS MAKES "CRERR" RE-ENTRANT /A039 JMS GTDENS / GO PUT DRV NBR AND CDF INTO Q-BLOCK AND EST DENSITY TAD (CUB1) /BUFFER ADDRESS DCA QUQBLK+RXQBAD TAD (RXBDIR) /BLOCK TO READ (HOME BLOCK) DCA QUQBLK+RXQBLK TAD (RXERD /TELL QURX TO READ DCA QUQBLK+RXQFNC JMS QURX CLA /THIS CLOBBERS ANY QURX ERROR RETURN TAD CUB1+5 /INDEX TO FIFTH WORD (DISKETTE ID#) JMP I GTDKID /EXIT WITH CURRENT DISKETTE ID IN AC TOSMAL, XX TAD I TOSMAL / GET THE DRIV NUMBER DCA DISP31 / PUT IT TO BE DISPLAYED ISZ TOSMAL / BUMP UP TO THE DOCUMENT NAME TAD I TOSMAL / GET THE DOCUMENT NAME (IF ANY) DCA DISP33 / PUT IT WHERE IT WILL BE DISPLAYED TAD I DISP31 / PICK UP THE DRIVE NUMBER DCA DISP31 / PUT IT WHERE IT WILL BE DISPLAYED TSML1, JMS I TOPSC / GO ERASE AND DISP '--COPY DOCUMENT--' /A018 CIFMNU JMS I IOACAL 0 NERD / NOT ENOUGH ROOM ETC 1505 DSTDEV, 0 / PTR TO "DRIVE" OR "AREA" TEXT /A039 DISP31, 0 /DRIVE NUMBER CLA TAD I DISP33 / CHECK FOR DOCUMENT NAME SNA CLA / IF ZERO ADDRESS THEN NO NAME FOR DOCUMENT JMP NONAM / NO NAME FOR DOCUMENT CIFMNU JMS I IOACAL 0 DCNAME 1705 DISP33, 0 / DISPLAY NAME OF DOCUMENT NONAM, CIFMNU JMS I IOACAL 0 TXCS1 / G. P. ONE SUBSTRING /A037 2405 / POSITION /A037 TXPRCN / SUBSTRING "PRESS RETURN TO CONINUE..." /A037 JMS ORGOLD ORAR JMS MVCPIN / GO SAVE THE DOCUMENT NAME IN CASE USER WRONG /A032 JMS ASK / GO SEE WHAT HE TYPED IN JMP GOLDMU / GO BACK JMP RSTNAM / GO RESTORE THE NAME OF THE DOCUMENT /A032 ISZ TOSMAL /M032 JMP I TOSMAL / HIT FINALLY HIT RETURN RSTNAM, /A032 JMS COPOVR /RESTORE THE NAME OF THE DOCUMENT /A032 JMP TSML1 / GO DISPLAY AGIAN /M032 /***********************************************************************88 / / THIS ROUTINE DETERMINES WHAT THE USER TYPED IN WHEN ASKED / WHETHER OR NOT HE WANTS TO COPY A FILE THE NAME OR NUMBER OF / WHICH WAS PREVIOUSLY DISPLAYED ON THE SCREEN DURING A COPY / SOME OPERATION. IF THE USER TYPES THA LETTER "Y" AS THE FIRST / CHARACTER, IT WILL DO THE COPY OPERATION. IF HE TYPES RETURN, / IT WILL GO GET ANOTHER FILE NAME OR NUMBER TO DISPLAY, WITHOUT / COPYING. IF HE TYPES GOLD MENU, IT GOES TO MAIN MENU. ANY THING / ELSE IT WILL TREAT AS IF HE HIT RETURN. IF HE TYPES A GOLD KEY / OTHER THAN GOLD MENU, IT WILL GIVE HIM A LONG LECTURE ABOUT THE / USE OF GOLD KEYS AND MAKE HIM HIT RETURN. / /************************************************************************ WISHIN, XX JMS MVCPIN / GO SAVE WHAT'S IN INBUF /A022 WISHN1, CIFMNU JMS I INACAL INBUF /A027 JMP GLDKY CLA MQA / ANYTHING TYPED IN? SNA CLA / IF NON ZERO HERE THEN SOMETHING HAS BEEN TYPED JMP WISHN3 / IF ZERO, THEN RETURN WAS TYPED TAD INBUF+1 /GET WHAT WAS TYPED IN /A027 IFDEF ENGLSH < TAD (-131) / A "Y"? > IFDEF ITALIAN < TAD (-123) / A "S"? > IFDEF V30NOR < TAD (-112) / a "J" > IFDEF V30SWE < TAD (-112) / A 'J' > SNA JMP WISHN2 / YES, RETURN TO SECOND ADDRESS IFDEF ENGLSH < TAD (131-171) / A "y" ? > IFDEF ITALIAN < TAD (123-163) / A "s"? > IFDEF V30NOR < TAD (112-152) / A "j" > IFDEF V30SWE < TAD (112-152) / A 'J' > SNA JMP WISHN2 / YES, RETURN TO SECOND ADDRESS JMS NOMEAN / GO TELL HIM IT HAS NO MEANING HERE /A027 JMP WISHNR / NOT A "Y", SO TREAT IT AS IF HE HIT RETURN /C027 GLDKY, JMS GMTST / GO SEE WHAT KIND OF GOLD KEY HE HIT 2105 / ERASE FROM THIS LINE FORWARD /A026 JMP WISHN4 / HE HIT GOLD MENU JMS RBELL / GO RING THE BELL JMS MSIYDT / GO DISPLAY MESSAGE /A012 JMP WISHN1 WISHN2, ISZ WISHIN WISHNR, /A027 ISZ WISHIN / NO MEANING TO WHAT HE TYPED IN TRY AGAIN /A027 WISHN3, / TYPED RETURN ISZ WISHIN WISHN4, JMP I WISHIN /---------------------- PAGE /CALLS MENU TO READ INPUT TO DOC PROMPTS, TOA AND GO PROMPTS /CALLED BY: /JMS READMU / GOLD M DATA FIELD SET TO MY FIELD / CONTINUE PROCESSING DATA FIELD SET TO MENU FIELD / EDIT 035 CHANGED SYMBOL READ TO READLP /A035 READMU, XX READLP, CDFMYF /SET DATA FIELD TO MENU /M035 CIFMNU JMS I MNUCAL;DLMDU7 /CALL MENU CDFMNU /CHANGE DATA FIELD TO MENU TAD I (MUBUF+MNTMP3) /GET AND TEST CONTENTS OF TMP3 SZA /IF 0 THEN GOLD KEY WAS PRESSED JMP RDRTN2 /NOT GOLD KEY SO RETURN AND PROCESS INPUT TAD I (MUBUF+MNSYSA) /WAS GOLD KEY TO GET IT TAD (4000) /SET FIRST BIT TO 1 BECAUSE MENU STRIPS IT OFF CDFMYF /CHANGE DATA FIELD TO MINE JMS GMTST /PROCESS GOLD KEY 2105 / ERASE FROM HERE /A026 JMP RDRTN1 /GOLD M RETURN TAD DOCSIG / DID 'DTAO' CALL THIS ROUTINE? /A023 SMA / YES, THEN RETURN TO DTAO /A023 JMP RDRTN3 / NO, NORMAL PROCESSING /A023 AC7776 / SIGNAL THAT WE'RE COMING FROM HERE /A023 JMP RDRTN2 / RETURN TO DTAO /A023 RDRTN3, /A023 JMS APRORG / "AND PRESS RETURN OR GOLD MENU /A037 JMP READLP / GOLD GARBAGE, READ INUT AGAIN /M035 RDRTN2, ISZ READMU / GOLD M EXIT RDRTN1, JMP I READMU / CONTINUE EXIT /CALLED BY JMS GMTST;GOLD M;GOLD KEY NOT GOLD M GMTST, XX / TEST TO SEE IF GOLD KEY TAD (-EDMENU) /SEE IF GOLD M SNA CLA JMP GMRTN2 /C026 GMERDSP, TAD I GMTST /C026 /C016 JMS ERASE JMS RBELL CIFMNU JMS I IOACAL 0 TRYAGN 2205 /C026 2305 2405 2605 JMS RTNWT / WAIT FOR THE RETURN JMP GMERDSP / NOT RETURN GO COMPLAIN TAD I GMTST /C026 /C016 JMS ERASE ISZ GMTST /A026 GMRTN2, ISZ GMTST GMRTN1, JMP I GMTST /GO BACK /D44 *************************************************************************** /D44 /D44 A ROUTINE THAT WILL COMPARE TWO STRINGS OF CHARACTERS TO SEE IF THEY /D44 ARE EQUAL. /D44 THE ROUTINE SHOULD BE CALLED AS FOLLOWS: /D44 JMS COMPST /D44 ADDRESS OF THE FIRST STRING OF CHAR TO BE COMPARED /D44 ADDRESS OF THE 2ND STRING TO BE COMPARED /D44 RETURN POINT IF THEY DON'T MATCH /D44 RETURN POINT IF THEY DO MATCH /D44 THE FIRST STRING IS THE CONTROLLING STRING. IT MUST HAVE AS ITS LAST /D44 WORD A NULL TO STOP THE COMPARE. IF THE 2ND STRING HAS A NULL CHARACTER /D44 BEFORE THE ROUTINE REACHES THE NULL CHARACTER IN THE FIRST STRING, /D44 IT WILL RETURN A NON-MATCHING CONDITION. IF ALL THE CHARACTERS THAT /D44 PRECEDE THE NULL CHAR IN THE FIRST STRING MATCH THE CHARACTERS OF THE /D44 SECOND STRING, THEN A MATCH CONDITION IS RETURNED. /D44 /D44 ***************************************************************************** /D44 / This routine was never called. How about that. /D44 /D44 COMPST, /D44 XX /D44 AC7777 / DECREMENT FOR INDEXING /D44 TAD I COMPST / GET THE ADDR OF THE FIRST STRING /D44 DCA X1 / INTO INDEX 1 /D44 ISZ / POITN TO THE NEXT STRING ADDRESS /D44 AC7777 / DECREMENT FOR INDEXING /D44 TAD I COMPST / GET ADDRESS OF 2ND STRING /D44 DCA X2 /SET IT UP IN INDEX 2 /D44 ISZ / BUMP UP TO NO MATCH RETURN POINT /D44 COMPS1, /D44 TAD I X1 / GET CHAR FROM 1ST STRING /D44 SNA / IF ZERO, WE'RE ALL DONE /D44 JMP COMPSX / GO BUMP UP TO MATCH RETURN AND GO BACK /D44 CIA / COMPLEMENT FOR COMPARE /D44 TAD I X2 / GET CORRESPONDING CHAR FROM 2ND STRING /D44 SZA CLA / IF ZERO, THEY MATCH /D44 JMP I COMPST / IF NOT THEY DO'T, GO BACK /D44 JMP COMPS1 / GO GET ANOTHE RCHAR AND DO IT OVER AGAIN /D44 COMPSX, /D44 ISZ / BUMP UP TO MATCH RETURN /D44 JMP I COMPST / RETURN JMP CSTUFF, XX / A SUBROUTINE OF COMMON CODE /A037 / I DON'T HAVE TIME TO FIGURE OUT /A037 / EXACTLY WHAT THIS DOES RIGHT NOW /A037 CLA IAC MQL JMS STTMPS / GO DO THE SIGALING JMS READMU / GO READ IT JMP GOLDMU DCA STATUS / STORE AC IN STATUS -1 = NONEXISTENT DOCUMENT TAD I (MUBUF+MNDOCN) / GET THE DOCUMENT NUMBER JMP I CSTUFF /A037 /*************************************************************************** / / THIS ROUTINE WILL DETERMINE WHETHER OR NOT THERE IS FILENAME IN THE / INDEX DOCUMENT FOR A DOCUMENT NUMBER THAT IS AT LOCATION 'DCNBR' / ON A DRIVE PASSED TO IT IN THE AC. IF IT DOES NOT FIND SUCH A / DOCUMENT NAME IT WILL RESTORE THE FILE NUMBER AT 'INBUF' IN ASCII. / IF IT FINDS THE NAME, IT WILL PUT IT AT 'INBUF'. / /****************************************************************************** DTNAM, XX BSW / POSITION DRVE NUMBER IN THE UPPER SIX BITS CLL RTL / SET DRIVE NUMBER IN IT'S PLACE FOR RDFINI IAC / SET TO READ FILE ONE (INDEX FILE) JMS OPENRD / GO OPEN THE FILE FOR READING DTNAM1, JMS GTLIST / GET THE NAME AND NUMBER OF A FILE ON THE INDEX JMP DTNAM2 / END OF FILE JUMP CIA / GOT A NUMBER, COMPLEMENT IT FOR COMPARE TAD DCNBR / ADD IN THE NUMBER WANTED SZA CLA / THEY'RE EQUAL WE GOT IT JMP DTNAM1 / GO SEE IF THE NEXT ONE IS WHAT WE WANT DCA SIGNL / TURN OFF SIGNAL THAT SAYS DOC HAS NO NAME JMP I DTNAM / GO BACK DTNAM2, JMS COPOVR / GO MOVE THE FILENAME TO INBUF /C013 JMP I DTNAM / ALL DONE /********************************************************************** / / THIS IS A ROUTINE THAT GETS THE SIZE OF A DOCUMENT / YOU MUST PASS THE DRIVE-FILE NUMBER IN THE AC / DRIVE NUMBER IN THE UPPER 4 BITS / FILE NUMBER IN THE BOTTOM 8 BITS / /************************************************************************* GTFLSZ, XX JMS OPENRD / GO OPEN THE DOCUMENT PASSED IN THE AC CDFFIO / CHANGE DATA TO FILE IO FIELD TAD I (RDFSIZ) / GET THE SIZE OF THE FILE CDFMYF JMP I GTFLSZ /**************************************************************************** / / HMBLCK -- GET THE HOME BLOCK OF THE INPUT DISKETTE INTO MEMORY / COPY NUMBER OF DOCUMENTS IN FILE SYSTEM TO NDOCFS / /******************************************************************************* HMBLCK, XX AC7777 / GET MINUS 1 TO SEE IF THE HOME BLOCK TAD HBLSIG / HAS BEEN READ ALREADY SNA CLA / IF NOT ZERO, THEN IT HASN'T BEEN READ JMP I HMBLCK / IT HAS BEEN READ, RETURN TAD FROMDR JMS GTHMBL / GO GET IT INTO MEMORY CUB1 / BUFFER ADDRESS ISZ HBLSIG / SET SIGNAL THAT THE HOME BLOCK HAS BEEN READ / NOW MOVE IT INTO ITS PERMANENT LOCATION TAD I (CUB1+11) / GET #BLOCKS IN FILE SYSTEM /A037 DCA MDOCFS / SAVE AS A HANDY NEGATIVE NUMBER /A037 TAD MDOCFS / /A037 CIA / /A037 DCA NDOCFS / AND AS A HANDY POSITIVE NUMBER /A037 TAD NDOCFS / AND FOR THE COPY ROUTINE /A037 DCA HMBLT1 / SAVE IN CUCOPY CALL /A037 JMS CUCOPY CUB1+12 / COPY OVER THE FILE HEADER BLOCKS CDFMYF DCNBRS / AREA WHERE IT IS CDFBUF HMBLT1, 0 / NUMBER OF BLOCKS IN FILE SYSTEM /A037 / IS THE NUMBER OF WORDS TO COPY /A037 JMP I HMBLCK / RETURN /------------------ PAGE /************************************************************************ / / ROTUINE TO DISPLAY MESSAGE TO REMOVE THE SYSTEM DISKETTE / AND REPLACE WITH THE DISKETTE TO BE COPIED TO OR FROM / /************************************************************************** DISP1, XX DCA DISP11 / PUT MESSAGE INTO CALL LIST DISP10, /A018 JMS I TOPSC / GO ERASE AND DISP '--COPY DOCUMENT--' /A018 CIFMNU JMS I IOACAL 0 SYSTM / PRINT 'PLEASE REMOVE THE SYSTME D ISKEETE FROM LEFT 1305 / CURSOR POSITION CIFMNU JMS I IOACAL 0 AITDT 1505 CIFMNU JMS I IOACAL 0 DISP11, 0 / PLACE FOR MESSAGE ADDRESS IFDEF ENGLSH <1536> IFDEF ITALIAN <1532> / CURSOR POSITION IFDEF V30NOR <1536> IFDEF V30SWE <1536> JMS APRORG / "AND PRESS RETURN OR GOLD MENU /A037 JMS ASK / GO FIND OUT WHAT HE TYPED IN JMP GOLDMU / GO BACK TO MAIN MENU JMP DISP10 / GO DISPLAY MESSAGE AGAIN JMP I DISP1 / RETURN /*********************************************************************** / / THIS ROUTINE WILL READ WHAT THE USER TYPES IN, AND / A) IF HE TYPED RETURN, IT WILL RETURN TO NSI+2 / B) IF HE TYPES GOLD MENU, IT WILL RETURN TO NSI / B) IF HE TYPES A GOLD KEY THAT IS NOT GOLD MENU IT WILL.. / 1) RING THE BELL / 2) GIVE HIM A MESSAGE TO NOT USE THOSE KEYS / 3) TELL HIM TO TRY AGAIN TIL HE GETS IT RIGHT / C) IF HE TYPES ANYTHING ELSE IT WILL... / 1) RING THE BELL / 2) DISPLAY WHAT HE TYPED AND TELL HIM IT HAS NO MEANING / 3) GO BACK AND ASK HIM TO TYPE SOMETHING AGAIN / /***************************************************************************** ASK, XX / ASK USER FOR A "CARIAGE RETURN" OR "GOLD MENU" JMS MVCPIN / SAVE THE INBUF BUFFER AT CUPFNM /A037 CDFMYF CIFMNU JMS I INACAL / READ WHAT HE TYPES IN INBUF JMP GMKEYT / HE TYPED A GOLD KEY, GO SEE IF ITS GOLD M CLA MQA / SEE IF HE TYPED ANY CHARACTERS IN SZA CLA / IF 0 CHARACTERS THEN HE TYPED RETURN JMP ASK3 / GO TELL HIM ITS GARBAGE / NICE FELLOW TYPED RETURN SO.. ISZ ASK / INCREMENT PAST THE GOLD MENU RESPONSE RETURN ASK4, ISZ ASK / INCREMENT PAST THE NO MEANING RETURN JMS COPOVR / RESTORE THE INBUF BUFFER FROM CUPFNM /A037 JMP I ASK / AND RETURN THERE. ASK3, / GO TELL HIM THAT HIS GARBAGE IS NONSENSE JMS NOMEAN / TYPING 'X' HAS NO MEANING JMP ASK4 / GO BUMP ONCE AND RETURN GMKEYT, / GO SEE WHAT SORT OF GOLD KEY HE TYPED JMS GMTST / THIS ROUTINE OUTPUTS A MESSAGE IF NOT GOLD MENU 2205 / ERASE SCREEN FROM THIS LINE ON /A026 JMP I ASK / HE HIT GOLD MENU, SO RETURN NSI JMP ASK4 / HE FINALLY HIT RETURN /***************************************************************************/ / ROUTINE TO GET FILE NAMES AND/OR NUMBERS FROM THE INDEX DOCUMENT / EACH TIME YOU ENTER IT YOU WILL GET THE NEXT NAME ON THE FILE. / SIMPLY CALL THE ROUTINE. / /***************************************************************************** GTLIST, XX GTNXT, /A004 TAD (INBUF+1 / GET ADDRESS OF INPUT BUFFER FOR NAME DCA INDBUF / PUT IT FOR INDIRECTING THRU JMS NMSRC / GO SEARCH FOR NMIBN / JMP LISTEF / END OF FILE RETURN TAD MSTRLN / GET LENGTH OF STRING DCA LISTCT / SET IT UP FOR LOOP CONTROLL GTLIS1, JMS RDNXCH / GO GET NEXT CHARACTER OF FILE JMP LISTEF / END OF FILE TAD MLT / LEFT ANGLE BRACKET? SNA JMP GTLIS2 / YES, THEN ALL DONE TAD PLT / RESTORE CHARACTER TAD SFTRET / CHECK FOR SOFT RETURN CHARACTER SNA / IF NOT ZERO, NOT A SOFT RETURN JMP GTLIS1 / GO GET NEXT CHARACTER TAD WWRAPB / CHECK TO SEE OF IT IS A WORD WRAP BLANK SNA / IF NOPT ZERO, THEN ISN'T A WORD WRAP BLANK JMP GTLIS1 / GO GET NEXT CAHRACTER TAD PWWRPB / RESTORE THE CHARACTER AND P177 / WE'RE ONLY INTERSTED IN THE LOWER 7 BITS TAD MSEVN / WORD WRAP CHARACTER? SNA / IF IT IS, BYYPASS IT JMP GTLIS1 / GO GET NEXT CHARACTER FROM FILE TAD SEVEN / RESTORE CHARACTER DCA I INDBUF / PUT IT AT INBUF ISZ INDBUF / UPDATE BUFFER POINTER ISZ LISTCT / UPDATE THE LIST COUNTER JMP GTLIS1 / GO DO NEXT CHARACTER GTLIS2, AC7777 / GET A MINUS 1 TAD INDBUF / SUBTRACT 1 FROM POINTER TO MAKE ASCIZ STRING DCA INDBUF / THIS CUTS OUT THE FINAL BLANK FROM NAME TAD I INDBUF / GET THE CHARACTER /A004 TAD MSPACE / IS IT A SPACE? /A004 SZA CLA / IF IT IS, GO MAKE IT A ZERO /A004 JMP GTNXT / IF NOT A SPACE, TREAT IT AS NOT FOUND /A004 TAD INDBUF / CHECK TO SEE IF LENGTH OF NAME IS ZERO/A006 TAD (-INBUF2 / NEG VALUE OF BEGINNING OF NAME /A006 SNA CLA / IF NOT ZERO, NAME IS GREATER THAN ZERO/A006 JMP GTNXT / GO GET NEXT NAME FROM INDEX FILE /A006 DCA I INDBUF / ASCIZ STRING FINAL 0 JMS NMSRC / GO SEARCH FOR <#> NMIBNO+1 / #> JMP LISTEF / END OF FILE JMS GTNUM / GO GET THE NUMBER JMP LISTEF / END OF FILE ISZ GTLIST / INCREMNT TO RETURN ADDR LISTEF, JMP I GTLIST / NORMAL RETURN IS THE BUMPED RETURN / WITH AC CONTAINING THE FILE NO / END OF FILE RETURN IS NOT BUMPED, AC=0 LISTCT=T3 / COUNTER FOR LOOP CONTROL INDBUF=T2 / WPRD TO INDIRECT THRU /******************************************************************* / / A ROUTINE TO MOVE A FILENAME FROM CUPFNM AREA TO INBUF AREA / /********************************************************************** MVCPIN, XX JMS CUCOPY INBUF+1 / TARGET AREA /M013 CDFMYF / SOURCE FIELD NBR CUPFNM / SOURCE FIELD /M013 CDFMYF / IN MY FIELD STRLEN / LENGTH OF MOVE JMP I MVCPIN / RETURN / ********************************************************************* /A039 / / WINCHK -ROUTINE TO CHECK IF SOURCE & DEST. DEVICES ARE WINNIE / AREAS AND SET UP APPROPRIATE FLAGS & TEXT POINTERS / CALLER HAS LEFT US IN MENU DATA FIELD!!!! / / ********************************************************************* /A039 WINCHK, AC0004 / MASK FOR WINNIE BIT IN MNOPTN AND I (MUBUF+MNOPTN) / GET WORD WITH WINNIE BIT SNA CLA / SKIP IF WINNIE BIT SET JMP WINCHX / ELSE JUST EXIT AC0010 / MASK FOR "DEV # 1 IS WINNIE" BIT AND I (MUBUF+MNOPTN) / AND IN THE WORD DCA WINONE / WILL BE NON-ZERO IF BIT WAS SET TAD TODRV / GET DESTINATION DEVICE # JMS ISWIN / & CHECK IF A WINNIE AREA DCA WINDST / NON-ZERO IF WINNIE TAD FROMDRV / REPEAT SEQUENCE FOR SOURCE JMS ISWIN DCA WINSRC WINCHX, JMP WINSTR / NOW GO SET THE TEXT POINTERS /----------------- PAGE /**************************************************************************** / / CONTROL IS PASSED HERE WHENEVER WE'RE DOING A COPY ALL AND THE / FILE NAME WE GOT FROM THE INPUT DISKETTE WAS NOT FOUND. THIS / SITUATION ARISES WHEN THERE IS A CORRUPTED INDEX FILE. COPY FILE'S / ROUTINES THAT READ THE INDEX FILE TO GET A FILE NAME ARE NOT SMART / ENOUGH TO REALLIZE THAT THE FILE IS CORRUPTED, AND THUS PASSES / GARBAGE AS THE FILE NAME. IT IS THEN NOT FOUND BY THE REGULAR / ROUTINES THAT READ THE INDEX FILE. WHEN THIS SITUATION ARISES, / NO MORE FILE NAMES WILL BE COPIED. THIS ROUTINE WILL MAKE IT AS IF / ALL THE FILE NAMES HAVE BEEN COPIED AND ONLY THE NUMBERED DOCUMENTS / ARE COPIED. / /****************************************************************************** CPYSL5, XX AC7775 / CHECK TO SEE IF THIS IS A COPY ALL TAD COPYTP / GET THE COPY TYPE WE'RE DOING SZA CLA / IS IT A COPY ALL? C004 JMP I CPYSL5 / IF NOT, RETURN IAC / CLEAR SIGNAL FOR MNTMP3 /A004 ISZ SIGNL / SIGNAL THAT WE'RE DOING ONLY NUMBERED DOCUMENTS NOW CDFMNU /C004 DCA I (MUBUF+MNTMP3) / TURN OFF BAD FILE INDICATOR /A004 TAD (MUBUF+MNIBUF / GET ADDR OF MENU STRING /C042 DCA I (MUBUF+MNPOS / PUT ADR OF MENU STRING INTO MENU OFFSET/C042 CDFMYF /C004 TAD DCNBR / GET THE DOCUMENT NUMBER WE'RE COPYING /C004 JMP CPYSL4 / GO COPY IT /***********************************************************************/ / / / DSPLNM -- DISPLAYS THE NAME OF THE DOCUMENT BEING COPIED / / IF THERE IS NO NAME IT DISPLAYS THE NUMBER / / ALSO DISPLAYS THE NEW NUMBER ASSIGNED ON THE DESTINATION DISC / / AND DISPLAYS THE 'COPYING BLOCK MESSAGE' / / / / REV HISTORY / / 007 GJP CREATED / / 037 HLP DISPLAY NEW NUMBER / / / /***********************************************************************/ DSPLNM, / XX / CLA / TAD SVIFNO / GET THE DRV-FILE NBR / AND P377 / STRIP OFF THE DRIVE NUMBER / DCA CPYNBR / PUT DOCUMENT NBR TO DISPLAY IT / JMS I TOPSC / GO ERASE AND DISP CIFMNU / '--COPY DOCUMENT--' / JMS I IOACAL / 0 / NOWCOP / "YOU ARE NOW COPYING DOCUMENT N" / 1115 / CPYNBR, 0 / DOCUMENT NUMBER / CLA / TAD SIGNL / SEE IF WE'RE DOING NUMBERED DOCUMENTS / SMA CLA / IF YES, THEN CHECK IF THERE'S A NAME / JMP DSPNM / IF NOT, GO DISPLAY THE NAME / TAD SIGNL3 / GET SIGNAL IF THERE IS A NAME / SNA CLA / IF NON ZERO HERE, THEN NO NAME / JMP DSPLN1 / NO NAME, GO DISPLAY NEW NUMBER /A037 DSPNM, / CIFMNU / JMS I IOACAL / 0 / DCNAME / 'XXXXXXXXXXXXX' / 1315 / INBUF+1 / NAME OF DOCUMENT / DSPLRT, DCA CHARCT / CLEAR THE CHARACTER COUNTER /M040 TAD ONE / GET A CONSTANT OF ONE / DCA BLKCNT / INIT BLOCK COUNTER / CIFMNU / JMS I IOACAL / 0 / COPCNT / DISPLAY COPYING BLOCK #001 / 1515 / JMP I DSPLNM / RETURN / /M039 SPACE WAR MOVE /D039DSPLN1, / NO NAME, SO DISPLAY THE NEW NUMBER /A037 /D039 / THE NEW NUMBER IS ALREADY AT INBUF+1 /A037 /D039 CIFMNU /D039 JMS I IOACAL /D039 0 /D039 NWNBRT / NEW NUMBER TEXT /D039 1315 / POSITION ON SCREEN /D039 INBUF+1 / BUFFER POINTER /D039 JMP DSPLRT / GO DISPLAY "COPYING BLOCK ..." /***********************************************************************/A007 / /A007 / BLOCK COUNT ROUTINE. THIS ROUTINE WILL DISPLAY THE COUNT OF /A007 / OF THE BLOCK OF THE DOCUMENT BEING COPIED. EACH TIME IT IS /A007 / ENTERED, IT WILL INCREMENT THE BLOCK COUNT AND DISPLAY IT. /A007 / /A007 /***********************************************************************/A007 DSPCNT, /A007 XX /A007 DCA CHARCT / CLEAR THE CHARACTER COUNTER /M040 ISZ BLKCNT / INCREMENT THE BLOCK COUNTER /A007 CIFMNU /A007 JMS I IOACAL /A007 0 /A007 BLOCKS /A007 IFDEF ENGLSH <1534> /A007 IFDEF ITALIAN<1532> IFDEF V30NOR <1523> /A046 IFDEF V30SWE <1523> BLKCNT /A007 JMP I DSPCNT /A007 CHARCT, 0 /M040 BLKCNT, 0 /A007 /***********************************************************************/M007 / /M007 / THIS ROUTINE WAS MOVED HERE TO MAKE ROOM ELSEWHERE. /M007 / IT MERELY PUTS A CHARACTER WHICH IS IN THE AC OUT TO /M007 / THE OUTPUT FILE. THE OUTPUT FILE HAVING BEEN PREVIOUSLY /M007 / OPEDNED FOR UPDATE. /M007 / IT WILL ALSO COUNT THE CHARACTERS BEING PUT OUT, AND GO TO /A007 / THE BLOCK COUNT DISPLAY ROUTINE WHENEVER THE CHARACTER COUNT /A007 / GETS TO 512(10), 1000(8), I.E. ONE BLOCK. /A007 / /M007 /***********************************************************************/M007 PDXCH, /M007 XX /M007 CDFMYF /M007 CIFFIO /M007 FILEIO /M007 XPUTST /M007 ISZ CHARCT / INCREMENT THE CHARACTER COUNT /M040 TAD CHARCT / GET THE CHAR COUNT /M040 TAD M512 / ADD IN MINUS 512(10)/100)(8) /A007 SMA CLA / IF MINUS, BLOCK STILL NOT FULL /A007 JMS DSPCNT / IF ZERO, THEN BLOCK IS FULL /A007 JMP I PDXCH /M007 /COPIES INPUT FROM MENU FIELD TO INBUF FOR NO MEANING PROMPT MVINPT, XX CLA JMS CUCOPY /GO COPY INPUT FROM MENU FIELD TO INBUF MUBUF+MNIBUF /ADDRESS OF FROM FOR CUCOPY /C042 CDFMNU /DATA FIELD OF FROM INBUF+1 /ADDRESS OF FOR FOR CUCOPY CDFMYF /CHANGE DATA FIELD TO MINE STRLEN /NUMBER OF WORDS TO COPY (STANDARD) JMP I MVINPT /RETURN TO CALLED /************************************************************************* / / THIS ROUTINE WILL INSERT THE NUMBER OF THE DRIVE PASSED TO IT IN / THE AC (IN ASCII) IN FRONT OF THE NAME OR NUMBER THAT THE USER / TYPED IN AT THE TERMINAL AND THEN SET DRIVE NUMBER WITH THE NAME / OR NUMBER OF THE FILE IN THE PROPER BUFFERS SO THAT THE ROUTINE / 'FILNAM' OF MENU CAN USE IT AND GET THE FILE WANTED. / /************************************************************************** FIXNAM, XX DCA CUB1 / GET BUFFER ADDR TAD PERIOD / GET A PERIOD ".' DCA CUB1+1 / PUT IT INTO BUFFER JMS CUCOPY / GO COPY OVER FILENAME/NBR FROMIN, INBUF+1 / FROM ADDR CDFMYF / FROM FIELD CUB1+2 / TO FIELD CDFMYF / TO FIELD STRLEN / LENGTH OF MOVE JMS CUCOPY / GO COPY IT BACK CUB1 / FILENAME/NMBR WITH DRV. IN FRONT OF IT CDFMYF / FROM FIELD MUBUF+MNIBUF / TO ADDR /C042 CDFMNU / TO FIELD STRLEN / STRING LENGTH JMP I FIXNAM / ********************************************************************* /A039 / / WINSTR - A CONTINUATION OF WINCHK, SETS UP TEXT STRING POINTERS /A039 / & PASSES CONTROL BACK TO ORIGINAL "CALLER" /A039 / / ********************************************************************* /A039 WINSTR, CDFMYF / BACK TO OUR FIELD /A039 TAD WINSRC / GET WINNIE SOURCE FLAG /A039 SZA CLA / SKIP IF NOT WINNIE /A039 TAD (TXTARE-TXTDRV) / IS WINNIE SET OFFSET OF AREA TEXT IN AC/A039 TAD (TXTDRV) / ADD IN POINTER TO DRIVE TEXT STRING /A039 DCA DCDEV / & PLUG DIRECTLY INTO IOACAL SEQUENCE /A039 TAD WINDST / GET WINNIE DESTINATION FLAG /A039 SZA CLA / SKIP IF NOT WINNIE /A039 TAD (TXTARE-TXTDRV) / IS WINNIE SET OFFSET OF AREA TEXT IN AC/A039 TAD (TXTDRV) / ADD IN POINTER TO DRIVE TEXT STRING /A039 DCA DSTDEV / & PLUG DIRECTLY INTO IOACAL SEQUENCE /A039 TAD WINDST / GET WINNIE DESTINATION FLAG /A039 SZA CLA / SKIP IF NOT WINNIE /A039 TAD (TXTVOL-TXTDSK) / IS WINNIE SET OFFSET OF VOLUME TEXT IN AC /A039 TAD (TXTDSK) / ADD IN POINTER TO DISKETTE TEXT STRING /A039 / & LEAVE IN AC TO BE SAVED BACK AT "WINRET" /A039 JMP WINRET / GO BACK TO ORIGINAL "CALLER" /A039 /----------------------- PAGE /*********************************************************************** / / THE SITUATION IS AS FOLLOWS: / THE NAME OF THE DOCUMENT TO BE COPIED IS ALREADY IN THE / INDEX FILE OF THE DISKETTE TO WHICH THE USER WANTS IT COPIED. / THIS CODE SETS UP THE SIGNALS TO THE MAIN MENU CODE TO ASK THE USER / WHAT HE WANTS TO DO. HE IS GIVEN THE FOLLOWING CHOICES: / 1. WRITE TO THE TOP OF DOCUMENT (MAIN MENU RETURNS A 6 IN AC) / 2. WRITE TO THE BOTTOM OF DOCUMENT(MAIN MENU RETURNS A 5 IN AC) / 3. OVERWRITE THE DOCUMENT (MAIN MENU RETURNS A 4 IN AC) / 4. BYPASS THE DOCUMENT (MAIN MENU RETURNS A 3 IN AC) / 5. RENAME THE DOCUMENT (MAIN MENU RETURNS A 2 IN AC) / / BEFORE GOING TO MAIN MENU, THIS ROUTINE WILL SET UP MNTMP4 AND MNTMP5 / TO 0 AND 1 RESPECTIVELY WHICH SIGNALS MAIN MENU TO DISPLAY THE / RIGHT QUESTIONS ASKING FOR THE ABOVE INFORMATION. / / THEN CONTROL IS PASSED TO SUBROUTINE 'DTAO', WHICH CALLS MAIN MENU / AND PUTS THE VALUE RETURNED IN THE AC BY MAIN MENU INTO 'OPTION', / THE VALUE TELLING US WHAT TO DO. / / PLEASE NOTE THAT THE VALUE AT 'OPTION' IS CHANGED BY THIS ROUTINE / TO THE VALUES GIVEN IN PARENTHESIS BELOW WHENEVER A WRITE-TO-TOP (0), / WRITE-TO-BOTTOM (1), OR OVERWRITE (-1) ARE REQUESTED. THESE LAST VALUES / ARE THE CODES WHICH ARE THE SIGNALS TO 'WPFILS' TO WRITE TO THE TOP, / BOTTOM, OR OVERWRITE THE DOCUMENT. / NOTE ALSO THAT THE VALUE 1, IS DEFAULTED TO BY SUBTRACTING -4 / (THE VALUE MAIN MENU PASSES FOR AN OVERWRITE) FORM 5 (THE VALUE MAIN / MENU PASSES FOR A WRITE-TO-BOTTOM) / /******************************************************************************* CTDDIN, / DOCUMENT ALREADY ON OUTPUT DISKETTE MQL AC0001 / SIGNAL MAIN MENU TO READ TBO JMS STTMPS / GO SET UP TO READ MAIN MENU / TAD TODRV /DRIVE TO COPY TO /A033 CIA /2'S COM /A033 TAD FROMDR /DRIVE TO COPY FROM /A033 SNA CLA / INPUT DRIVE=OUTPUT DRIVE? /A033 JMP RENAME /YES /A033 JMS DTAO / GO ASK WHAT IS WANTED AC0006 / GET A SIX TO CHECK FOR WRITE TO TOP CIA / COMPLEMENT IT TO COMPARE IT TAD OPTION / IS OPTION A WRITE-TO-TOP? SNA CLA / IF NOT, FALL THRU JMP ZOPTN / GO ZERO OPTION(SIGNAL FOR WRITE-TO-TOP) AC7776 / GET A MINUS 2 TO CHECK FOR RENAME OPTION TAD OPTION / GET OPTION TO CHECK IT SNA CLA / BYPASS JMP IF NOT RENAME JMP RENAME / GO RENAME THE DOCUMENT AC7775 / GET A MINUS 3 FOR CHECKING TAD OPTION / ADD IN THE OPTION SNA CLA / BYPASS JMP IF NOT RETURN JMP CUGSP / HE HIT RETURN AC0004 / GET A +4 TO CHECK FOR OVERWRITE CIA // CONVERT IT TO COMPARE TAD OPTION / GET THE VALUE OF OPTION SZA CLA / IS IT AN OVERWRITE? JMP SIZCK / NO, GO CHECK THE SIZE AC7777 / GET A -1, WPFILS OVERWRITE CODE ZOPTN, DCA OPTION / PUT IT WHERE EVERYONE CAN GET AT IT SIZCK, JMS TSTSZ / GO SEE IF THERES ROOM ENOUGH JMP NOROOM / GO TELL USER NO ROOM DOIO, / SET UP TO DO THE IO TAD SVIFNO / GET INPUT DOC AND DRV NBR JMS OPENRD / GO OPEN THE FILE FOR READ ONLY TAD SVOFNO / GET OUTPUT DOC AND DRV NBR MQL /INOT MQ FOR OPEN TAD OPTION / GET THE OPTION DESIRED CIFFIO FILEIO XDSKIN JMS DSPLNM / GO DISPLAY THE NAME TO THE USER /A007 JMS CPYFLE / GO COPY THE FILE JMP GOLDMU / HE HIT GOLD HALT JMP CUGSP / GO BACK FOR MORE / THE CODE BELOW ALLOWS THE USER TO RENAME THE DOCUMENT BECAUSE THE / OUTPUT DISKETTE ALREADY HAS A DOCUMNET OF THE NAME THAT'S ON / THE INPUT DISKETTE RENAME, JMS I TOPSC / GO ERASE AND DISP '--COPY DOCUMENT--' /A018 CIFMNU JMS I IOACAL / GET READY TO OUTPUT A MEASSAGE 0 TXCS3 / ^P^S^P^S^P /A037 1505 TXETND / ENTER A NEW NAME FOR THE DOC ETC. 1705 TXOR / "OR " 7777 TXPRCN / "PRESS RETURN TO CONTINUE TO NEXT JMS ORGOLD / OR GOLD MNU ORAR CAM / USE COMBINED MICROINST OF CLA MQL TO SAVE 1 LO/A039 AC7777 / GET SIGNAL FOR CKINPT ROUTINE TELLING IT THAT WE / WANT A NAME ONLY (NOT A NUMBER) DCA RSIGN / PUT IT WHERE CKINPT CAN GET IT AC0002 / SIGNAL MAIN MENU TO READ ONLY (DON'T DO FILNAM) JMS STTMPS / GO SET MAIN MENU SIGNALS JMS READMU / GO TO MAIN MENU TO READ WHAT USER PUT IN JMP GOLDMU / HE HIT GOLD MENU, GO GET OUTY CDFMYF JMS CPMNOV / GO COPY THE INPUT OVER FROM MENU FIELD JMS CKINPT / GO CHECK WHAT HE PUT IN JMP CUGSP / HE HIT RETURN, GO GET NEXT FILE JMP GARBAG / HE PUT IN A NUMBER, BAD, GO TELL HIM DCA RSIGN / CLEAR SIGNAL THAT WE'RE DOING A NAME ONLY FOR /A019 / FOR CKINPT ROUTINE /A019 TAD TODRV / GET DRIVE WE ARE COPYING TO TAD OSXTY / MAKE IT AN ASCII NUMBER JMS FIXNAM / GO FIX UP THE NAME JMP CTDIN1 / GO CONTINUE PROCESSING WITH NEW NAME GARBAG, / HE TYPED IN GARBAGE, TELL HIM AND ASK AGAIN JMS MVINPT / /A037 JMS NOMEAN / /A037 JMP RENAME / GO ASK AGAIN /***********************************************************************/ / / / GTNBR -- GET THE NEXT AVAILABLE FILE NUMBER FROM THE DRIVE / / THAT WE ARE COPYING TO SO THAT WE CAN COPY THE FILE WHEN THE / / USER DOESN'T WANT TO NAME THE FILE. / / / / IF THERE ARE NO MORE AVAILABLE DOCUMENT NUMBERS THEN / / / WE WILL JUMP TO NSPCMSG. THIS IS A TEMPORARY FIX /A037 / / FOR A HIGH PRIORITY BUG. WE USED TO JUMP TO NOROOM /A037 / / WHICH GIVES THE WRONG MESSAGE AND DOESN'T PROPERLY /A037 / / HANDLE ALL EXITS /A037 / / JUMPING TO NSPCMSG HAS THE DISADVANTAGE OF HAVING THE /A037 / / ONLY EXIT BE TO MAIN MENU--THE COPY CANNOT CONTINUE TO /A037 / / THE NEXT DOCUMENT (COPY SOME OR ALL) WHICH COULD BE /A037 / / COPIED IF IT EXISTED ON IN A TBO SITUATION (E ELIMINATED/A037 / / THAT'S ALL FOLKS. THERE'S ONLY SO MUCH YOU CAN DO /A037 / / WITH SHIP DATE BREATHING DOWN YOUR NECK HLP /A037 / / / /***********************************************************************/ GTNBR, XX TAD TODRV / GET THE 'TO' DRIVE NUMBER JMS GTHMBL / GET THE HOME BLOCK AND SET IT UP FOR PROCESSING CUB1 / INPUT BUFFER ADDRESS JMS GTNXAV / GO GET THE NEXT AVAILABLE FILE NUMBER CUB1+12 / WHERE THE FILE NUMBERS ARE IN BUFFER SNA / NON-ZERO HERE MEANS WE GOT ONE JMP NSPCMSG / ZERO MEANS NONE LEFT. SEE COMMENTS ABOVE /C037 JMS DONBR / GO CONVERT IT TO DECIMAL CUPFNM / ADDRESS WHERE ASCII NUMBER WILL BE PUT JMP I GTNBR / RETURN COPOVR, XX JMS CUCOPY CUPFNM CDFMYF INBUF+1 CDFMYF STRLEN-1 JMP I COPOVR /************************************************************************* / / THIS ROUTINE SETS UP 'MNTMP4' AND 'MNTMP5' TO THE VALUES PASSED / TO IT IN THE MQ AND AC. THIS IS USED PRIOR TO GOING TO MAIN MENU / TO TELL THE MAIN MENU CODE WHAT TO DO. BEFORE USING 'READMU' / YOU MUST SET MNTMP4 AND MNTMP5 SO THAT MAIN MENU KNOWS WHAT TO DO. / /************************************************************************** STTMPS, XX / SET PARAMETERS FOR MAIN MENU CDFMNU DCA I (MUBUF+MNTMP4) MQA DCA I (MUBUF+MNTMP5) CDFMYF JMP I STTMPS / GO BACK /-------------------- PAGE NOROOM, / NOT ENOUGH ROOM ON FLOPPY TO HANDLE FILE JMS TOSMALL / GO PUT THE MESSAGE TODRV / DRIVE NUMBER WE'RE CPYING TO INBUF+1 / AREA WHERE NAME OF FILE IS CIFMNU JMS I IOACAL 0 TARTN 2005 JMS ORGOLD ORAR JMS KBRD JMP CUGSP / GO ASK FOR ANOTHER NAME TO COPY / READ A CHARACTER FROM THE INPUT DOCUMENT / / JMS RDNXCH; EOF RETURNS TO HERE; OK RETURNS TO HERE / RDNXCH, .; CLA; CDFMYF; CIFFIO; FILEIO; XRDFNC SPA;CLA / Treat errors like E-O-F. /A002 SZA ISZ RDNXCH JMP I RDNXCH /************************************************************************** / / THIS ROUTINE WILL GET THE NEXT AVAILABLE FILE NUMBER ON A DISKET / IT LOOKS FOR THE FIRST ZERO WORD IN THE HOME BLOCK. AS IT LOKS AT / EACH WORD OF THE AREA OF THE HOME BLOCK THAT CONATAINS THE HEADER / BLOCK NUMBERS FOR THE FILE, IT INCREMENTS A COUNTER. WHEN IT FINDS / A ZERO IT PUTS A 1 IN THE WORD IN THE HEADER BLOCK TO INDICATE / THAT THE FILE IS IN USE, AND RETURNS. / CALLED BY: / JMS GTNXAV / ADDR OF BUFFER OF HOME BLOCK +12 (THE AREA WHERE FILE NOS ARE. / NOTE: 12 ABOVE IS OCTAL / /****************************************************************************** GTNXAV, XX TAD I GTNXAV / GET THE ADDR WHERE FILE NOS ARE ISZ GTNXAV / TO RETURN ADDRESS DCA X0 / PUT ADDR WHERE FILE NOS ARE IN INDEX IAC DCA COUNT1 / INITALIZE THE COUNT GTNXA1, ISZ COUNT1 / INCREMENT THE COUNT TAD I X0 / GET THE HEADER BLOCK FORTHE FILE SNA / IF NOT ZERO, THEN ITS THERE JMP GTTN / WE'VE GOT ONE SMA CLA / ARE WE AT END OF FILE AREA? JMP GTNXA1 / GO GET ANOTHER ONE JMP I GTNXAV / NO-SKIP RETURN GTTN, AC7777 / MINUS ONE TO DECREMENT INDEX TAD X0 / DECREMENT INDEX DCA X0 IAC / SIGNAL FILE NUMBER IN USE DCA I X0 TAD COUNT1 / GET THE FILE NUMBER JMP I GTNXAV / RETURN COUNT1=T1 / NEXT FILE NUMBER /****************************************************************************** / / THIS ROUTINE WILL GET THE HOME BLOCKS OF THE DISKETTE INTO MEMORY, / AND SET IT UP SO THE ROUTINE THAT GET NEXT FILE NUMBER WILL BE ABLE / TO FUNCTION. CALLED BY: / TAD DRIVENO /C037 / JMS GTHMBL / BUFFER ADDRESS / THE ROUTINE PUTS A MINUS ONE AT END OF THE FILE NUMBER AREA SO THAT / WE CAN KNOW WHEN WE ARE OUT OF FILE NUMBERS / /****************************************************************************** GTHMBL, XX / DRIVE NO IS IN AC AT CALL /C037 JMS GTDENS / GO GET DRIVE AND CDF INTO Q-BLOCK / ESTABLISH THE DENSITY OF THE DRIVE TAD I GTHMBL / GET THE BUFFER ADDRESS DCA QUQBLK+RXQBAD / PUT IT INTO Q-BLOCK TAD (RXBDIR) / GET BLOCK NUMBER OF HOME BLOCK DCA QUQBLK+RXQBLK TAD (RXERD) / SET THE FUNCTION TO READ DCA QUQBLK+RXQFNC / PUT IT INTO Q-BLOCK JMS QURX / GO READ THE HOME BLOCK CLA TAD I GTHMBL / GET BUFFER ADDRESS AGAIN TAD (322) / POSITITON TO THE END OF FILE NUMBERS AREA DCA TADIPL / PUT IT TO TAD THRU AC7777 DCA I TADIPL / PUT STOPPER INTO AREA ISZ GTHMBL / GET TO RETURN ADDR JMP I GTHMBL / GO BACK TADIPL=T1 / PLACE TO INDIRECT HRU /*************************************************************************** / / THIS ROTUTINE WILL SEARCH FOR A PARTICULAR SEQUENCE OF CHARACTERS / ON A FILE OPENED BY RDFILE. THE ADDRESS OF THE SEQUENCE OF / CHARACTERS TO BE SEARCHED FOR SHOULD FOLLOW THE JMS INSTRUCTION / THAT CALLS THIS ROUTINE. CALL IT AS FOLLOWS: / JMS NMSRC / ADDRESS OF STRING TO SEARCH FOR / WHERE TO GO AT EOF / RETURN POINT WHEN STRING IS GOTTEN / /*************************************************************************** NMSRC, XX NMSRC1, TAD I NMSRC / GET THE THING TO SEARCH FOR DCA NMISSP / SAVE THE STRING POINTER NMSRC2, JMS RDNXCH / GO GET A CHARACTER FOR THE FILE JMP NMSRC3 / END OF FILE CIA / COMPLEMENT THE CHAR TAD I NMISSP / IS IT EQUAL? SZA CLA JMP NMSRC1 / NO, GO RE-INITIALIZE ISZ NMISSP / BUMP UP TO NEXT CHAR OF STRING TAD I NMISSP / THIS THE END OF THE STRING? SZA CLA JMP NMSRC2 / NO, GO CHECK NEXT CHARACTER ISZ NMSRC / YES, AND WE HAVE A MATCH NMSRC3, ISZ NMSRC / END OF FILE RETURN (ONE ISZ ONLY) JMP I NMSRC / GO BACK NMISSP=T1 / CHAR STRING COUNTER / / A ROUTINE THAT WILL READ ASCII NUMBER AND CONVERT IT TO BINARY. / USED TO CONVERT FILE NUMBERS THAT EXIST ON THE INDEX FILE. / CALL IT AS FOLLOWS: / JMS GTNUM / EOF RETURN / NORMAL RETURN (GOT NUMBER) / /****************************************************************************** GTNUM, XX DCA GTNUMV / INIT BINARY TO ZERO GTNUM1, JMS RDNXCH / GO GET A FILE CHARACTER JMP I GTNUM / END OF FILE RETURN TAD (-72) / IS IT A NUMBER? SMA / IT MIGHT BE IF IT IS MINUS HERE JMP GTNUMD / ITS NOT, SO WE'RE DONE TAD (LF) / IS IT A NUMBER? SPA / IF ITS POSITIVE HERE THEN IT IS JMP GTNUMD / IF IT ISN'T, WE'RE ALL DONE DCA T1 / STORE THE NUMBER TAD GTNUMV / GET VALUE OF PREVIOUS NUMBER (IF ANY) CLL RTL / MULTIPLY BY FOUR TAD GTNUMV / ADD IN THE ORIGINAL NUMBER CLL RAL / DIVIDE BY 2 TAD T1 / ADD IN THE NEW NUMBER DCA GTNUMV / STORE IT FOR NEXT NUMBER JMP GTNUM1 / GO DO NEXT DIGIT GTNUMD, CLA TAD GTNUMV / GET THE VALUE OF THE NUMBER IN AC ISZ GTNUM / NORMAL RETURN JMP I GTNUM GTNUMV=T2 / RECONSTRUCTED BINARY OF THE DECIMAL ASCII / CODE MOVED HERE FOR SPACE REASONS /M039 DSPLN1, / NO NAME, SO DISPLAY THE NEW NUMBER /A037/M039 / THE NEW NUMBER IS ALREADY AT INBUF+1 /A037/M039 CIFMNU /M039 JMS I IOACAL /M039 0 /M039 NWNBRT / NEW NUMBER TEXT /M039 1315 / POSITION ON SCREEN /M039 INBUF+1 / BUFFER POINTER /M039 JMP DSPLRT / GO DISPLAY "COPYING BLOCK ..." /M039 NMIBN, "<-200;"N-200+40;">-200;0 / CONSTANT NMIBNO, "<-200;"#-200;">-200;0 / <#> CONSTANT /-------------------- PAGE /********************************************************************** / / THIS ROUTINE RINGS THE BELL ON THE TERMINAL AND RETURNS / /********************************************************************** RBELL, XX CIFMNU JMS I IOACAL 0 ASTRING BELTXT JMP I RBELL /*********************************************************************** / / THIS ROUTINE ASKS THE USER WHETHER OR NOT HE WANTS TO COPY / A DOCUMENT DURING A COPY SOME OPERATION. IT WILL DISPLAY / THE NUMBER AND NAME (IF ANY) THEN ASK HIM TO TYPE A "Y" / IF HE WANTS TO COPY IT, OR HIT RETURN IF HE WANTS TO GO ON / TO THE NEXT DOCUMENT WITHOUT COPYING, OR GOLD MENU IF HE / IS THROUGH COPYING. / /**************************************************************************** CPWISH, XX DCA CPWIS1 / SAVE DOCUMENT NUMBER IN DISPLAY STATEMENT TAD I CPWISH DCA CPWIS2 / PUT THE ADDRESS OF THE NAME TO BE DISPLAYED CPWISR, /A027 JMS I TOPSC / GO ERASE AND DISP '--COPY DOCUMENT--' /A018 CIFMNU JMS I IOACAL 0 DYWTC / DO YOU WISH TO COPY DOCUMNET NBR X 1115 CPWIS1, 0 / DOCUMNET NUMBER TAD I CPWISH / DOES THE NAME EXIST? SNA CLA / IF NOT DON'T DISPALY IT JMP NONAM2 CIFMNU JMS I IOACAL 0 DCNAME 1315 / CURSOR POSITION CPWIS2, 0 / NAME OF THE DOCUMENT NONAM2, JMS MSIYDT / GO DISPLAY MESSAGE /A012 JMS WISHIN / GO CHECK THE RESPONSE JMP GOLDMU / HE HIT GOLD MENU JMP CUGSP / HIT RETURN, HE DIDN'T WANT TO COPY JMP CPWIS3 / NO MEANING TO WHAT HE TYPED IN /A027 JMS COPOVR / GO COPY BACK WHAT WAS IN INBUF /A022 ISZ CPWISH / BUMP UP TO REURN ADDRESS JMP I CPWISH CPWIS3, /A027 JMS COPOVR / GO RESTORE INBUF /A027 JMP CPWISR / GO REPEAT THE QUESTION /A027 /************************************************************************** / / THIS ROUTINE CHECKS THE INITAL INPUT ON A COPY ONE OPERATION / IT WILL DISCARD ANY [, CURLY BRACKET, OR X. INPUTS. / IT WILL CHECK TO SEE IF A DOCUMENT NUMBER WAS PUT IN OR A / DOCUMENT NAME WAS PUT IN. IF ONLY A [, CURLY BRACKET OR X. WERE PUT / IN, IT ISSUES THE NOMEANING MESSAGE. IF NO ARGUMENT IS PUT IN / IT WILL RE-ISSUE THE ORIGINAL MESSAGE. / /**************************************************************************** CKINPT, XX TAD (CUPFNM) / GET ADDR WHERE INPUT COPIED TO DCA T1 / PUT IT FOR INDIRECTING THRU JMS NXACLL / GO GET THE ARGUMENT JMP NOARGT / GO HERE IF NO ARGUMENT JMS CVDCLL / GO SEE IF ITS A NUMBER JMP CURLY1 / NOT A NBR, GO CHECK CURLY BRACKET JMS NXACLL / GO GET THE NEXT ARGUMENT JMP ITSNBR / YEAH, NO ARG, ITS A NUMBERED DOC CLA / ARGUMENT GOTTEN, SEE WHAT IT IS TAD INBUF+1 / GET THE ARGUMNET CIA / COMPLEMENT FOR COMPARE TAD PERIOD / IS IT A PERIOD SZA CLA / YES. JMP CURLY2 / NO, GO SEE IF ITS A CURLY BRACKET NMNGER, /C003 JMS COPOVR / DOCUMENT NAME HAS A NBR. IN FRONT OF IT/C013 JMP NERR / GO TELL NO MEANING TO WHAT HE TYPED /C003 JMS NXACLL / GO GET NEXT ARGUMENT JMP NERR / NO MEANING ERROR JMS CVDCLL / GO SEE IF ITS A NUMBER JMP ITSOK / NOT A NUMBER, MUST BE A NAME JMP ITSNBR ITSOK, ISZ SIGNL3 / SIGNAL THAT USER GAVE DOC A NAME /A007 JMS COPOVR / GO MOVE IT OVER TO INBUF /C013 ITSOK1, ISZ CKINPT NERR, ISZ CKINPT NOARGT, JMP I CKINPT / RETURN CURLY, ACL / RELOAD CHR /A037 /C038 CURLY1, TAD (-173) / IS IT A CURLY BRACKET? SZA TAD (173-133) / IS IT A SQUARE BRACKET? SZA CLA JMP ITSOK / NEITHER, MUST BE A NAME JMP NMNGER / GO DO NO MEANING MESSAGE /C003 CURLY2, TAD INBUF+1 / REFETCH CHR /A037 JMP CURLY1 / CONTINUE /A037 ITSNBR, AC7777 / SIGNAL THAT WE'RE DOING A NUMBERED FILE DCA SIGNL TAD RSIGN / ARE WE SUPPOSED TO BE DOING A NAME ONLY? SMA CLA / YES, GO TELL HIM HIS INPUT IS GARBAGE. JMP SIG1 / NO, GO SEE IF THERE IS A NAME FOR THE DOC DCA SIGNL / CLEAR THE NUMBERED FILE FLAG DCA RSIGN / CLEAR THE SIGNAL FOR NEXT TIME JMP NERR / GO TELL HIM HIS INPUT IS GARBAGE SIG1, AC7777 / GET A MINUS 1 TO CHECK IF WE'RE DOING COPY ONE TAD COPYTP / GET THE COPY TYPE WE'RE DOING SZA CLA / IF ZERO HERE, THEN WE'RE DOING A COPY ONE JMP ITSOK / RETURN OK TAD DCNBR1 / GET DCNBR SAVED IN CVDCLL /A038 DCA DCNBR / AND PASS TO DTNAM /A038 TAD FROMDR / GET THE DRIVE NUMBER WE'RE COPYING FROM JMS DTNAM / GO GET THE NAME OF THE FILE JMS COPOVR / GO MOVE THE FILENAME TO INBUF /A025 JMP ITSOK1 / RETURN CVDCLL, XX / CHECKS FOR A NUMBER CIFMNU JMS I CVDCAL INBUF+1 JMP I CVDCLL /D037 MQA /D037 DCA DCNBR DCA DCNBR1 / SAVE MORE LOCALLY /A038 ISZ CVDCLL JMP I CVDCLL NXACLL, / GET THE NEXT ARGUMENT XX CIFMNU JMS I NXACAL T1 INBUF JMP I NXACLL / NO MORE ARGUMENTS IN LIST ISZ NXACLL / THERE IS AN ARGUMENT, AND ITS IN INBUF NOW JMP I NXACLL DCNBR1, XX /A038 /*********************************************************************** / / THIS ROUTINE WILL DISPALY THE NAME OF A DOCUMENT WHEN THE DOCUMENT / NAME ALREADY APPEARS IN THE OUTPUT DISKETTE SO THAT THE USER CAN / CHOOSE WHETHER HE WANTS TO COPY TO THE TOP OR BOTTOM, OR OVERWRITE / IT, OR RENAME IT. / /**************************************************************************** DONAME, XX CIFMNU JMS I IOACAL 0 DCNAME 505 INBUF+1 JMP I DONAME /-------------------- PAGE / ***** W A R N I N G ********** W A R N I N G ****************** /A039 / ALL LINKS ON THIS PAGE MUST BE HAND CODED !!!!! /A039 ERRWIN, XX / CHECKS IF ERROR RETURN ON A GET DENSIT/A039 / CALL WAS A WINNIE AREA /A039 TAD I DRVERR / IS THE ERROR ON THE SOURCE DRIVE?? /A039 CIA / NEGATE THE DRIVE WHERE ERROR OCCURRED /A039 TAD FROMDRV / GET SOURCE DRIVE # /A039 SNA CLA / IF AC .NE. 0 NOT A SOURCE ERROR, SKIP /A039 TAD WINSRC / WAS SOURCE ERROR, WAS IT A WINNIE? /A039 SZA / NO NOT A WINNIE SOURCE ERROR, SKIP /A039 JMP WINERR / WAS A WINNIE SOURCE ERROR, GO HANDLE /A039 TAD I DRVERR / IS THE ERROR ON THE DESTN. DRIVE?? /A039 CIA / NEGATE THE DRIVE WHERE ERROR OCCURRED /A039 TAD TODRV / GET DESTN. DRIVE # /A039 SNA CLA / IF AC .NE. 0 NOT A DESTN. ERROR, SKIP /A039 TAD WINDST / WAS DESTN. ERROR, WAS IT A WINNIE? /A039 SZA / NO NOT A WINNIE DESTN. ERROR, SKIP /A039 JMP WINERR / WAS A WINNIE DESTN. ERROR, GO HANDLE /A039 JMP I ERRWIN / NOT A WINNIE ERROR MUST BE A DISKETTE /A039 DRVERR, DRVDSP / POINTER TO DEV # WHICH FAILED GETDENS /A039 / ********************************************************************* /A039 / /A039 / WINERR - INPUT: AC=DEVICE # IN ERROR /A039 / /A039 / REPORTS UNASSIGNED WINNIE AREA # & REQUESTS USER TO /A039 / PRESS GOLD MENU ..... /A039 / *** N.B. *** IF LINKS ARE NECESSARY WRITE THEM IN BY HAND OR USE /A039 / BASE PAGE. /A039 / /A039 / ********************************************************************* /A039 WINERR, DCA WINDRV / PUT DEVICE # INTO IOACAL SEQUENCE /A039 CIFMNU /A039 JMS I IOACAL / GO DISPLAY "AREA ? DOES NOT HAVE A VOLUME..." /A039 0 WINTXT 1505 TXTARE WINDRV, 0 TXTVOL JMP I MENRET / GO ASK FOR GOLD MENU RESPONSE & RETURN TO MENU/A039 MENRET, PGOLD / LINK FOR ABOVE "JMP I" INSTRUCTION /A039 TXCS1, TEXT '^P^S' / GENERAL PURPOSE CONTROL STRING/A037 TXCS2, TEXT '^P^S^P^S' / GENERAL PURPOSE CONTROL STRING/A037 TXCS3, TEXT '^P^S^P^S^P^S' / GENERAL PURPOSE CONTROL STRING/A037 TXOR, IFDEF ENGLSH IFDEF ITALIAN /A037 IFDEF V30NOR < TEXT 'EL '> /A046 IFDEF V30SWE < TEXT ''> CPY, IFDEF ENGLSH IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE SPRMPT, IFDEF ENGLSH < TEXT '&PLEASE ENTER THE &NAME OR &NUMBER ' *.-1 TEXT ' OF THE DOCUMENT YOU NOW WISH TO COPY' /C034 > IFDEF ITALIAN < TEXT '&INTRODURRE NOME O NUMERO DEL DOCUMENTO DA COPIARE' > IFDEF V30NOR < TEXT '&SKRIV NAVN EL. NUMMER' /A046 *.-1 TEXT ' P\E DET DOKUMENTET DU VIL KOPIERE' /A046 > IFDEF V30SWE < TEXT '&SKRIV NAMNET ELLER NUMRET P\E DET' *.-1 TEXT ' DOKUMENT DU VILL KOPIERA' > TXTIDN, IFDEF ENGLSH /A037 IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE TXTID1, IFDEF ENGLSH /A037 IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE GLST, IFDEF ENGLSH < TEXT '^P&DOCUMENT NUMBER ^D HAS NO NAME ' /C043 *.-1 TEXT '^P&ENTER A NAME OR NUMBER AND &PRESS &R&E&T&U&R&N ' *.-1 TEXT '^P&OR JUST &PRESS &R&E&T&U&R&N TO ASSIGN A NEW NUMBER ' > IFDEF ITALIAN < TEXT '^P&NUMERO DOCUMENTO ^D HA NO NOME. ' *.-1 TEXT '^P&INTRODURRE NOME O NUMERO E PREMERE !&RITORNO. ' *.-1 TEXT '^P&PREMERE !&RITORNO PER ASSEGNA UN NUOVO NUMERO.' > IFDEF V30NOR < TEXT '^P&DOKUMENT NUMMER ^D HAR IKKE NOE NAVN ' /A046 *.-1 TEXT '^P&SKRIV INN ET NAVN ELLER NUMMER OG TRYKK P\E !&RETUR' /A046 *.-1 TEXT '^PEL. TRYKK P\E !&RETUR FOR \E GI DET ET NYTT NUMMER' /A046 > IFDEF V30SWE < TEXT '^P&DOKUMENT NUMMER ^D HAR IGNET NAMN' *.-1 TEXT '^P&SKRIV ETT NAMN ELLER NUMMER OCH TRYCK P\E RETUR' *.-1 TEXT '^P&F\VR ATT TILLDELA ETT NYTT NUMMER, TRYCK P\E RETUR ' > / END IFDEF V30SWE SYSTM, IFDEF ENGLSH < TEXT '^P&IF NECESSARY, REMOVE THE SYSTEM DISKETTE FROM DRIVE 0 AND THEN' > IFDEF ITALIAN < TEXT /^P&SE NECESSARIO, TOGLIERE IL DISCO SISTEMA DALL'UNIT\@ 0 \H/ > IFDEF V30NOR < TEXT '^P&TA EVT. SYSTEMDISKETTEN UT AV STASJON 0 OG'> /A046 IFDEF V30SWE < TEXT '^P&OM N\VDV\DNDIGT, TA UT SYSTEMDISKETTEN UR ENHET O OCH'> AITDT, IFDEF ENGLSH IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE RECEV, IFDEF ENGLSH IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE COPYF, IFDEF ENGLSH IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE DEXTS, IFDEF ENGLSH /C043 IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE DREST, IFDEF ENGLSH < TEXT '^P&HOW WOULD YOU LIKE THE DOCUMENT MODIFIED?' *.-1 TEXT '^P&T = &ADD TEXT TO THE TOP ' *.-1 TEXT '^P&B = &ADD TEXT TO THE BOTTOM' *.-1 TEXT '^P&O = &OVERWRITE THE DOCUMENT' *.-1 TEXT '^P&E = &ENTER A NEW NAME FOR THIS DOCUMENT' *.-1 TEXT '^P&TYPE THE LETTER AND &PRESS &R&E&T&U&R&N, OR JUST ' *.-1 TEXT '^P&PRESS &R&E&T&U&R&N TO CONTINUE TO THE NEXT DOCUMENT,' > IFDEF ITALIAN < TEXT /^P&MODALIT\@ MODIFICA: / *.-1 TEXT /^P&I = &INSERIRE IL TESTO ALL'INIZIO / *.-1 TEXT /^P&F = &INSERIRE IL TESTO ALLA FINE / *.-1 TEXT /^P&S = &SOVRASCRITTURA / *.-1 TEXT /^P&N = &NUOVO NOME PER IL DOCUMENTO / *.-1 TEXT /^P&SCEGLIERE UN'OPZIONE E PREMERE !&RITORNO, / *.-1 TEXT /^P&PREMERE !&RITORNO PER PASSARE AL DOCUMENTO SUCCESSIVO,/ > IFDEF V30NOR < /A046 TEXT '^P&HVORDAN VIL DE ENDRE DOKUMENTET? ' *.-1 TEXT '^P&T = &TILF\XYE TEKST P\E TOPPEN ' *.-1 TEXT '^P&B = &TILF\XYE TEKST P\E BUNNEN ' *.-1 TEXT '^P&O = &OVERSKRIVE DOKUMENTET' *.-1 TEXT '^P&N = &GI DETTE DOKUMENTET NYTT VAVN ' *.-1 TEXT '^P&VELG ALTERNATIV OG TRYKK P\E !&RETUR EL.' *.-1 TEXT '^P&TRYKK P\E !&RETUR FOR \E G\E TIL NESTE DOKUMENT' > IFDEF V30SWE < TEXT '^P&HUR SKA DOKUMENTEN MODIFIERAS? ' *.-1 TEXT '^P&B = &L\DGGA TILL TEXT I B\VRJAN' *.-1 TEXT '^P&S = &L\DGGA TILL TEXT I SLUTET ' *.-1 TEXT '^P&\V = &SKRIVA \VVER DOKUMENTET' *.-1 TEXT '^P&N = &SKRIV ETT NYTT DOKUMENTAMN' *.-1 TEXT '^P&SKRIV KODEN OCH TRYCK P\E RETUR' *.-1 TEXT '^P&F\VR ATT FORTS\DTTA TILL N\DSTA DOKUMENT, TRYCK P\E RETUR' > / END IFDEF V30SWE NDOC, IFDEF ENGLSH /C039 IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE DYWTC, IFDEF ENGLSH /C043 IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE DCNAME, TEXT '^P"^A"' NWNBRT, IFDEF ENGLSH < / NEW NUMBER TEXT /A037 TEXT '^P&THE NEW NUMBER IS ^A'> /A037 IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE NOWCOP, IFDEF ENGLSH /C043 IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE TXETND, IFDEF ENGLSH < TEXT '&ENTER THE NEW NAME FOR THE DOCUMENT AND THEN &PRESS &R&E&T&U&R&N,' > IFDEF ITALIAN < TEXT /&INTRODURRE IL NUOVO NOME PER IL DOCUMENTO E PREMERE !&RITORNO,/ > IFDEF V30NOR < TEXT '&ANGI NYTT NAVN FOR DETTE DOKUMENTET OG TRYKK P\E !&RETUR,'> /A046 IFDEF V30SWE < TEXT '&SKRIV DET NYA DOKUMENTNAMNET OCH TRYCK SEDAN P\E RETUR.'> TXPRCN, IFDEF ENGLSH < TEXT '&PRESS &R&E&T&U&R&N TO CONTINUE TO THE NEXT DOCUMENT,'> IFDEF ITALIAN < TEXT /PREMERE !&RITORNO PER PASSARE AL DOCUMENTO SUCCESSIVO,/ > IFDEF V30NOR < TEXT 'TRYKK P\E !&RETUR FOR \E G\E TIL NESTE DOKUMENT,'> /A046 IFDEF V30SWE < TEXT '&F\VR ATT FORTS\DTTA TILL N\DSTA DOKUMENT, TRYCK P\E RETUR,> TXIYD, IFDEF ENGLSH < TEXT '&IF YOU DO, TYPE &Y AND &PRESS &R&E&T&U&R&N, OR JUST '> IFDEF ITALIAN < TEXT /&INTRODURRE !&SI E PREMERE !&RITORNO, OPPURE/ > IFDEF V30NOR < TEXT '&HVIS DU VIL DET, SKRIV &J OG TRYKK P\E !&RETUR , EL.'> /A046 IFDEF V30SWE < TEXT '&OM DU G\VR DET, SKRIV &J OCH TRYCK P\E RETUR'> NERD, /d041 TEXT '^P&THERE IS NOT ENOUGH ROOM ON &^S ^D TO CONTAIN THE DOCUMENT' IFDEF ENGLSH < TEXT '^P&^S ^D NOT INITIALIZED !&OR DOES NOT HAVE ROOM FOR THE DOCUMENT'/A041 > IFDEF ITALIAN < TEXT /^P&^S ^D NON INIZIALIZZATA O SPAZIO INSUFFICIENTE PER IL DOCUMENTO/ > IFDEF V30NOR < TEXT '^P&^S ^D ER IKKE KLARGJORT EL. HAR IKKE PLASS TIL DOKUMENTET'>/A046 IFDEF V30SWE < TEXT '^P&^S ^D \DR INTE INTE INITIERAD ELLER HAR INTE PLATS F\VR DOKUMENTET'> TRYAGN, IFDEF ENGLSH < TEXT '^P&WHEN TYPING TO THE MENU, USE NORMAL KEYS ON THE KEYBOARD ONLY. ' /C021 *.-1 IFDEF CONDOR < /A030 TEXT '^P&THE &RUBOUT KEY CAN ALSO BE USED. &A LINE MAY CONTAIN A' /C021M030 > / END IFDEF CONDOR /A030 IFNDEF CONDOR < /A030 TEXT '^P&R&U&B &C&H&A&R AND &R&U&B &W&O&R&D CAN ALSO BE USED. ' /A030 *.-1 /A030 TEXT '&A LINE MAY CONTAIN A ' /A030 > / END IFNDEF CONDOR /A030 *.-1 /C021 TEXT '^PMAXIMUM OF 71 CHARACTERS AND MUST END WITH &R&E&T&U&R&N.' /C021 *.-1 TEXT '^P&PLEASE PRESS &R&E&T&U&R&N AND TRY AGAIN.' > IFDEF ITALIAN < TEXT /^P&PER SCEGLIERE LE OPZIONI DEL MENU UTILIZZARE SOLO I TASTI AL / *.-1 TEXT /FANUMERICI^PE SE NECESSARIO IL TASTO !AX]. &UNA RIGA PU\R CONTENRE AL //m045 *.-1 TEXT /^PMASSIMO 71 CHARATTERE E DEVE TERMINARE CON !&RITORNO. / *.-1 TEXT /^P&PREMERE !&RITORNO PER CONTINUARE./ 74;0 /a045 > IFDEF V30NOR < /A046 TEXT '^P&BRUK BARE TEGN P\E HOVEDTASTATURET N\ER DU SKRIVER EN KOMMANDO ' *.-1 TEXT '^P!&SLETT-TASTEN KAN OGS\E BRUKES. &EN LINJE KAN HA ' *.-1 TEXT '^PMAKS. 71 TEGN OG M\E AVSLUTTES MED !&RETUR' *.-1 TEXT '^P&TRYKK P\E !&RETUR OG PR\XV IGJEN.' > IFDEF V30SWE < TEXT '&ANV\DND BARA "VANLIGA" TANGENTER N\DR DU SKRIVER I MENYN ' *.-1 TEXT '&DU KAN OCKS\E ANV\DNDA RADERA. &EN RAD KAN INNEH\ELLA' *.-1 TEXT '&DU KAN OCKS\E ANV\DNDA RADERA TKN ELLER RADERA ORD.' *.-1 TEXT '&EN RAD F\ER INNEH\ELLA' *.-1 TEXT 'MAXIMALT 71 TECKEN OCH M\ESTE AVSLUTAS MED RETUR' *.-1 TEXT '&TRYCK P\E RETUR OCH FVRSVK IGEN.' > / END IFDEF V30SWE TARTN, IFDEF ENGLSH IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE CNTCRE, IFDEF ENGLSH IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE WNUM, IFDEF ENGLSH IFDEF ITALIAN< TEXT /^P&I NUMERI DEI DOCUMENTI DEVONO ESSERE DA 1 E 200/ > /a045 IFDEF V30NOR < TEXT 'DOKUMENTNUMRENE G\ER FRA 1 TIL 200.'> /A046 IFDEF V30SWE < TEXT 'DOKUMENTNUMRET M\ESTE VARA MELLAN 1 OCH 200'> NMDC, IFDEF ENGLSH IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE NONIN, IFDEF ENGLSH < /A017 TEXT '^P&YOUR ^S IS NOT INITIALIZED.'> /A017 IFDEF ITALIAN < TEXT /^P&IL DICHETTO NON \H INITIALIZZETO./ > IFDEF V30NOR < TEXT '^P&^S ER IKKE KLARGJORT.'> /A046 IFDEF V30SWE < TEXT '^P&DIN ^S \DR INTE INITIERAD.'> CNRG, TEXT '^P ' NMEAN, IFDEF ENGLSH < TEXT '^P&TYPING "^A" HAS NO MEANING HERE. &PRESS &R&E&T&U&R&N TO TRY AGAIN.' /C021 > IFDEF ITALIAN < TEXT /^P&"^A" &OPZIONE NON VALIDA/ > IFDEF V30NOR < TEXT '^P"^A" KAN IKKE BRUKES HER. &TRYKK P/E !&RETUR OG PR\XV IGJEN' > /A046 IFDEF V30SWE < TEXT '^P"^A" BETYDER INGENTING H\DR, TRYCK P\E RETUR OCH FVRSVK IGEN.'> PRTRN, IFDEF ENGLSH IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE DOGM, IFDEF ENGLSH < TEXT '^P^A&PRESS &GOLD &M&E&N&U TO RECALL THE &MAIN &MENU.'> IFDEF ITALIAN< TEXT /^P^APREMERE &ORO !&MENU PER TORNARE AL &MENU &PRINCIPALE./ > IFDEF V30NOR < TEXT '^P^A&TRYKK P\E &GULL !&MENY FOR \E F\E HOVEDMENYEN.'> /A046 IFDEF V30SWE < TEXT '^P^A&FVR ATT KOMMA TILL HUVUDMENYN, ANV\DND GULD MENY'> ORAR, IFDEF ENGLSH <"O&177;"R&177;40;0> IFDEF ITALIAN<"O&177;40;0> IFDEF V30NOR <"E&177;"L&177;40;0> IFDEF V30SWE <"E&177;"L&177;40;0> NARG, 0 RPLACE, IFDEF ENGLSH IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE YNAD, IFDEF ENGLSH < /A018 TEXT '^P&YOU NEED A DISKETTE IN DRIVE ^D. ' /A018 *.-1 /A018 TEXT '&PUT A DISKETTE IN THE DRIVE' /A018 > IFDEF ITALIAN < TEXT /^P&NECESSITA UN DISCHETTO NELL'UNIT\@ ^D. / *.-1 TEXT /&INSERIRE UN DISCHETTO NELL'UNIT\@/ > IFDEF V30NOR < TEXT '^P&DET M\E ST\E EN DISKETT I STASJON ^D. ' /A046 *.-1 TEXT '&SETT EN DISKETTE I STASJONEN' /A046 > IFDEF V30SWE < TEXT '^P&DU BEHVVER EN DISKETT I ENHET ^D.' *.-1 TEXT '&S\DTT I EN DISKETT I ENHETEN' > / END IFDEF V30SWE PSCR, TEXT '^P!E' ASTRING,TEXT '^A' BELTXT, BELL;0 COPCNT, IFDEF ENGLSH /A007 /C043 IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE BLOCKS, TEXT '^P!3D' /A007 TXTARE, IFDEF ENGLSH /A039 IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE TXTDSK, IFDEF ENGLSH /A039 IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE TXTVOL, IFDEF ENGLSH /A039 IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE TXTDRV, IFDEF ENGLSH /A039 IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE WINTXT, IFDEF ENGLSH /A039 IFDEF ITALIAN IFDEF V30NOR /A046 IFDEF V30SWE CUB1, ZBLOCK 400 INBUF, -STRLEN ZBLOCK STRLEN+1 /-------------------- PAGE