ASMB,R,L,C
* 
* 
* 
**************************************************************
* (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978.  ALL RIGHTS    *
* RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- *
* PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH-  *
* OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.  *
**************************************************************
* 
* 
* 
*      NAME:    DCT03 -- 7245A DEVICE COMMAND TABLE 
*      SOURCE:  92840-18087 
*      RELOC:   92840-16006 
* 
* 
* 
************************************************************* 
* 
      NAM DCT03,7  92840-16006 REV.1913 790123
      ENT DCT03 
* 
      EXT EXEC,TAN,COS,SIN,FLOAT
      EXT INDCK,INTX,GCBIM,BYTE 
      EXT CONVT,FLTAS 
      EXT LNGTH,GIC,DCTAD 
      EXT .IENT 
      EXT REIO
*     THIS IS THE DEVICE COMMAND AND EMULATOR MODULE FOR THE
*     7245 PLOTTER/PRINTER. 
* 
DCT03 NOP 
      DEF EML03 
      DEF RESET     RESET DEVICE
      DEF DEFLT 
      DEF PAGE      FORM FEED 
      NOP 
      DEF HOME        HOME PEN
      DEC -23       GET DEVICE ID 
      NOP           GET CAPABILITIES (NOT USED) 
      DEF PLTUN     GET PLOT UNITS P1 AND P2
      OCT -1        GET CHARACTER SPACE SIZE INFORMATION
      DEF PNLOC     GET PEN LOCATION
      DEF CRLOC     GET CURSOR LOCATION 
      OCT -2        DIGITIZE
      DEF LORG      SET LABEL ORIGIN
      OCT -3        LABEL DIRECTION 
      OCT -4        SLANT ON
      DEF SLOFF     SLANT OFF 
      OCT -5        SET CHARACTER SIZE
      OCT -6        SET RELATIVE ORIGIN(PORG) 
      NOP           SET PLOT DIRECTION
      NOP           SET SCALE 
      NOP           SET ORIGIN = CURSOR 
      NOP           SET ORIGIN = PEN
      NOP           DRAW TO CURSOR
      NOP           SELECT CHARACTER SET
      NOP           SELECT PEN 0
      NOP           SELECT PEN -1 (ERASE) 
      NOP           SELECT PEN -2(COMPLEMENT) 
      DEC -9
      DEC -8        GET NUMBER OF PENS
      NOP           DEFINE LINE TYPE(NOT USED)
      DEC -9        SELECT DEFAULT LINE TYPE
      DEC -9        DEFAULE LINE TYPE WITH LENGTH 
      DEF PENUP     PEN UP
      DEF PENDN     PEN DOWN
      DEF PLTAB     PLOT ABSOLUTE 
      DEC -10       PLOT RELATIVE 
      DEF PLTIN     PLOT INCREMENTAL
      DEF SHTLB     SHORT LABEL 
      DEF STLAB     START LONG LABEL
      DEF STPLB     STOP LONG LABEL MODE
      DEC -11       FLOAT TO ASCII
      DEC -12       SURFACE SIZE IN MM
      DEF POSCR     POSITION CURSOR 
      NOP           POSITION CURSOR RELATIVE
      DEC -22       SET P1,P2 
      DEF GTMUM     GET MU/MM 
      DEC -13       GET DEVICE CLEARING CHARACTERISTICS 
      DEC -14       NUMBER OF PHYSICALLY DIFFERENT PENS 
      DEC -18       NUMBER OF CURSORS 
      DEC -15       LORG-ABILITY
      DEC -16       MAXIMUM CHARACTER SLANT 
      DEC -17       DEVICE HARD CLIPPING CAPABILITY 
      DEC -24       INQUIRE CHARACTER PLACEMENT 
      DEC -19 
      DEC -20 
      DEC -21 
* 
*     ASCII COMMAND STRINGS FIRST WORD = NUMBER OF BYTES
*                           SECOND WORD = TERMINATOR
RESET DEC -2        2 BYTES, WRITE
      DEF SEMCL 
      ASC 1,DF      COMMAND STRING
* 
DEFLT DEC -5
      DEF SEMCL 
      ASC 3,IP;IW 
* 
PAGE  DEC -2
      DEF SEMCL 
PG    ASC 1,PG
* 
HOME  DEC -14 
      DEF SEMCL 
      ASC 7,PU;PA200,11000
* 
ID    DEC 2 
      DEF SEMCL 
OI    ASC 1,OI
* 
PLTUN DEC 2 
      DEF SEMCL 
OP    ASC 1,OP
PNLOC DEC 2 
      DEF SEMCL 
      ASC 1,OA
* 
CRLOC DEC 2 
      DEF SEMCL 
      ASC 1,RC
* 
LORG  DEC -2
      DEF SEMCL 
      ASC 1,LO
* 
LNTYP DEC -2
      DEF SEMCL 
      ASC 1,LT
* 
PENDN DEC -2
      DEF SEMCL 
      ASC 1,PD
* 
PENUP DEC -2
      DEF SEMCL 
      ASC 1,PU
* 
PLTAB DEC -2
      DEF SEMCL 
PA    ASC 1,PA
* 
PLTIN DEC -2        PLOT INCREMENTAL
      DEF SEMCL 
      ASC 1,PR
* 
SELPN DEC -2
      DEF SEMCL 
      ASC 1,LT
STLAB DEC -2
      DEF HT
      ASC 1,LB
STPLB DEC -1
      DEF HT
      OCT 1400      DECIMAL 3 
* 
SLOFF DEC -2
      DEF SEMCL 
      ASC 1,SL
STP12 DEC -2
      DEF SEMCL 
IW    ASC 1,IW
* 
SHTLB DEC -2
      DEF HT
LB    ASC 1,LB
* 
GTMUM DEC 2 
      DEF SEMCL 
      ASC 1,OF
* 
POSCR DEC -2
      DEF SEMCL 
      ASC 1,PC
* 
HT    OCT 137 
      SKP 
* 
* 
SETUP NOP 
      JSB GCBIM     RETRIEVE IOBUF ADDRESS AND IOBL FROM THE GCB
      DEF CONT1 
      DEF .2        CODE IN IGTBL, FOR IOBUF,IOBL,AND LUN 
      DEF .3        TWO CODES 
      DEF LUN 
      DEF .0        THREE WORDS 
      DEF .1        READ
CONT1 LDA IOBUF 
      JSB INDCK 
      STA IOBUF 
      STA IOB 
      STA ADCNT     INITIALIZE ADDRESS COUNTER
      STA INTIO 
      LDA SEMCL     TERMINATOR
      STA TERM
      CLA 
      STA NBYTE     BYTE COUNTER
      STA IBYTE 
* 
      JMP SETUP,I 
* 
*     CONVERT INCOMING DATA FROM ASCII TO INTEGER 
* 
INTEG NOP 
      LDA LNGTH     SET TO CONVERT FROM ASCII TO INTEGER
      CMA,INA 
      STA LNTH
      CLA 
      STA IBYTE 
      LDA INX 
      STA INTAD 
INTLP JSB INTX      BEGIN TO CONVERT DATA 
      DEF RTINT 
INTIO NOP 
INTAD NOP 
      DEF IBYTE 
RTINT LDA FIRST     SEE IF WE ARE RETRIEVING PLOT UNITS 
      CPA OP
      JMP FIXIT     YES 
CONIN ISZ INTAD 
      ISZ LNTH
      JMP INTLP     CONTINUE
      JMP INTEG,I 
FIXIT LDA INTAD,I   CONVERT INTEGER TO FLOATING POINT 
      JSB FLOAT 
      DST INTAD,I 
      ISZ INTAD 
      ISZ LNTH
      JMP CONIN     CONTINUE
* 
*     TAKE VALUES PLACED IN INTX1(1) TO INTX1(LNGTH) AND TRANSFER 
*  THIS DATA TO GICB. 
* 
GB2   NOP 
      STA GCBCD 
      JSB GCBIM     TRANSFER DATA TO AGL
      DEF RTX 
      DEF GCBCD 
      DEF .1
      DEF INTX1 
      DEF LNGTH 
      DEF .2
RTX   JMP GB2,I 
* 
*     RETRIEVE DATA FROM GICB AND PLACE IT IN INTX1(1) TO INTX1(LNTH) 
* 
GB1   NOP 
      STA GCBCD     GCB POINTER 
      JSB GCBIM     RETRIEVE INTEGER VALUES FROM
      DEF RTGB1     GCB 
      DEF GCBCD 
      DEF .1
      DEF INTX1 
      DEF LNTH
      DEF .1
RTGB1 JMP GB1,I 
* 
*     FINI DOES THE FOLLOWING:
*  1. CONVERTS INTEGERS TO ASCII
*  2. TRANSFERS THIS ASCII TO THE DEVICE (VIA OUTPT). 
*  3. RETURNS TO CALLER 
* 
FIN   NOP 
FINI  JSB CONVT 
      DEF RTCON 
      DEF INTX2     FWA FOR INTEGERS TO BE CONVERTED
      DEF IOBUF,I   I O BUFFER
      DEF NBYTE 
      DEF LNGTH 
RTCON JSB TRBYT     INSERT TERMINATOR 
      LDA NBYTE 
      LDB .2
      JSB OUTPT 
      JMP FIN,I 
* 
* 
      SPC 3 
      SPC 3 
* 
* 
TRBYT NOP           INSERT TERMINATOR INTO OUTPUT BUFFER
      LDA TERM      SEMI-COLON
      JSB PTBYT 
      JMP TRBYT,I 
* 
PTBYT NOP 
      STA BITE
      JSB UPDTE     UPDATE ADDRESS COUNTER (ADCNT)
      JSB BYTE
      DEF RTBYT 
      DEF NBYTE 
      DEF BITE
      DEF ADCNT,I 
RTBYT ISZ NBYTE 
      JSB UPDTE 
      JMP PTBYT,I 
* 
* 
UPDTE NOP 
      LDA NBYTE 
      CLE,ERA 
      ADA IOBUF 
      STA ADCNT 
      JMP UPDTE,I 
* 
* 
BITE  NOP 
* 
OUTPT NOP           I/O TRANSFER ROUTINE
      CMA,INA 
      STA IOCNT     BYTE COUNTER FOR OUTPUT 
      STB RW
      JSB REIO
      DEF RTOUT 
      DEF RW
      DEF LUN 
IOB   NOP 
      DEF IOCNT 
RTOUT JMP OUTPT,I 
* 
* 
      SKP 
      SPC 3 
* 
*     EMULATORS 
* 
EML03 NOP 
      JSB SETUP     GO GET IOBUF,IOBL,LUN AND FXD N 
      LDA GIC 
      CPA .177
      JMP ERRCK 
      LDA DCTAD     EMULATOR NUMBER (NEGATIVE)
      CMA,INA 
      STA B 
      LDA EM0       TOP OF LIST OF EMULATORS AND OTHER THINGS.
      JSB INDCK     GET RID OF INDIRECT BIT 
      ADA B         COMPUTE POINTER 
      LDB LNGTH 
      INB 
      STB LNTH
      LDA A,I 
      JMP A,I 
* 
EM0   DEF * 
      DEF EMUL1 
      DEF EMUL2 
      DEF EMUL3 
      DEF EMUL4 
      DEF EMUL5 
      DEF EMUL6 
      DEF EMUL7 
      DEF EMUL8 
      DEF EMUL9 
      DEF EML10 
      DEF EML11 
      DEF EML12 
      DEF EML13 
      DEF EML14 
      DEF EML15 
      DEF EML16 
      DEF EML17 
      DEF EML18 
      DEF EML19 
      DEF EML20 
      DEF EML21 
      DEF EML22 
      DEF EML23 
      DEF EML24 
* 
      SKP 
      SPC 2 
* 
*     CHARACTER SPACING INFORMATION 
* 
EMUL1 LDA .7
      JSB GB1       GET CURRENT CHARACTER SIZE
      LDA .16 
      JSB GB2 
      JMP EML03,I 
* 
*     DEFAULT VALUES = WIDTH * 1.5 * 400 MU MM
*                      HEIGHT * 2. * 400MU/MM 
* 
* 
CHRW  DEC 81. 
CHRH  DEC 324.
CHW   DEC -7400.
      DEC -11000. 
      DEC 7400. 
      DEC 11000.
      OCT 1 
D1.5  DEC 1.5 
D2.0  DEC 2.0 
      SPC 3 
*     RELATIVE PLOTTING (RPLOT(X,Y) 
* 
EML10 LDA .32       GET PORGX,PORGY 
*     JSB GB1 
*     LDA INTX1 
*     STA PORGX 
*     LDA INTX2 
*     STA PORGY 
*     LDA .16       NOW GET NEW POINTS
*     JSB GB1 
*     LDA PORGX     COMPUTE PORG(X,Y) + NEWPOINTS 
*     ADA INTX2 
*     STA INTX2 
*     LDA PORGY 
*     ADA INTX3 
*     STA INTX3 
*     LDA PA
*     JSB WRDST     INSERT PLOT ABSOLUTE COMMAND INTO IOBUF 
*     JSB FIN       CONVERT VALUES TO ASCII AND OUTPUT
*     JMP EML03,I 
* 
      SPC 3 
* 
*     FLOAT TO ASCII
* 
EML11 LDA .3        ETX 
      STA TERM
      LDA LB
      JSB WRDST 
      LDA .16 
      JSB GB1 
      JSB GLIDE 
      JSB TRBYT 
      LDA NBYTE 
      LDB .2
      JSB OUTPT 
      JMP EML03,I 
* 
* 
*     FLOAT TO ASCII CONVERSION 
* 
GLIDE NOP 
      JSB FLTAS 
      DEF RTGLD 
      DEF INTX2 
      DEF IOBUF,I 
      DEF NBYTE 
      DEF FXDN      F7.N
      DEF SKPBK 
RTGLD JMP GLIDE,I 
* 
* 
* 
* 
      SPC 3 
* 
*     DIGITIZE
* 
EMUL2 LDA DP        DIGITIZE POINT -TURN ON ENTER LIGHT 
      JSB PROUT 
EM4LP LDA OS        OUTPUT STATUS 
      JSB PROUT 
      LDA .40       NOW CHECK STATUS WORD BIT 2 TO SEE IF POINT 
      LDB .1
      JSB OUTPT    HAS BEEN ENTERRED
      LDA .1
      STA LNGTH 
      STA LNTH
      JSB INTEG     CONVERT ASCII TO INTEGER
      LDA INTX1 
      AND .4
      SZA 
      JMP GETPT     BIT 2 IS SET GO GET POINT 
      JMP EM4LP     CONTINUE LOOPING UNTIL WHATS -ITS ENTERS POINT
GETPT LDA OD        OUTPUT DIGITIZED POINT
      JSB PROUT 
      LDA .40 
      LDB .1
      JSB OUTPT 
      LDA .3
      STA LNGTH 
      JSB INTEG 
      LDA .16 
      JSB GB2 
      JMP EML03,I 
* 
PROUT NOP           OUTPUT ASCII COMMAND IN THE A REGISTER
      JSB WRDST     STORE WORD IN IOBUF 
      JSB TRBYT 
      LDA .3
      LDB .2
      JSB OUTPT 
      CLA 
      STA NBYTE 
      LDA IOBUF 
      STA ADCNT 
      JMP PROUT,I 
* 
*     ASCII COMMANDS
* 
OD    ASC 1,OD
OS    ASC 1,OS
DP    ASC 1,DP
* 
*     NUMBER OF PENS SIMULATED OR OTHERWISE 
* 
EMUL8 LDA .6        SIMULATED PENS (LINE TYPES) 
      STA INTX1 
      LDA .16 
      JSB GB2 
      JMP EML03,I 
**
*     LABEL DIRECTION 
*     GICB = DEGREES- 9872 WANTS RUN,RISE 
* 
* 
EMUL3 LDA .3
      STA FXDN      SET UP FOR FLOAT TO ASCII CONVERSION
      LDA DI        ABSOLUTE DIRECTION
      JSB WRDST 
      LDA .16 
      JSB GB1       GO GET THETA
      DLD INTX2 
      DST INTX4     SAVE FOR RISE COMPUTATION 
      JSB COS      COMPUTE RUN
      NOP 
      DST INTX2 
EML71 JSB GLIDE     CONVERT TO FLOATING POINT 
      LDA COMA
      JSB PTBYT 
      DLD INTX4 
      JSB SIN 
      NOP           COMPUTE RISE
      DST INTX2 
EML72 JSB GLIDE 
      JSB TRBYT     INSERT TERMINATOR 
      LDA NBYTE 
      LDB .2
      JSB OUTPT 
      JMP EML03,I 
      SPC 3 
* 
*     CHARACTER SLANT 
* 
EMUL4 LDA .3
      STA FXDN      SET UP FOR 3 CHARACTER TO RIGHT OF .
      LDA SL        SLANT MNEMONIC
      JSB WRDST 
      LDA .16 
      JSB GB1       GET ANGLE 
      DLD INTX2 
      JSB TAN       COMPUTE TAN(THETA)
      NOP 
      DST INTX2 
      JSB GLIDE     FLOAT TO ASCII
      JSB TRBYT 
      LDA NBYTE 
      LDB .2
      JSB OUTPT 
      JMP EML03,I 
* 
SL    ASC 1,SL
* 
*     CHARACTER SIZE
*     GICB = WIDTH/HEIGHT 
* 
EMUL5 LDA .3
      STA FXDN
      LDA .16 
      JSB GB1 
      DLD INTX4     GET HEIGHT AND SAVE 
      DST TEMP
      LDA SI
      JSB WRDST 
      DLD INTX2     WIDTH 
      FDV CSIZW     MU/CM/MU
      DST INTX2 
      JSB GLIDE 
      LDA COMA
      JSB PTBYT 
      DLD TEMP
      FDV CSIZH 
      DST INTX2 
      JSB GLIDE 
      JSB TRBYT 
      LDB .2
      LDA NBYTE 
      JSB OUTPT 
      JMP EML03,I 
* 
CSIZW DEC 600.      MU/CM 
CSIZH DEC 800.
SI    ASC 1,SI
* 
*     LINE TYPES - GICB = LT#, <LENGTH> 
* 
EMUL9 LDA .3
      STA FXDN
      LDA .16 
      JSB GB1       GET DATA FROM GCB 
      LDA LT        LINE TYPE COMMAND 
      JSB WRDST 
      LDA INTX2     LT = 0 FOR SOLID
      SZA,RSS 
      JMP FIN11 
      ADA LT0       GET LINE TYPE EQUIVALENCE FOR 9872
      LDA A,I 
      JSB PTBYT 
      LDA LNGTH     IS THERE A LENGTH SPECIFICATION 
      CPA .1
      JMP FIN12 
FIN10 LDA INTX2 
      CPA .5
      JMP FIN11 
      LDA INTX2 
      IOR .1
      ADA PCLT0 
      STA TEMP      ADDRESS OF PERCENT DIVIDER
      DLD INTX3 
      FDV TEMP,I
      DST INTX2 
      LDA COMA
      JSB PTBYT 
      JSB GLIDE     FLOAT TO ASCII
FIN11 JSB TRBYT 
      LDA NBYTE 
      LDB .2
      JSB OUTPT 
      JMP EML03,I 
FIN12 LDA INTX2     IS LT = 1(DIM)
      CPA .1
      JMP *+2       YES 
      JMP FIN14 
      DLD D22 
      DST INTX3 
      JMP FIN10     CONTINUE
* 
FIN14 LDA COMA
      JSB PTBYT     SET DEFAULT LINE TYPE LENGTH BACK TO 4% 
      LDA ASC4
      JSB PTBYT 
      JMP FIN11 
* 
*     LINE TYPES AND PERCENT VALUES 
* 
LT    ASC 1,LT
DI    ASC 1,DI
LT0   DEF * 
LT1   OCT 61
LT2   OCT 62
LT3   OCT 63
LT4   OCT 65
LT5   OCT 60
LT6   OCT 66
* 
* 1% VALUES OF LINE TYPE LENGTHS
* 
PCLT0 DEF * 
PCLT1 DEC 45. 
      DEC 60. 
      DEC 135.
      DEC 180.
      BSS 2 
      DEC 180.
* 
ASC4  OCT 64
D22   DEC 22.5
      SPC 3 
*     GET DISPLAY SIZE IN MM
* 
EML12 LDA SIZMM     LENGTH
      LDB DF8 
      JSB GB
      JMP EML03,I 
* 
SIZMM DEF SZMM
* 
      SPC 3 
* 
* 
*     SET RELATIVE ORIGIN 
* 
EMUL6 LDA .16 
*     JSB GB1 
*     LDA .32       IOSAV 
*     JSB GB2 
*     JMP EML03,I 
      SPC 2 
* 
*     ERASE PAGE ADVANCE
* 
EMUL7 LDA PG
      JSB WRDST 
      LDA ONE 
      JSB WRDST 
      LDB .2
      LDA .4
      JSB OUTPT 
      JMP EML03,I 
* 
ONE OCT 30473 
*     DEVICE CLEARING CAPABILITY
* 
EML13 LDA DVCLR     NO CLEAR
      LDB DF1 
      JSB GB
      JMP EML03,I 
* 
      SPC 2 
*     PHYSICAL PENS 
* 
EML14 LDA DF1 
      LDB DF1 
      JSB GB
      JMP EML03,I 
* 
      SPC 2 
* 
*     LORGABILITY 
* 
EML15 JMP EML14 
      SPC 2 
* 
*     MAX. CHAR SLANT 
* 
EML16 LDA CHSLT 
      LDB DF4 
      JSB GB
      JMP EML03,I 
* 
      SPC 2 
* 
*     DEVICE HARD CLIPPING CAPABILITY 
* 
EML17 JMP EML14 
* 
EML18 LDA DF0 
      LDB DF1 
      JSB GB
      JMP EML03,I 
* 
*     MIN/MAX CHARACTER SIZES 
* 
EML19 LDA DFCHR 
      LDB DF9 
      JSB GB
      JMP EML03,I 
* 
.9    DEC 9 
DF9   DEF .9
DFCHR DEF CHW 
* 
*     LABEL DIRECTION INFORMATION 
* 
EML20 LDA LBLDR 
      LDB DF3 
      JSB GB
      JMP EML03,I 
* 
LBLDR DEF *+1 
      OCT 2 
      DEC 0.
      SPC 2 
* 
*     LORG RANGE
* 
EML21 LDA DFL1
      LDB DF2 
      JSB GB
      JMP EML03,I 
* 
DFL1  DEF *+1 
      OCT 1 
      DEC 9 
* 
* 
EML22 LDA .16 
      JSB GB1       GET G1,G2 
      LDA IP
      JSB WRDST 
      JSB FIN 
      CLA 
      STA NBYTE 
      LDA IOBUF 
      STA ADCNT 
      LDA IW
      JSB WRDST 
      JSB FIN 
      JMP EML03,I 
* 
IP    ASC 1,IP
* 
EML23 LDA IDCD
      LDB DF3 
      JSB GB
      JMP EML03,I 
* 
IDCD  DEF .724A 
.724A ASC 3,7245A 
* 
*     CHARACTER PLACEMENT 
* 
EML24 LDA ACINF 
      LDB DF8 
      JSB GB
      JMP EML03,I 
* 
ACINF DEF CINFO 
* 
CINFO DEC 0.00000 
      DEC 0.66667 
      DEC 0.00000 
      DEC 0.50000 
      SKP 
* 
* 
*     ERROR CHECKING
* 
ERRCK JSB EXEC      SELECT DEVICE CLEAR 
      DEF *+3 
      DEF .3
      DEF LUN 
* 
      LDA OE
      JSB WRDST 
      JSB TRBYT 
      LDA NBYTE 
      LDB .2
      JSB OUTPT 
      LDA .40 
      LDB .1
      JSB OUTPT 
      CLA 
      STA NBYTE 
      LDA IOBUF 
      STA ADCNT 
* 
      LDA OI        SEN OUT ID AND SEE IF IT FLIES
      JSB WRDST 
      JSB TRBYT 
      LDA NBYTE 
      LDB .2
      JSB OUTPT 
      CLA 
      STA NBYTE 
      LDA IOBUF 
      STA ADCNT 
* 
      LDA OE
      JSB WRDST 
      JSB TRBYT 
      LDA NBYTE 
      LDB .2
      JSB OUTPT 
      LDA .40       NOW EXAMINE STATUS WORD 
      LDB .1
      JSB OUTPT 
      LDA .1
      STA LNGTH 
      JSB INTEG     CONVERT TO INTEGER
      LDA INTX1     CHECK BIT 1 
      AND .1
      SZA,RSS 
      JMP LAST1     LAST CHECK FOR DEVICE 
ERRPT LDA .3
      JMP EML03,I 
* 
LAST1 CLA 
      STA NBYTE 
      LDA IOBUF 
      STA ADCNT 
* 
      LDA OI
      JSB WRDST 
      JSB TRBYT 
      LDA NBYTE 
      LDB .2
      JSB OUTPT 
      LDA .40 
      LDB .1
      JSB OUTPT 
* 
      LDA IOB 
      STA BUFAD 
      DLD BUFAD,I 
      CPA PART1 
      JMP CHEK2 
      JMP ERR3
CHEK2 CPB PART2 
      JMP OKAY
ERR3  LDA .3
      JMP EML03,I 
OKAY  LDA .7245 
      JMP EML03,I 
* 
PART1 ASC 1,72
PART2 ASC 1,45
BUFAD NOP 
* 
OE    ASC 1,OE
.7245 DEC 7245
      SKP 
GB    NOP 
      STA ADDR      ADDRESS OF DATA 
      STB NUM       NUMBER OF DATA ITEMS
      JSB GCBIM 
      DEF *+6 
GB16  DEF .16 
      DEF .1
ADDR  NOP 
NUM   NOP 
      DEF .2
      JMP GB,I
* 
*     STORE A WORD INTO THE IOBUF 
* 
WRDST NOP 
      STA ADCNT,I 
      ISZ ADCNT 
      ISZ NBYTE 
      ISZ NBYTE 
      JMP WRDST,I 
      SKP 
      SPC 3 
* 
*     CONSTANTS AND TEMPORARY STORAGE 
* 
A     EQU 0 
B     EQU 1 
NBYTE NOP 
LUN   NOP 
IOBUF NOP 
IOBL  NOP 
FXDN  NOP 
FIRST NOP 
INTX1 NOP 
INTX2 NOP 
INTX3 NOP 
INTX4 NOP 
PORGX BSS 2 
PORGY BSS 2 
INTXX BSS 4 
RW    NOP 
IOCNT NOP 
TEMP  BSS 2 
*     DO NO CHANGE POSITION OF THESE CONSTANTS
.0    OCT 0 
.1    OCT 1 
.2    OCT 2 
.4    OCT 4 
.26   DEC 26
.16   DEC 16
.32   DEC 32
.3    OCT 3 
SEMCL OCT 73
.20   DEC 20
.40   DEC 40
.5    OCT 5 
INX1  DEF INTX4 
INX   DEF INTX1 
.7    DEC 7 
TERM  NOP 
DF3   DEF .3
.600  OCT 6000
SZMM  DEC 5.        200 * .025
      DEC 5.        -32,727* .025 
      DEC 180.
.819  DEC 270.      MACHINE HEIGHT IN MM (32767 * .025) 
DVCLR DEF .2
DF8   DEF .8
.8    DEC 8 
CHSLT DEF .155
.155  DEC 1.56      89 DEGREES
      DEC -1.56 
.03   OCT 1400
COMA  OCT 54
M7    OCT -7
.177  OCT 177 
GCBCD NOP 
DF4   DEF .4
DF2   DEF .2
DF1   DEF .1
DF0   DEF .0
ADCNT NOP 
IBYTE NOP 
LNTH  NOP 
SKPBK NOP 
M1    OCT -1
.6    DEC 6 
.13   DEC 13
      END 
                                                                                                                                                                    