/ / / / / / / / / / /COPYRIGHT (C) 1978,1979 BY DIGITAL EQUIPMENT CORPORATION / / / / / / / / / / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. / /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. / /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY /DIGITAL. / / / / / / / / / / / / RTS/8 TEST TASK / / FOR DESCRIPTION, READ TEXT AT 'FIRSTM' / .FSECT TESTF, LEVEL=0 /LEVEL=0 PULLS THIS SECT OUT OF THE OVERLAY / /INTO MAIN, IN CASE WE ARE CONSTRUCTED / /NON-RESIDENT. .TASK TEST /DEFAULT TASK MACRO TASK #=TEST, NAME=TEST / /START AT START, AND RUNNABLE START, TAD (-10 /SET UP LOOP TO PRINT DIRECTIONS DCA TTYPE /SAFE TEMPORARY ILOOP, CAL /FIRST TIME MESSAGE WITH DIRECTIONS SENDW+FREE /FREE ALLOWS OTHER TASK TO USE OVERLAY AREA(PARTITION) TTY FIRSTM TAD (FIRST2-FIRST1 /MOVE MESSAGE POINTER TAD MPOINT /TO NEXT LINE OF MESSAGE DCA MPOINT ISZ TTYPE /MORE TO DO JMP ILOOP /YES LOOP, CAL /GET USER TYPIN SENDW+FREE TTY GETM TAD (IBUFF-1 /GO TO OTHER SECT TO SCAN MESSAGE FOR TERMINATOR CIF SCAN /OTHER SECT MAY BE ON ANOTHER PAGE JMS SCAN /RETURN TERMINATOR IN CALL+1 TTYPE, HLT /0=; 7777=ALT, 4000 MEANS TIMED OUT AC4000 /IF TIMED OUT, GO SUSPEND SELF TAD TTYPE SNA CLA /SKIP IF NOT TIMED OUT JMP SLEEP /SUSPEND CAL /GO REPRINT USER TYPIN SENDW+FREE TTY PUTM TAD TTYPE /CHECK FOR OR ALT-MODE SNA CLA /SKIP IF ALTMODE JMP LOOP / , GO DO IT ALL AGAIN SLEEP, CAL /PUT SELF TO SLEEP SUSPND+FREE /ALSO UNLOCK PARTITION JMP LOOP /IF RUN AGAIN, GO DO SAME AGAIN / / / DATA AREA FOR TEST TASK / .DSECT TESTD, LEVEL=0 FIELD TESTF /MAKE SAME FIELD AS MAIN / FIRSTM, ZBLOCK 3 /INIT MESSAGE WITH DIRECTIONS 1000 /INDIRECT POINTER TO TEXT 0 /NO INPUT MPOINT, FIRST1 /POINTER TO TEXT / GETM, ZBLOCK 3 2120 /NO CRLF, INPUT BUFFER SIZE IBUFF /INPUT TO IBUFF 4600 /OUTPUT AN & / PUTM, ZBLOCK 3 4000 /IMAGE MODE OUTPUT 0 /NO INPUT 46 /IMAGE MODE OUTPUT, HERE IS & IBUFF, /80 CHARACTERS INPUT, OVERLAY INIT MESSAGE FIRST1, TEXT 'TYPE A RESPONSE TO THE & PROMPT CHARACTER. THE TEST TASK ' FIRST2, TEXT 'WILL RETYPE THE PROMPT AND MESSAGE. IF THE MESSAGE ' TEXT 'IS TERMINATED BY A CARRIAGE RETURN, THE TEST TASK WILL ' TEXT 'PROMPT AGAIN. IF THE MESSAGE IS TERMINATED BY AN ALT-MODE' TEXT 'THE TEST TASK WILL SUSPEND ITSELF AFTER RETYPING. AFTER ' TEXT 'TEST IS SUSPENDED, IT CAN BE RE-REQUESTED FROM MCR. ' TEXT 'NOTE, IF THE TELETYPE TYPIN IS TIMED OUT, THE TEST TASK ' TEXT 'IMMEDIATELY SUSPENDS ITSELF.' / / SECOND EXECUTABLE SECT OF TEST, MAY BE MAY NON-RESIDENT / .FSECT TEST2 /IF NON-RESIDENT THE FSECT DOESN'T SAVE SPACE, SINCE /NON-RESIDENT PARTITIONS A MULTIPLE OF 200 IN SIZE. /NO LEVEL STATEMENT, SO LINK STRING CONTROLS PARTITION .NONRES 1,1 /DECLARE NON-RESIDENT (A NO-OP IF NOT RELEVANT) /1 IS CHECKPOINTABLE, CAN BE STOPPED AT ANY TIME /1 IS WRITABLE, SECT MODIFIES SELF AT 'POINT' POINT, 0 /POINTER TO TEXT TO SCAN SCAN, 0 /SCAN BUFFER, RETURN TERMINATOR AT CALL+1, REPLACE /TERMINATOR WITH 0 IN BUFFER DCA POINT /CALL WITH BUFFER-1 IN AC RDF /WHAT FIELD CALLED FROM TAD (CDF CIF /CDF NOT REALLY NECESSARY. LAST TWO INSTRUCTIONS /COULD BE REPLACED BY A TAD (CIF START DCA CDEXIT /SET UP EXIT ACROSS FIELD SLOOP, ISZ POINT /PRE-INCREMENT TO ALLOW DOUBLE FETCH LATER TAD I POINT /IS IT A TERMINATOR? SZA SMA CLA /SKIP IF YES JMP SLOOP /KEEP LOOKING TAD I POINT /GET IT AGAIN, WE DESTROYED COPY IN AC DCA I SCAN /PLACE AT CALL+1 DCA I POINT /ZERO SO WE CAN PUT OUT IN IMAGE MODE ISZ SCAN /MOVE TO EXIT CDEXIT, HLT /PLACE CDF CIF HERE JMP I SCAN / / TO MAKE THIS SECT NON-RESIDENT / / 1. PUT THE SWAPPER INTO THE SYSTEM / 2. ANSWER Y TO CHANGE PARTITIONS / 3. THEN ANSWER TEST,1 / / NOTES: / / IT WOULD SEEM ADVANTAGEOUS TO FIELD RESTRICT THE NON-RESIDENT SECT / TEST2 TO THE RESIDENT SECT TESTF. IN THAT CASE THE SUBROUTINE CALL / COULD BE WITHIN FIELD, AND CAL'S COULD BE PLACED IN THE NON-RESIDENT / PORTION, WITH THEIR ARGUMENTS IN THE RESIDENT. THE PROBLEM IS THAT / THE LINKER MAY NOT LINK THE FIELD RESTRICTED NON-RESIDENT. THE LINKER / LINKS THE RESIDENT (MAIN) FIRST, FOLLOWED BY THE NON-RESIDENT (OVERLAYS). / WHEN IS GETS TO THE NON-RESIDENT, THERE MAY NOT BE ROOM LEFT IN THE / SPECIFIED FIELD. THE LINKER HAS NO MECHANISM TO RECOVER FROM THIS / PROBLEM. SO, FOR GENERALITY, IT IS SAFEST TO HAVE THE NON-RESIDENT / CODE ALLOW FOR SEPARATE FIELDS. /