*COMDECK,MALETPA
          EJECT 
          QUAL   MALETPA
          IFNE   CMSE,0,1 
          USE    MODD 
          VFD    30/1,6/KEYFMD2,6/KEY2,18/0   CW FOR FMDFT OVERLAY
          USE    *
*         LENGTHS AND ADDRESSES OF PPU BUFFERS ARE DEFINED BELOW. 
*         THESE VALUES MUST BE KEPT IN PRODUCT OVERLAY ORDER AND
*         MUST ALWAYS AGREE WITH THE ACTUAL VALUES IN THE PPU 
*         PRODUCT OVERLAYS. 
  
          IFNE   CMSE,0,1 
          USE    P0OB 
          DATA   505B        MAX VALUE FOR OB FOR PA OVERLAY (FMDFT)
          USE    *
          IFNE   CMSE,0,1 
          USE    P0OBFWA
          DATA   6105B             RELATIVE FWA OF OB 
          USE    *
          IFNE   CMSE,0,1 
          USE    P0IB 
          DATA   505B        MAX VALUE FOR IB FOR PA OVERLAY (FMDFT)
          USE    *
          IFNE   CMSE,0,1 
          USE    P0IBFWA
          DATA   5400B             RELATIVE FWA OF IB 
          USE    *
          IFNE   CMSE,0,1 
          USE    P0SB 
          DATA   64B         MAX VALUE FOR SB FOR PA OVERLAY (FMDFT)
          USE    *
          IFNE   CMSE,0,1 
          USE    P0SBFWA
          DATA   6612B             RELATIVE FWA OF SB 
          USE    *
  
*         FMD FULL TRACK ENTRY POINTS.
  
 RELFMD2  EQU    POVL 
 RESFMD2  EQU    RELFMD2+4
 DRWFMD2  EQU    RESFMD2+4
 GETFMD2  EQU    DRWFMD2+4
 MARGFMD2 EQU    GETFMD2+4
 RDWRFMD2 EQU    MARGFMD2+4 
 RSETFMD2 EQU    RDWRFMD2+4 
 RTNFMD2  EQU    RSETFMD2+4 
 SEEKFMD2 EQU    RTNFMD2+4
 SHRDFMD2 EQU    SEEKFMD2+4 
 STATFMD2 EQU    SHRDFMD2+4 
 FORFMD2  EQU    STATFMD2+4                                              MAL012G
 SCANFMD2 EQU    FORFMD2+4                                               MAL012G
 WRPFMD2  EQU    SCANFMD2+4                                              MAL012G
  
          IFNE   CMSE,0,1 
          USE    PKEY 
          VFD    24/0,18/LFMD2,18/TFMD2 
 KEYFMD2  EQU    *-PKEY+PKEYOFF 
          USE    *
  
*         LEGAL HIGH-LEVEL I/O COMMANDS FOR FMDFT 
  
 TFMD2    VFD    42/6LDIAGRD,18/FMDDRD2 
          VFD    42/6LDIAGWR,18/FMDDWR2 
          VFD    42/6LREFORM,18/FMDFOR2                                  MAL012G
          VFD    42/3LGET,18/FMDGET2
          VFD    42/7LMARGINS,18/FMDMARG2 
          VFD    42/4LREAD,18/FMDREAD2
          VFD    42/6LREADCB,18/FMDRDCB2
          VFD    42/6LREADCW,18/FMDRDCW2
          VFD    42/3LREL,18/FMDREL2
          VFD    42/3LRES,18/FMDRES2
          VFD    42/5LRESET,18/FMDRSET2 
          VFD    42/7LRTNADDR,18/FMDRTN2
          VFD    42/4LSEEK,18/FMDSEEK2
          VFD    42/4LSCAN,18/FMDSCAN2                                   MAL012G
          VFD    42/7LSHORTRD,18/FMDSHRD2 
          VFD    42/6LSTATUS,18/FMDST2
          VFD    42/6LVERIFY,18/FMDVER2 
          VFD    42/5LWRITE,18/FMDWR2 
          VFD    42/7LWRITECB,18/FMDWRCB2 
          VFD    42/5LWRPRO,18/FMDWRP2                                   MAL012G
 LFMD2    EQU    *-TFMD2
  
*         CONSTANTS USED BY FMDFT 
  
 DSEC     VFD    60/3LSEC 
          VFD    60/6LSECTOR
          EJECT 
 FMDDRD2  TITLE  FMDDRD2 - PROCESS THE FMD DIAGRD STATEMENT.
**        FMDDRD2 - PROCESS THE FMD DIAGRD STATEMENT. 
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDDRD2 - PROCESS THE FMD DIAGNOSTIC STATEMENT. FORMATS 
*                   ARE;
* 
*           DIAGRD, ABT Z 
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT - MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE. 
*                FCERR COMPILER ERR FLAG SET IF COMPILER ERROR CREATED. 
* 
*         ROUTINES CALLED -  FIND   - FIND THE NEXT ITEM FROM SOURCE. 
*                            CSTOREB- STORE GENERATED CODE. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3, 6, 7.
*                X - 0, 1, 3, 6, 7. 
*                B - 7. 
* 
 FMDDRD2  SB7    DRWFMD2     ENTRY POINT FOR DIAGRD 
          SX0    LDN+32B     DIAGNOSTIC READ FUNCTION 
          SX1    STD+PA 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     PAC4        ENTER COMMON CODE
  
**        COMMON CODE PROCESSING
* 
  
*         PROCESS V CODED/NOT CODED SECTORS AT
  
 PAC      ZR     X3,COM30    ERROR EXIT IF END OF STATEMENT 
          SX0    X0+LDN 
          SA1    PACA 
          RJ     FIND        GET V
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          SX2    B3+LDN      CODE = LDN V 
          SA1    DCODED 
          BX1    X1-X3
          ZR     X1,PAC0A 
          SA1    DC 
          BX1    X1-X3
          NZ     X1,PAC0     IF NOT C 
 PAC0A    SA3    A3+B1
          SX6    A3 
          SA6    PCRK        BUMP POINTER TO CRKBUF 
          SX0    X0+20B      SET CODED FLAG BIT 
 PAC0     LX0    12 
          SX1    STD+PA 
          BX0    X0+X1
          LX0    12 
          SX1    STD+PA+53B 
          BX0    X0+X2
          LX0    12 
          BX0    X0+X1       CODE= LDN FLAGS  STD PA  LDN V  STD PA+53B 
 PAC1     RJ     CSTOREB     SAVE GENERATED CODE
          SA1    DSECTOR
          BX1    X1-X3
          ZR     X1,PAC1A    IF SECTORS KEYWORD 
          SA1    PACE+2 
          BX1    X1-X3
          NZ     X1,COM30    IF NOT SEC THEN SYNTAX ERROR 
 PAC1A    SA3    A3+B1
          SA1    DAT
          BX1    X1-X3
          NZ     X1,COM30    ERROR EXIT IF NEXT ITEM IS NOT AT
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        BUMP POINTER TO CRKBUF 
  
*         CRACK CYL W TRK X SEC Y 
  
 PAC2     SX7    B7 
          SA7    PACB        SAVE ENTRY ADDRESS 
          SB7    B0 
 PAC3     SA1    PACE+B7
          BX1    X1-X3
          NZ     X1,COM30    ERROR EXIT IF NOT CORRECT KEYWORD
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        BUMP POINTER TO CRKBUF 
          SA1    PACA 
          RJ     FIND        GET W, X OR Y
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          SX0    B3+LDN 
          SX1    B7+STD+PA+55B
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          SB7    B7+B1
          SB6    3
          NE     B7,B6,PAC3  IF Y HAS NOT BEEN DONE YET 
          SA1    PACB 
          SB7    X1          RESTORE ENTRY ADDRESS
  
*         CRACK ABT Z 
  
 PAC4     SA1    DABT 
          BX1    X3-X1
          NZ     X1,COM30    ERROR EXIT IF NEXT ITEM IS NOT ABT 
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        BUMP POINTER TO CRKBUF 
          ZR     X3,COM30    ERROR EXIT IF END OF STATEMENT 
          SA1    PACC 
          RJ     FIND        GET Z
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          NZ     X3,COM30    ERROR EXIT IF NOT END OF STATEMENT 
          RJ     CPSN        PROCESS STATEMENT NUMBER 
          SA1    PACD 
          SX2    B7          COMMAND ENTRY ADDRESS
          BX0    X1+X2       CODE = LDC 0  RJM ENTRY
          RJ     CABSPPU           ABSOLUTIZE PPU ADDRESSES 
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     COM10       EXIT TO COMPILER 
  
 PACA     VFD    57/0,3/REG1           CONTROL WORD FOR V,W,X AND Y 
 PACB     DATA   0                     BUFFER FOR ENTRY ADDRESS 
 PACC     VFD    42/0,12/77B,6/0       CONTROL WORD FOR Z 
 PACD     VFD    12/0,12/LDC,12/0,12/RJM,12/0 
 PACE     VFD    60/3LCYL              KEYWORDS IN ORDER EXPECTED 
          VFD    60/3LTRK 
          VFD    60/3LSEC 
          EJECT 
 FMDDWR2  TITLE  FMDDWR2 - PROCESS THE FMD DIAGWR STATEMENT.
**        FMDDWR2 - PROCESS THE FMD DIAGWR STATEMENT. 
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDDWR2 - PROCESS THE FMD DIAGNOSTIC WRITE STATEMENT. FORMAT; 
* 
*           DIAGWR, ABT Z 
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT - MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE. 
*                FCERR COMPILER ERR FLAG SET IF COMPILER ERROR CREATED. 
* 
*         ROUTINES CALLED -  CSTOREB- STORE GENERATED CODE. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - NONE.
*                X - NONE.
*                B - 7. 
* 
 FMDDWR2  SB7    DRWFMD2     ENTRY POINT FOR DIAGRD 
          SX0    LDN+33B     DIAGNOSTIC WRITE FUNCTION
          SX1    STD+PA 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     PAC4        ENTER COMMON ABT PROCESSOR 
          EJECT                                                          MAL012G
 FMDFOR2  TITLE  FMDFOR2 - PROCESS THE FMD REFORM STATEMENT.             MAL012G
**        FMDFOR2 - PROCESS THE FMD REFORM STATEMENT.                    MAL012G
*                                                                        MAL012G
*         G. L. GOLDEN. 78/08/08.                                        MAL012G
*                                                                        MAL012G
*         FMDFOR2 -PROCESS THE FMD REFORM STATEMENT. FORMAT AS FOLLOWS   MAL012G
*                                                                        MAL012G
*           REFORM X,ABT Z                                               MAL012G
*                                                                        MAL012G
*         ENTRY - CRKBUF = WORD STING OF SOURCE STATEMENT CRACKED.       MAL012G
*                                                                        MAL012G
*         EXIT  - MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.     MAL012G
*                 PAC    = EXIT IF NO ERRORS FOUND TO COMMON CODE.       MAL012G
*                 COM31  = EXIT TO COMPILER ERRORS ROUTINE IF ERRORS.    MAL012G
*                                                                        MAL012G
*         ROUTINES CALLED -  CSTOREB- STORE GENERATED CODE.              MAL012G
*                            FIND   - FIND THE NEXT DATA ITEM.           MAL012G
*                            CLOADC - STORE PPU CODE GENERATED.          MAL012G
*                                                                        MAL012G
*         DATA AREAS USED -  NONE.                                       MAL012G
*                                                                        MAL012G
*         USES   A - 1.                                                  MAL012G
*                X - 0, 1.                                               MAL012G
*                B - 7.                                                  MAL012G
*                                                                        MAL012G
 FMDFOR2  SB7    FORFMD2                                                 MAL012G
          SA1    FORA        CONTROL WORD FOR BUFFER IB OR OB            MAL012G
          RJ     FIND                                                    MAL012G
          NG     B2,COM31    ERROR EXIT IF NOT FOUND                     MAL012G
          RJ     CLOADC      GENERATE LDC                                MAL012G
          SX1    STD+PA                                                  MAL012G
          LX0    12                                                      MAL012G
          BX0    X0+X1                                                   MAL012G
          RJ     CSTOREB     SAVE GENERATED CODE                         MAL012G
          EQ     PAC4        ENTER COMMON ABT PROCESSOR                  MAL012G
                                                                         MAL012G
 FORA     VFD    54/0,3/BUF1,3/0                                         MAL012G
          EJECT 
 FMDGET2  TITLE  FMDGET2  - PROCESS THE FMD GET STATEMENT.
**        FMDGET -  PROCESS THE FMD GET STATEMENT.
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDGET  - PROCESS THE FMD GET  STATEMENT. FORMATS ARE;
* 
*                 GET SERIAL, ABT Z 
*                 GET FACTORY SECTOR X, ABT Z 
*                 GET UTILITY SECTOR X, ABT Z 
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT  - MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*                 FCERR COMPILER ERR FLAG SET IF COMPILER ERR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB- STORE GENERATED CODE. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3, 6. 
*                X - 0, 1, 3, 6.
*                B - 7. 
* 
 FMDGET2  SB7    B0 
          SB6    LFMD2G 
 FMDG21   SA1    B7+FMD2G 
          BX1    X1-X3
          ZR     X1,FMDG22    IF KEYWORD FOUND
          SB7    B7+B1        BUMP POINTER
          NE     B7,B6,FMDG21 IF LIST NOT EXHAUSTED 
          EQ     COM30        ERROR EXIT IF KEYWORD NOT FOUND 
  
 FMDG22   SX0    LDN+B7 
          SX1    STD+PA 
          SA3    A3+B1       NEXT ITEM FROM CRKBUF
          LX0    12 
          SX6    A3          BUMP POINTER TO CRKBUF 
          BX0    X0+X1       CODE = LDN CODE  STD PA
          SA6    PCRK 
          RJ     CSTOREB     SAVE GENERATED CODE
          SX0    LDN
          ZR     B7,FMDG24
          MX0    0
          SA1    DSEC        DISPLAY CODE SEC 
          BX1    X1-X3
          ZR     X1,FMDG23
          SA1    A1+B1       DISPLAY CODE SECTOR
          BX1    X1-X3
          NZ     X1,COM30    ERROR EXIT IF NOT SEC OR SECTOR
 FMDG23   SA3    A3+B1
          SX6    A3 
          SA6    PCRK 
          SA1    FMDGA2 
          RJ     FIND 
          NG     B2,COM31    ERRORS EXIT IF NOT IN RANGE
          RJ     CLOAD
 FMDG24   SX1    STD+PA+1 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     STORE GENERATED CODE 
          SB7    GETFMD2     ENTRY POINT FOR GET
          EQ     PAC4        ENTER COMMON SEQUENCE
  
 FMD2G    VFD    60/6LSERIAL   GET KEYWORDS 
          VFD    60/7LFACTORY 
          VFD    60/7LUTILITY 
 LFMD2G   EQU    *-FMD2G
  
 FMDGA2   VFD    42/0,12/31B,3/0,3/REG2    CONTROL WORD FOR X 
          EJECT 
 FMDMARG2 TITLE  FMDMARG2 - PROCESS THE FMD MARGINS STATEMENT.
**        FMDMARG2 - PROCESS THE FMD MARGINS STATEMENT. 
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDMARG2 - PROCESS THE FMD MARGINS STATEMENT. FORMAT
* 
*           MARGINS W, ABT Z
*           MARGINS X OFFSET, Y STROBES, ABT Z
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT - MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE. 
*                FCERR COMPILER ERR FLAG SET IF COMPILER ERROR CREATED. 
* 
*         ROUTINES CALLED -  FIND   - FIND THE NEXT ITEM FROM SOURCE. 
*                            CSTOREB- STORE GENERATED CODE. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3, 6. 
*                X - 0, 1, 3, 6.
*                B - 5, 6, 7. 
* 
 FMDMARG2 SA1    FMD2MA      ENTRY POINT FOR DIAGRD 
          RJ     FIND        GET W IF SPECIFIED 
          NG     B2,FMD2M1   IF NOT FOUND - NOT A REGISTER
          RJ     CLOAD
          EQ     FMD2M6 
  
 FMD2M1   SB7    B0          CLEAR COUNTER
          SB6    LFMD2MB     SET LENGTH 
 FMD2M2   SA1    B7+FMD2MB
          BX1    X1-X3
          ZR     X1,FMD2M3    IF KEYWORD FOUND
          SB7    B7+B1        BUMP POINTER
          NE     B7,B6,FMD2M2 IF NOT END OF TABLE 
          EQ     COM30        ERROR EXIT IF KEYWORD NOT FOUND 
  
 FMD2M3   SB5    B7          SET OFFSET VALUE 
          SB7    B0          CLEAR COUNTER
          SB6    LFMD2MC
          SA3    A3+B1       NEXT ITEM FROM CRKBUF
          SA1    DOFFSET
          BX1    X1-X3
          NZ     X1,COM30    ERROR EXIT IF NEXT KEYWORD NOT OFFSET
          SA3    A3+B1       NEXT ITEM FROM CRKBUF
 FMD2M4   SA1    B7+FMD2MC
          BX1    X1-X3
          ZR     X1,FMD2M5   IF KEYWORD FOUND 
          SB7    B7+B1       BUMP POINTER 
          SB5    B5+10B      BUMP STROBES 
          NE     B7,B6,FMD2M4 IF NOT END OF LIST
          EQ     COM30       ERROR EXIT IF KEYWORD NOT FOUND
  
 FMD2M5   SA3    A3+B1       NEXT ITEM FROM CRKBUF
          SA1    DSTROBE
          BX1    X1-X3
          NZ     X1,COM30    ERROR EXIT IF NEXT ITEM NOT STROBES
          SA3    A3+B1
          SX0    LDN+B5 
          SX6    A3 
          SA6    PCRK        BUMP POINTER TO CRKBUF 
 FMD2M6   SX1    STD+PA 
          LX0    12 
          BX0    X0+X1       CODE = LDN VALUE   STD PA
          RJ     CSTOREB
          SB7    MARGFMD2    ENTRY POINT FOR MARGINS
          EQ     PAC4        ENTER COMMON ABT SEQUENCE
  
 FMD2MA   VFD    57/0,3/REG2 CONTROL WORD FOR W 
  
 FMD2MB   VFD    60/6LNORMAL KEYWORDS FOR X 
          VFD    60/3LFWD 
          VFD    60/3LREV 
 LFMD2MB  EQU    *-FMD2MB 
  
 FMD2MC   VFD    60/6LNORMAL KEYWORDS FOR Y 
          VFD    60/5LEARLY 
          VFD    60/4LLATE
 LFMD2MC  EQU    *-FMD2MC 
          EJECT 
 FMDREAD2 TITLE  FMDREAD2 - PROCESS THE FMD READD STATEMENT.
**        FMDREAD2 - PROCESS THE FMD READ STATEMENT.
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDREAD2 - PROCESS THE FMD READ STATEMENT. FORMAT;
* 
*           READ V SECTORS AT CYL W TRK X SEC Y, ABT Z
*           READ V CODED SECTORS AT CYL W TRK X SEC Y, ABT Z
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT - MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE. 
*                FCERR COMPILER ERR FLAG SET IF COMPILER ERROR CREATED. 
* 
*         ROUTINES CALLED    NONE.
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - NONE.
*                X - NONE.
*                B - 7. 
* 
 FMDREAD2 SB7    RDWRFMD2    ENTRY POINT FOR READ 
          SX0    4           READ FUNCTION
          EQ     PAC         ENTER COMMON SEQUENCE
          EJECT 
 FMDRDCB2 TITLE  FMDRDCB2 - PROCESS THE FMD READCB STATEMENT. 
**        FMDRDCB2 - PROCESS THE FMD READCB STATEMENT.
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDRDCB2 - PROCESS THE FMD READCB STATEMENT. FORMAT IS; 
* 
*           READCB, ABT Z 
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT - MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE. 
*                FCERR COMPILER ERR FLAG SET IF COMPILER ERROR CREATED. 
* 
*         ROUTINES CALLED -  CSTOREB- STORE GENERATED CODE. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - NONE.
*                X - 0, 1.
*                B - 7. 
* 
 FMDRDCB2 SB7    DRWFMD2     ENTRY POINT FOR READCB 
          SX0    LDN+43B
          SX1    STD+PA 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     PAC4        ENTER COMMON ABT SEQUENCE
          EJECT 
 FMDRDCW2 TITLE  FMDRDCW2 - PROCESS THE FMD READCW STATEMENT. 
**        FMDRDCW2 - PROCESS THE FMD READCW STATEMENT.
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDDRD  - PROCESS THE FMD READCW STATEMENT. FORMAT IS 
* 
*           READCW V SECTORS AT CYL W TRK X SEC Y, ABT Z
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT - MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE. 
*                FCERR COMPILER ERR FLAG SET IF COMPILER ERROR CREATED. 
* 
*         ROUTINES CALLED -  FIND   - FIND THE NEXT ITEM FROM SOURCE. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1. 
*                X - 0, 1.
*                B - 7. 
* 
 FMDRDCW2 SB7    RDWRFMD2    ENTRY POINT FOR READCW 
          ZR     X3,COM30    ERROR EXIT IF END OF STATEMENT 
          SX0    LDN+7       READ CHECKWORD FUNCTION
          SX1    STD+PA 
          LX0    12 
          BX0    X0+X1
          SA1    PACA 
          RJ     FIND 
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          SX1    B3+LDN 
          LX0    12 
          BX0    X0+X1
          SX1    STD+PA+53B 
          LX0    12 
          BX0    X0+X1       CODE = LDN CODE, STD PA, LDN V, STD PA+53B 
          EQ     PAC1        ENTER COMMON SEQUENCE
          EJECT 
 FMDREL2  TITLE  FMDREL2 - PROCESS THE FMD RELD STATEMENT.
**        FMDREL2 - PROCESS THE FMD REL STATEMENT.
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDREL2 - PROCESS THE FMD REL STATEMENT. FORMAT IS
* 
*           REL, ABT Z
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT - MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE. 
*                FCERR COMPILER ERR FLAG SET IF COMPILER ERROR CREATED. 
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - NONE.
*                X - NONE.
*                B - 7. 
* 
 FMDREL2  SB7    RELFMD2     ENTRY POINT FOR REL
          EQ     PAC4        ENTER COMMON ABT SEQUENCE
          EJECT 
 FMDRES2  TITLE  FMDRES2 - PROCESS THE FMD RES STATEMENT. 
**        FMDRES2 - PROCESS THE FMD RES STATEMENT.
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDRES2 - PROCESS THE FMD RES STATEMENT. FORMATS ARE; 
* 
*           RES CONTROLLER, ABT Z 
*           RES DRIVE, ABT Z
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT - MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE. 
*                FCERR COMPILER ERR FLAG SET IF COMPILER ERROR CREATED. 
* 
*         ROUTINES CALLED -  CSTOREB- STORE GENERATED CODE. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 2, 3, 6.
*                X - 0, 1, 2, 3, 6. 
*                B - 7. 
* 
 FMDRES2  SA1    FMD2RA      ENTRY POINT FOR RES
          SA2    FMD2RB 
          BX1    X1-X3
          SB7    B0 
          ZR     X1,FMD2R    IF RES CONTROLLER
          BX2    X2-X3
          SB7    B1 
          NZ     X2,COM30    ERROR EXIT IF NOT DRIVE OR CONTROLLER
 FMD2R    SX0    LDN+B7 
          SX1    STD+PA 
          LX0    12 
          BX0    X0+X1       CODE = LDN 0/1  STD PA 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        BUMP POINTER TO CRKBUF 
          SB7    RESFMD2     ENTRY POINT FOR RES
          EQ     PAC4        ENTER COMMON ABT SEQUENCE
  
 FMD2RA   VFD    60/10LCONTROLLER 
 FMD2RB   VFD    60/5LDRIVE 
          EJECT 
 FMDRSET2 TITLE  FMDRSET2 - PROCESS THE FMD RESET STATEMENT.
**        FMDRSET2 - PROCESS THE FMD RESET STATEMENT. 
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDRSET2 - PROCESS THE FMD RESET STATEMENT. FORMAT IS;
* 
*           RESET, ABT Z
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT - MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE. 
*                FCERR COMPILER ERR FLAG SET IF COMPILER ERROR CREATED. 
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - NONE.
*                X - NONE.
*                B - 7. 
* 
 FMDRSET2 SB7    RSETFMD2    ENTRY POINT FOR RESET
          EQ     PAC4        ENTER COMMON ABT PROCESSOR CODE
          EJECT 
 FMDRTN2  TITLE  FMDRTN2 - PROCESS THE FMD RTNADDR STATEMENT. 
**        FMDRTN2 - PROCESS THE FMD RTNADDR STATEMENT.
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDRTN2 - PROCESS THE FMD RTNADDR STATEMENT. FORMAT IS; 
* 
*           RTNADDR TO Y, ABT Z 
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT - (B7) = RTNFMD. 
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  NONE.
* 
*         USES   A - NONE.
*                X - NONE.
*                B - 7. 
* 
 FMDRTN2  SB7    RTNFMD2     ENTRY POINT FOR RTNADDR
          SA1    DTO
          BX1    X1-X3
          NZ     X1,COM30    ERROR EXIT IF NEXT ITEM IS NOT TO
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        BUMP POINTER TO CRKBUF 
          SA1    FMDRTNA
          RJ     FIND        GET Y
          NG     B2,COM31    ERROR EXIT IF Y NOT FOUND
          RJ     CLOADC      GENERATE LOAD CONSTANT 
          SX1    STD+PA 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED DATA
          EQ     PAC4        ENTER COMMON SEQUENCE
  
 FMDRTNA  VFD    54/0,3/BUF4,3/0       CONTROL WORD FOR Y 
          EJECT                                                          MAL012G
 FMDSCAN2 TITLE  FMDSCAN2- PROCESS THE FMD SCAN STATEMENT.               MAL012G
**        FMDSCAN2- PROCESS THE FMD SCAN STATEMENT.                      MAL012G
*                                                                        MAL012G
*         G. L. GOLDEN. 78/08/08.                                        MAL012G
*                                                                        MAL012G
*         FMDSCAN2- PROCESS THE FMD SCAN STATEMENT. FORMAT AS FOLLOWS    MAL012G
*                                                                        MAL012G
*           SCAN,ABT Z                                                   MAL012G
*                                                                        MAL012G
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT CRACKED.      MAL012G
*                                                                        MAL012G
*         EXIT  - (B7)   = SCANFMD2 (ADDRESS OF SCAN SUBROUTINE.         MAL012G
*                                                                        MAL012G
*         ROUTINES CALLED -  NONE.                                       MAL012G
*                                                                        MAL012G
*         DATA AREAS USED -  NONE.                                       MAL012G
*                                                                        MAL012G
*         USES   A - NONE.                                               MAL012G
*                X - NONE.                                               MAL012G
*                B - 7.                                                  MAL012G
*                                                                        MAL012G
 FMDSCAN2 SB7    SCANFMD2    ADDRESS OF FMD SCAN SUBROUTINE              MAL012G
          EQ     PAC4                                                    MAL012G
          EJECT 
 FMDSEEK2 TITLE  FMDSEEK2 - PROCESS THE FMD SEEK STATEMENT. 
**        FMDSEEK2 - PROCESS THE FMD SEEK STATEMENT.
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDSEEK2 - PROCESS THE FMD SEEK STATEMENT. FORMAT IS; 
* 
*           SEEK CYL W TRK X SEC Y, ABT Z 
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT - (B7) = SEEKFMD (ADDRESS OF SEEK SUBROUTINE IN DRIVER)
*                PAC2 = COMMON COMPILER CODE TO PROCESS SEEK STATEMENT. 
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  NONE.
* 
*         USES   A - NONE.
*                X - NONE.
*                B - 7. 
* 
 FMDSEEK2 SB7    SEEKFMD2    ENTRY POINT FOR SEEK 
          EQ     PAC2        ENTER COMMON SEQUENCE
          EJECT 
 FMDSHRD2 TITLE  FMDSHRD2 - PROCESS THE FMD SHORTRD STATEMENT.
**        FMDSHRD2 - PROCESS THE FMD SHORTRD STATEMENT. 
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDSHRD2 - PROCESS THE FMD SHORTRD STATEMENT. FORMAT IS;
* 
*           SHORTRD CYL W TRK X SEC Y, ABT Z
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT - (B7) = SHRDFMD (ADDRESS OF DRIVER CODE FOR SHORTRD)
*                PAC2 = COMMON COMPILER CODE TO PROCESS STATEMENT.
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  NONE.
* 
*         USES   A - NONE.
*                X - NONE.
*                B - 7. 
* 
 FMDSHRD2 SB7    SHRDFMD2    ENTRY POINT FOR SHORTRD
          EQ     PAC2        ENTER COMMON COMPILER CODE 
          EJECT 
 FMDST2   TITLE  FMDST2    PROCESS THE FMDFT STATUS STATEMENT.
**        FMDST2 - PROCESS THE FMDFT STATUS STATEMENT.
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDST2 - PROCESS THE FMDFT STATUS STATEMENT. FORMAT IS; 
* 
*           STATUS GENERAL, ABT Z 
*           STATUS DETAIL, ABT Z
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT - (B7) = STATFMD (ADDRESS OF STATUS ROUTINE IN DRIVER) 
*                PAC4 = COMMON CODE TO PROCESS REST OF STATEMENT. 
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  NONE.
* 
*         USES   A - NONE.
*                X - NONE.
*                B - 7. 
* 
 FMDST2   SB7    B0          CLEAR POINTER
          SB6    LFMDS2 
 FMDS21   SA1    FMDS2+B7 
          BX1    X1-X3
          ZR     X1,FMDS22   IF KEYWORD FOUND 
          SB7    B7+B1       BUMP POINTER 
          NE     B7,B6,FMDS21 IF END OF LIST NOT FOUND
          EQ     COM30       ERROR EXIT IF NOT FOUND
  
 FMDS22   SX0    LDN+B7 
          SX1    STD+PA 
          SA3    A3+B1
          LX0    12 
          SX6    A3 
          BX0    X0+X1       CODE = LDN FLAG, STD PA
          SA6    PCRK 
          RJ     CSTOREB
          SB7    STATFMD2    ENTRY POINT FOR STATUS 
          EQ     PAC4        ENTER COMMON SEQUENCE
  
 FMDS2    VFD    60/7LGENERAL 
          VFD    60/6LDETAIL
 LFMDS2   EQU    *-FMDS2
          EJECT 
  
 FMDVER2  TITLE  FMDVER2 - PROCESS THE FMD VERIFY STATEMENT.
**        FMDVER2 - PROCESS THE FMD VERIFY STATEMENT. 
* 
*         G. L. GOLDEN  77/11/30. 
* 
*         FMDVER2 - PROCESS THE FMD VERIFY STATEMENT.  FORMATS ARE; 
* 
*                VERIFY V SECTORS AT CYL W TRK X SEY Y, ABT Z 
*                VERIFY V CODED SECTORS AT CYL W TRK X SEC Y, ABT Z 
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT  - (B7) = VERFMD (ADDRESS OF VERIFY ROUTINE IN DRIVER. 
*                 PAC  = COMMON CODE TO PROCESS REST OF STATEMENT.
* 
*         ROUTINES CALLED - NONE. 
* 
*         DATA AREAS USED - NONE. 
* 
*         USES   A - NONE.
*                X - NONE.
*                B - 7. 
* 
 FMDVER2  SB7    RDWRFMD2 
          SX0    6+40B       VERIFY FUNCTION PLUS WRITE FLAG
          EQ     PAC         ENTER COMMON SEQUENCE
          EJECT 
 FMDWR2   TITLE FMDWR2 - PROCESS THE FMD WRITE STATEMENT. 
**        FMDWR2 - PROCESS THE FMD WRITE STATEMENT. 
* 
*         G. L. GOLDEN  77/11/30. 
* 
*         FMDWR2 - PROCESS THE FMD WRITE STATEMENT. FORMATS ARE;
* 
*               WRITE V SECTORS AT CYL W TRK X SEC Y, ABT Z 
*               WRITE V CODED SECTORS AT CYL W TRK X SEC Y, ABT Z 
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT  - (B7) = RDWRFMD (ADDRESS OF WRITE ROUTINE IN DRIVER. 
*                 (X0) = 45B (WRITE FUNCTION + WRITE BIT. 
*                 PAC  = COMMON CODE TO PROCESS REST OF STATEMENT.
* 
*         ROUTINES CALLED - NONE. 
* 
*         DATA AREAS USED - NONE. 
* 
*         USES   A - NONE.
*                X - 0. 
*                B - 7. 
* 
 FMDWR2   SB7    RDWRFMD2    ENTRY POINT IN DRIVER FOR WRITE
          SX0    5+40B       WRITE FUNCTION PLUS WRITE BIT
          EQ     PAC         ENTER COMMON CODE TO PROCESS STATEMENT.
          EJECT                                                          MAL012G
 FMDWRP2  TITLE  FMDWRP - PROCESS THE FMD WRPRO STATEMENT.               MAL012G
 FMDWRCB2 TITLE  FMDWRCB2 - PROCESS THE FMD WRITECB STATEMENT.
**        FMDWRCB2 - PROCESS THE FMD WRITECB STATEMENT. 
* 
*         M.S.FABBRINI  83/09/16. 
* 
*         FMDWRCB2 - PROCESS THE FMD WRITECB STATEMENT. FORMAT IS;
* 
*           WRITECB, ABT Z
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT  -  PAC4   IF NO ERRORS FOUND
* 
*         ROUTINES CALLED -  CSTOREB- STORE GENERATED PPU CODE. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - NONE.
*                X - 0, 1.
*                B - 7. 
* 
 FMDWRCB2 SB7    DRWFMD2     ENTRY POINT FOR WRITECB
          SX0    LDN+44B     WRITECB FUNCTION 
          SX1    STD+PA 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     PAC4        ENTER COMMON ABT PROCESSOR 
          EJECT 
**        FMDWRP2 - PROCESS THE FMD WRPRO STATEMENT.                     MAL012G
*                                                                        MAL012G
*         G. L. GOLDEN 78/08/08.                                         MAL012G
*                                                                        MAL012G
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT CRACKED.      MAL012G
*                                                                        MAL012G
*         EXIT  - (B7)   = WRPFMD2 (ADDRESS OF WRPRO SUBROUTINE.         MAL012G
*                                                                        MAL012G
*         ROUTINES CALLED -  NONE.                                       MAL012G
*                                                                        MAL012G
*         DATA AREAS USED -  NONE.                                       MAL012G
*                                                                        MAL012G
*         USES   A - NONE.                                               MAL012G
*                X - NONE.                                               MAL012G
*                B - 7.                                                  MAL012G
*                                                                        MAL012G
 FMDWRP2  SB7    WRPFMD2     ADDRESS OF FMD WRPRO SUBROUTINE             MAL012G
          EQ     PAC2        ENTER COMMON CODE SEQUENCE                  MAL012G
          EJECT 
