File: DIABLO.PA of Disk: Disks/Build-2007/Copy-of-m8-rka0-rkb0
(Source file text)
/ DIABLO HS HANDLER V40 / / / / / / / / / /COPYRIGHT (C) 1980 BY DATAPLAN GMBH, LAUDA, BRD / / / / / / / / / / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DATAPLAN GMBH. /DATAPLAN GMBH 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 DATAPLAN'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DATAPLAN. / /DATAPLAN GMBH ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY /OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DATAPLAN. / / / / / / / / / / /W.V.D.MARK, DP CONSULTING, ZUERICH, SWITZERLAND /1-JAN-80 DBVERSION="M&77 *0 -1 DEVICE DIAB;DEVICE LPT;1040;DBL&177+4000;ZBLOCK 2 DEVC= 37 /DEVICE CODE TRANSMIT (UPPER) LMAR= 0 /LEFT MARGIN RMAR= 164 /RIGHT MARGIN FF= 0 /ASCII FORMFEED =14 TABW= 10 /TAB LENGTH .GE.1 VMI= 10 /VERTICAL MOTION INDEX HMI= 14 /HORIZONTAL MOTION INDEX DTYP= 0 /0 FOR TYPE 1610 /NUMBER OF LINES ON PAGE FOR TYPE 1640 /110 = 72 LINES, 102=66 , 63=51 DCDIAB=DEVC^10 TSFX= 6001+DCDIAB /SKIP ON FLAG TLSX= 6006+DCDIAB /LOAD DBL BUFFER KSFX= 6001+DCDIAB-10 KRBX= 6006+DCDIAB-10 KIEX= 6005+DCDIAB-10 *200 DBLM32, -32 / * DTERMC, FF /FORMS OR NO * DBLWC, 0 / * DBLCA, 0 / * DB7700, 7700 / * PDBLNK, 0 /GETS ADRESS OF PAGE 2 * TAD I DBL / R/W BIT TO LINK * L AND DB7700 / * I CMA /TREAT 0 PG CNT AS 0 WD CNT N DCA DBLWC /SAVE -(DBLWD COUNT+1) * K DB70, 70 / * DCA DBLEOF /INITIALIZE EOF * DBL177, 177 / * DBL214, RDF /DON'T MOVE THIS CODE *** TAD DBLCIF / M DCA DBLXIT /SAVE CIF CDF RETRN FIELD U TAD I DBL / S AND DB70 / T TAD DBCDF / DCA DBLCDF / N ISZ DBL /PT TO BUFFER O TAD I DBL /GET BUFFER ADDRESS T DCA DBLCA /SAVE BUFFER PTR ISZ DBL /PT TO BLOCK # C TAD I DBL /GET IT H ISZ DBL /POINT TO ERROR RETURN G SNL JMP DBLERR /CAN'T READ FROM DBL DBM140, SZA CLA JMP DBLELP KIEX /INT DISABLE JMS I PDBLNK /INIT SNA /MORE INIT? JMP DBLELP /NO JMS DBPRNT /PRINT IT JMP .-4 /BACK FOR MORE DBLELP, JMS DBPRNT /PRINT 3RD CHAR OF DOUBLEWORD ISZ DBLWC JMP DBLLP /GET 3 MORE CHARS SKP CLA DBLCTZ, TAD DTERMC /YES, TREAT LIKE CTZ JMS DBPRNT /OUTPUT FORM FEED IF EOF SEEN (EOT OF LV8) ISZ DBL /BUMP TO NORMAL RETURN DBLXIT, HLT /RESTORE FIELDS JMP I DBL /EXIT /UNPACKING LOOP - USES A SHIFT REGISTER METHOD TO GET THE /THIRD CHARACTER IN EACH DOUBLEWORD. DBLLP, STL /GUARD BIT OF SHIFT REGISTER DBROTL, RTL RTL SPA /DO WE HAVE 8 BITS SHIFTED IN? JMP DBLELP DCA DBLEOF /SAVE SHIFT REGISTER TAD I DBLCA JMS DBPRNT /PRINT A CHAR TAD I DBLCA ISZ DBLCA /BUMP INPUT POINTER DB7400, 7400 /PROTECT ISZ AND DB7400 CLL RAL TAD DBLEOF /SHIFT HIGH 4 BITS INTO JMP DBROTL /SHIFT REGISTER DBLERR, STL CLA RAR /PUT 4000 IN AC JMP DBLXIT /AND TAKE ERROR RETURN /CHAR PRINT ROUTINE DBPRNT, 0 /ETX-ACK PRINT ROUTINE AND DBL177 DBLCDF, HLT SNA JMP I DBPRNT /IGNORE NULLS TAD DBLM32 /IS IT AN EOF? (32) SNA JMP DBLCTZ /YES, GET OUT TAD DB32 /RESTORE TLSX /PUT CHAR IN DBL BUFFER DBCTCL, JMS DBCCHK /CHECK FOR CTRL C TSFX JMP DBCTCL /WAIT FOR FLAG ISZ DBLCNT /BUFFER OUT? JMP I DBPRNT /NO TAD DBBSIZ /RESET BUFFER COUNT DCA DBLCNT /TO OPTIMAL VALUE CLA STL IAC RAL /SEND ETX TLSX TSFX JMP .-1 /WHY NOT CALL 'DBPRNT'? CLA CLL /BE CONSERVATIVE DBWAIT, KSFX /ACK RECEIVED? JMP DBTIME /TIMOUT KRBX /CLEAR FLAG AND CHECK AND DBL177 TAD DBM6 /IS IT REALLY ACK? SZA CLA JMP DBWAIT /MAYBE OUTSTANDING DBTMEX, TAD DB7400 DCA DBOUTR /RESET TO 6 SECS JMP I DBPRNT /OK; GO ON DBTIME, ISZ DBZERO JMP DBWAIT /24MS WAIT LOOP JMS DBCCHK /CHECK ON CTRLC ISZ DBOUTR JMP DBWAIT /6 SEC WAIT LOOP JMP DBTMEX /ACK GOT LOST DBCCHK, 0 /CHECK FOR CTRL C DB7600, 7600 /CLEAR AC TAD DB7600 KRS TAD DB175 /CHECK FOR ^C FROM CONSOLE SNA CLA KSF /WITH FLAG UP JMP I DBCCHK DBLCIF, CDF CIF 0 JMP I DB7600 /YES, RETURN TO OS/8 DB175, 175 /CTRL C MASK DECIMAL DBLCNT, -48 /DIABLO BUFFER COUNT DBBSIZ, -48 /INITIAL " " OCTAL DBM6, -6 /ACK DBZERO, 0 /TIMOUT DBOUTR, -400 / " ZBLOCK 371-. DBL, DBVERSION /NORMAL ENTRY POINT JMP .+4 DB32, 32 DBLEOF, 0 DBCDF, CDF 0 CLA STL RAR JMS PDBLNK PAGE DBINIT, 0 JMP DBARGS DBVMI, VMI+1 /6 LINES/INCH=10 DBHMI, HMI+1 /10 PITCH=14,12 PITCH=12 DBLMAR, LMAR+1 DBRMAR, RMAR+1 DBTABW, TABW DBLPAG, DTYP DBLFF, 0 /INITIAL FF OR NOT DBPOS, 0 DBARGS, CDF 0 TAD DBCORT SZA CLA /FIRST CALL? JMP I DBCORT /YES ; COROUTINIZE CLA STL IAC RAL /FIRST ETX FOR OVERLAP JMS DBCORT /CALL COROUTINE JMS DBESC /BLACK RIBBON "B /ESC B JMS DBESC /FORWARD PRINTING "5 /ESC 5 TAD DBVMI /LOAD VMI JMS DBESC 36 /ESC RS (N) CLA IAC /ABSOLUTE TAB POS 0 JMS DBESC 11 /ESC HT (N) TAD DBHMI /LOAD HMI JMS DBESC 37 /ESC US (N) TAD DBLPAG JMS DBESC /SET PAGE HEIGHT 14 /ESC FF (N) TAD DBLFF SZA /DID WE WANT INITIAL FF? JMS DBCORT /YES PRINT FORM FEED JMS DBESC /GRAPHICS OFF "4 /ESC 4 JMS DBESC /CLEAR ALL TABS "2 /ESC 2 TAD DBLMAR /GO TO LEFT MARGIN JMS DBESC 11 JMS DBESC /DEFINE LEFT MARGIN "9 /ESC 9 TAD DBRMAR /GO TO RIGHT MARGIN JMS DBESC 11 JMS DBESC /DEFINE RIGHT MARGIN "0 /ESC 0 TAD (15 /RETURN TO LEFT MARGIN JMS DBCORT /CR DCA DBPOS /FOR TAB OVERFLOW DBTABL, TAD DBTABW CIA DCA DBESC /SET WIDTH COUNT TAD (40 /GO THERE WITH SPACES JMS DBCORT ISZ DBESC /ARRIVED? JMP .-3 /NO JMS DBESC /SET TAB "1 /ESC 1 TAD DBTABW TAD DBPOS DCA DBPOS TAD DBPOS CIA TAD DBRMAR /OVER RIGHT MARGIN? SMA CLA JMP DBTABL /NO; MORE TABS TAD (15 JMS DBCORT /RETURN AGAIN JMP I DBINIT /END SIGNAL WITH AC=0 DBESC, 0 /SUB FOR ESCAPE SEQUENCES MQL /SAVE NUMERIC PART TAD (33 /ESC JMS DBCORT /SEND ESC TAD I DBESC /GET SPECIFIER ISZ DBESC JMS DBCORT /SEND IT MQA /GET NUMERIC IF ANY SZA JMS DBCORT /DO NOT SEND 0: MEANS END JMP I DBESC DBCORT, 0 JMP I DBINIT /WHAT? IS THAT ALL? $$$