*COMDECK MALETP9
          EJECT 
          QUAL   MALETP9
          IFNE   CMSE,0,1 
          USE    MODD 
          VFD    30/1,6/KEYFMD1,6/KEY2,18/0   CW FOR FMDHT 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 P9 OVERLAY (FMDHT)
          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 P9 OVERLAY (FMDHT)
          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 P9 OVERLAY (FMDHT)
          USE    *
          IFNE   CMSE,0,1 
          USE    P0SBFWA
          DATA   6612B             RELATIVE FWA OF SB 
          USE    *
          EJECT 
*         FMD HALF-TRACK ENTRY POINTS.
  
 RELFMD   EQU    POVL 
 RESFMD   EQU    RELFMD+4 
 CNTLFMD  EQU    RESFMD+4 
 DRWFMD   EQU    CNTLFMD+4
 GETFMD   EQU    DRWFMD+4 
 MARGFMD  EQU    GETFMD+4 
 OUTFMD   EQU    MARGFMD+4
 RDWRFMD  EQU    OUTFMD+4 
 RSETFMD  EQU    RDWRFMD+4
 RTNFMD   EQU    RSETFMD+4
 SEEKFMD  EQU    RTNFMD+4 
 SHRDFMD  EQU    SEEKFMD+4
 STATFMD  EQU    SHRDFMD+4
 FLAGFMD  EQU    STATFMD+4                                               MAL010G
 PTFMD    EQU    FLAGFMD+4                                               MAL010G
  
          IFNE   CMSE,0,1 
          USE    PKEY 
          VFD    24/0,18/LFMD1,18/TFMD1 
 KEYFMD1  EQU    *-PKEY+PKEYOFF 
          USE    *
  
*         LEGAL HIGH-LEVEL I/O COMMANDS FOR FMDHT 
  
 TFMD1    VFD    42/7LCONTROL,18/FMDCNTL
          VFD    42/4LFLAG,18/FMDFLAG                                    MAL010G
          VFD    42/5LFMDPT,18/FMDPT                                     MAL010G
          VFD    42/3LGET,18/FMDGET 
          VFD    42/7LMARGINS,18/FMDMARG
          VFD    42/3LOUT,18/FMDOUT 
          VFD    42/4LREAD,18/FMDREAD 
          VFD    42/6LREADCW,18/FMDRDCW 
          VFD    42/3LREL,18/FMDREL 
          VFD    42/3LRES,18/FMDRES 
          VFD    42/5LRESET,18/FMDRSET
          VFD    42/7LRTNADDR,18/FMDRTN 
          VFD    42/4LSEEK,18/FMDSEEK 
          VFD    42/7LSHORTRD,18/FMDSHRD
          VFD    42/6LSTATUS,18/FMDST1
          VFD    42/6LVERIFY,18/FMDVER
          VFD    42/5LWRITE,18/FMDWR
 LFMD1    EQU    *-TFMD1
  
*         CONSTANTS USED BY FMD 
  
 DAND     VFD    60/3LAND 
 DCHANNEL VFD    60/7LCHANNEL 
          VFD    60/2LCH
 DEXEC    VFD    60/7LEXECUTE 
 DSEC     VFD    60/3LSEC 
          VFD    60/6LSECTOR
 DTIME    VFD    60/4LTIME
 DPULSE   VFD    60/5LPULSE                                              MAL010G
          EJECT 
 FMDCNTL  TITLE  FMDCNTL  - PROCESS THE FMD CONTROL STATEMENT.
**        FMDCNTL - PROCESS THE FMD CONTROL STATEMENT.
* 
*         G. L. GOLDEN. 77/10/25. 
* 
*         FMDCNTL  - PROCESS THE FMD CONTROL STATEMENT. FORMATS ARE;
* 
*           CONTROL A,B,C,D,ABT Z 
*           CONTROL A,B,C,D,EXECUTE,ABT Z 
*           CONTROL A,B,C,D,TIME V TO X AND Y,ABT Z 
*           CONTROL A,B,C,D,TIME V X AND Y,ABT Z
*           CONTROL A,B,C,D,TIME V X 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. 
*                            CSTOREB- STORE GENERATED CODE. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - NONE.
*                X - NONE.
*                B - 7. 
* 
  
**        1. GET VALUE FOR A AND FORM CODE TO STORE INTO PA+50B.
* 
 FMDCNTL  SA1    CNTA        CONTROL WORD FOR VALUE 0-377B
          RJ     FIND 
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          RJ     CLOAD
          SX1    STD+PA+50B 
          LX0    12 
          BX0    X0+X1       CODE  LDC A, STD PA+50B
          RJ     CSTOREB
  
**        2. GET VALUE FOR B AND FORM CODE TO STORE INTO PA+51B.
* 
          SA1    CNTA        CONTROL WORD FOR A-D 
          RJ     FIND 
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          RJ     CLOAD
          SX1    STD+PA+51B 
          LX0    12 
          BX0    X0+X1       CODE  LDC B, STD PA+51B
          RJ     CSTOREB
  
**        3. GET VALUE FOR C AND FORM CODE TO STORE INTO PA+52B.
* 
          SA1    CNTA        CONTROL WORD FOR A-D 
          RJ     FIND 
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          RJ     CLOAD
          SX1    STD+PA+52B 
          LX0    12 
          BX0    X0+X1       CODE  LDC C, STD PA+52B
          RJ     CSTOREB
  
**        4. GET VALUE FOR D AND FORM CODE TO STORE INTO PA+53B.
* 
          SA1    CNTA        CONTROL WORD FOR A-D 
          RJ     FIND 
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          RJ     CLOAD
          SX1    STD+PA+53B 
          LX0    12 
          BX0    X0+X1       CODE  LDC D, STD PA+53B
          RJ     CSTOREB
  
**        5. SEE IF EXECUTE IF NOT THEN STEP 6, ELSE ADVANCE PCRK THEN
*            STEP 12. 
* 
          SB7    B0          (B7) = 0 
          ZR     X3,COM30    IF NO MORE PARAMETERS
          SA1    DEXEC       DISPLAY CODE  *EXECUTE*
          BX1    X1-X3
          NZ     X1,CNTL1    IF NOT EXECUTE 
          SB7    B1          (B7) = 1 
          SA3    A3+1 
          SX6    A3 
          SA6    PCRK 
          EQ     CNTL5
  
**        6. SEE IF TIME IF NOT THEN STEP 8 ELSE BUNMP PCRK THEN STEP 
*            7. 
* 
 CNTL1    SA1    DTIME       DISPLAY CODE *TIME*
          BX1    X1-X3
          NZ     X1,CNTL5    IF NOT TIME
          SB7    B1+B1       (B7)= 2
          SA3    A3+B1       GET NEXT VALUE SHOULD BE X 
          SX6    A3 
          SA6    PCRK 
  
**        7. GET VALUE FOR V AND FORM CODE TO STORE INTO PA+54B.
* 
          SA1    CNTC        CONTROL WORD FOR V 
          RJ     FIND 
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          RJ     CLOAD
          SX1    STD+PA+1 
          LX0    12 
          BX0    X0+X1       CODE  LDC V, STD PA+54B
          RJ     CSTOREB
  
**        8. SEE IF TO IF NOT THEN STEP 8,ELSE ADVANCE POINTER THEN 
*            STEP 9.
* 
          SX1    2RTO 
          LX1    59-11
          BX1    X1-X3
          NZ     X1,CNTL2    IF NOT TO
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK 
  
**        9. GET VALUE FOR X AND FORM CODE TO STORE INTO PA+55B.
* 
 CNTL2    SA1    CNTB 
          RJ     FIND 
          NG     B2,COM31    ERROR EXIT IF REGISTER NOT FOUND 
          SX0    B3+LDN 
          SX1    STD+PA+55B 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
  
**        10. IF AND USED ADVANCE POINTER ELSE STEP 11. 
* 
          SA1    DAND        SISPLAY CODE *AND* 
          BX1    X1-X3
          NZ     X1,CNTL3    ERROR EXIT IF NOT AND
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        STORE POINTER TO CRKBUF AFTER BUMP 
  
**        11. GET VALUE FOR Y AND FORM CODE TO STORE INTO PA+56B. 
* 
 CNTL3    SA1    CNTB 
          RJ     FIND 
          NG     B2,COM31    ERROR EXIT IF REGISTER NOT FOUND 
          SX0    B3+LDN 
          SX1    STD+PA+56B 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          SB7    B1+B1       FLAG CODE=2
  
**        12. STORE OPERATION CODE THEN ENTER COMMON ABT SEQUENCE.
* 
 CNTL5    SX0    LDN+B7 
          SX1    STD+PA      CODE IS   LDN  CODE
          LX0    12                    STD  PA
          BX0    X0+X1
          RJ     CSTOREB
          SB7    CNTLFMD
          EQ     P9C4 
  
**        COMMON CODE PROCESSING
* 
  
*         PROCESS V CODED/NOT CODED SECTORS AT
  
 P9C      ZR     X3,COM30    ERROR EXIT IF END OF STATEMENT 
          SX0    X0+LDN 
          SA1    P9CA 
          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,P9C0A 
          SA1    DC 
          BX1    X1-X3
          NZ     X1,P9C0     IF NOT C 
 P9C0A    SA3    A3+B1
          SX6    A3 
          SA6    PCRK        BUMP POINTER TO CRKBUF 
          SX0    X0+20B      SET CODED FLAG BIT 
 P9C0     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 
 P9C1     RJ     CSTOREB     SAVE GENERATED CODE
          SA1    DSECTOR
          BX1    X1-X3
          ZR     X1,P9C1A    IF SECTORS KEYWORD 
          SA1    P9CE+2 
          BX1    X1-X3
          NZ     X1,COM30    IF NOT SEC THEN SYNTAX ERROR 
 P9C1A    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 
  
 P9C2     SX7    B7 
          SA7    P9CB        SAVE ENTRY ADDRESS 
          SB7    B0 
 P9C3     SA1    P9CE+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    P9CA 
          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,P9C3  IF Y HAS NOT BEEN DONE YET 
          SA1    P9CB 
          SB7    X1          RESTORE ENTRY ADDRESS
  
*         CRACK ABT Z 
  
 P9C4     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    P9CC 
          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    P9CD 
          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 
  
 P9CA     VFD    57/0,3/REG1           CONTROL WORD FOR V,W,X AND Y 
 P9CB     DATA   0                     BUFFER FOR ENTRY ADDRESS 
 P9CC     VFD    42/0,12/77B,6/0       CONTROL WORD FOR Z 
 P9CD     VFD    12/0,12/LDC,12/0,12/RJM,12/0 
 P9CE     VFD    60/3LCYL              KEYWORDS IN ORDER EXPECTED 
          VFD    60/3LTRK 
          VFD    60/3LSEC 
  
 CNTA     VFD    42/0,12/377B,6/0      CONTROL WORD FOR A-D 
 CNTB     VFD    57/0,3/REG1           CONTROL WORD FOR X-Y 
 CNTC     VFD    42/0,12/7777B,6/0     CONTROL WORD FOR V 
          EJECT 
 FMDDRD   TITLE  FMDDRD  - PROCESS THE FMD DIAGRD STATEMENT.
**        FMDDRD - PROCESS THE FMD DIAGRD STATEMENT.
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDDRD  - 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 - NONE.
*                X - NONE.
*                B - 7. 
* 
 FMDDRD   SB7    DRWFMD      ENTRY POINT FOR DIAGRD 
          SX0    LDN+32B     DIAGNOSTIC READ FUNCTION 
          SX1    STD+PA 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     P9C4        ENTER COMMON ABT PROCESSOR 
          EJECT 
 FMDDWR   TITLE  FMDDWR  - PROCESS THE FMD DIAGWR STATEMENT.
**        FMDDWR - PROCESS THE FMD DIAGWR STATEMENT.
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDDWR  - 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. 
* 
 FMDDWR   SB7    DRWFMD      ENTRY POINT FOR DIAGRD 
          SX0    LDN+33B     DIAGNOSTIC WRITE FUNCTION
          SX1    STD+PA 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     P9C4        ENTER COMMON ABT PROCESSOR 
          EJECT                                                          MAL010G
 FMDFLAG  TITLE  FMDFLAG - PROCESS THE FLAG PULSE STATEMENT.             MAL010G
**        FMDFLAG - PROCESS THE FLAG PULSE STATEMENT.                    MAL010G
*                                                                        MAL010G
*         G. L. GOLDEN.  78/08/08.                                       MAL010G
*                                                                        MAL010G
*         FMDFLAG - PROCESS THE FMDHT FLAG PULSE STATEMENT. FORMAT       MAL010G
*                   AS FOLLOWS.                                          MAL010G
*                                                                        MAL010G
*                                                                        MAL010G
*           FLAG PULSE CH=X,ABT Z                                        MAL010G
*                                                                        MAL010G
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT.              MAL010G
*                                                                        MAL010G
*         EXIT  - COM31 - IF ERROR FOUND BY FIND ROUTINE.                MAL010G
*                 COM30 - IF ERROR FOUND IN STATEMENT.                   MAL010G
*                 P9C4  - IF NO ERRORS FOUND.                            MAL010G
*                                                                        MAL010G
*         ROUTINES CALLED - CSTOREB- STORE GENERATED PPU BINARY.         MAL010G
*                           FIND   - FIND THE NEXT DATA ITEM.            MAL010G
*                                                                        MAL010G
*         DATA AREAS USED - CRKBUF - WORD STRING OF SOURCE STATEMENT.    MAL010G
*                                                                        MAL010G
*         USES   A - 1, 3, 6.                                            MAL010G
*                X - 0, 1, 6.                                            MAL010G
*                B - 7.                                                  MAL010G
*                                                                        MAL010G
 FMDFLAG  SA1    DPULSE                                                  MAL010G
          BX1    X1-X3                                                   MAL010G
          NZ     X1,COM30    ERROR EXIT IF NOT PULSE                     MAL010G
          SA3    A3+B1       GET NEXT DATA ITEM                          MAL010G
          SA1    DCHANNEL                                                MAL010G
          BX1    X1-X3                                                   MAL010G
          ZR     X1,FLAG1    IF DATA ITEM IS CHANNEL                     MAL010G
          SA1    A1+B1                                                   MAL010G
          BX1    X1-X3                                                   MAL010G
          NZ     X1,COM30    ERROR EXIT IF NOT CH OR CHANNEL             MAL010G
 FLAG1    SA3    A3+B1       GET NEXT DATA ITEM                          MAL010G
          SX1    X3-1R=                                                  MAL010G
          NZ     X1,COM30    ERROR EXIT IF NOT = SIGN                    MAL010G
          SX6    A3+B1                                                   MAL010G
          SA6    PCRK        UPDATE POINTER INTO CRKBUF                  MAL010G
          SA1    OUTB        CONTROL WORD FOR X                          MAL010G
          RJ     FIND                                                    MAL010G
          NG     B2,COM31    ERROR EXIT IF NOT FOUND                     MAL010G
          RJ     CLOAD                                                   MAL010G
          SX1    STD+PA                                                  MAL010G
          LX0    12                                                      MAL010G
          BX0    X0+X1                                                   MAL010G
          RJ     CSTOREB     SAVE GENERATED BINARY                       MAL010G
          SB7    FLAGFMD     ENTRY POINT FOR FLAG SUBROUTINE             MAL010G
          EQ     P9C4        ENTER COMMON ABT PROCESSOR                  MAL010G
          EJECT                                                          MAL010G
 FMDPT    TITLE  FMDPT - PROCESS THE FMDPT STATEMENT.                    MAL010G
**        FMDPT - PROCESS THE FMDPT STATEMENT.                           MAL010G
*                                                                        MAL010G
*         G. L. GOLDEN.  78/08/08.                                       MAL010G
*                                                                        MAL010G
*         FMDPT - PROCESS THE FMDPT STATEMENT. FORMAT                    MAL010G
*                 AS FOLLOWS.                                            MAL010G
*                                                                        MAL010G
*                                                                        MAL010G
*           FMDPT X Y ,ABT Z                                             MAL010G
*                                                                        MAL010G
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT.              MAL010G
*                                                                        MAL010G
*         EXIT  - COM31 - IF ERROR FOUND BY FIND ROUTINE.                MAL010G
*                 COM30 - IF ERROR FOUND IN STATEMENT.                   MAL010G
*                 P9C4  - IF NO ERRORS FOUND.                            MAL010G
*                                                                        MAL010G
*         ROUTINES CALLED - CSTOREB- STORE GENERATED PPU BINARY.         MAL010G
*                           FIND   - FIND THE NEXT DATA ITEM.            MAL010G
*                                                                        MAL010G
*         DATA AREAS USED - CRKBUF - WORD STRING OF SOURCE STATEMENT.    MAL010G
*                                                                        MAL010G
*         USES   A - 1.                                                  MAL010G
*                                                                        MAL010G
*                                                                        MAL010G
 FMDPT    SA1    FMDPTA      CONTROL WORD FOR X                          MAL010G
          RJ     FIND                                                    MAL010G
          NG     B2,COM31    ERROR EXIT IF NOT FOUND                     MAL010G
          SX0    B3+LDN                                                  MAL010G
          SX1    STD+PA+55B                                              MAL010G
          LX0    12                                                      MAL010G
          BX0    X0+X1                                                   MAL010G
          RJ     CSTOREB                                                 MAL010G
          SA1    FMDPTA                                                  MAL010G
          RJ     FIND                                                    MAL010G
          NG     B2,COM31    ERROR EXIT IF NOT FOUND                     MAL010G
          SX0    B3+LDN                                                  MAL010G
          SX1    STD+PA+56B                                              MAL010G
          LX0    12                                                      MAL010G
          BX0    X0+X1                                                   MAL010G
          RJ     CSTOREB     SAVE GENERATED BINARY                       MAL010G
          SB7    PTFMD       ENTRY POINT FOR FLAG SUBROUTINE             MAL010G
          EQ     P9C4        ENTER COMMON ABT PROCESSOR                  MAL010G
                                                                         MAL010G
 FMDPTA   VFD    57/0,3/REG1                                             MAL010G
          EJECT                                                          MAL010G
          EJECT 
 FMDGET   TITLE  FMDGET   - 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. 
* 
 FMDGET   SB7    B0 
          SB6    LFMDG
 FMDG1    SA1    B7+FMDG
          BX1    X1-X3
          ZR     X1,FMDG2    IF KEYWORD FOUND 
          SB7    B7+B1       BUMP POINTER 
          NE     B7,B6,FMDG1 IF LIST NOT EXHAUSTED
          EQ     COM30       ERROR EXIT IF KEYWORD NOT FOUND
  
 FMDG2    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,FMDG4 
          MX0    0
          SA1    DSEC        DISPLAY CODE SEC 
          BX1    X1-X3
          ZR     X1,FMDG3 
          SA1    A1+B1       DISPLAY CODE SECTOR
          BX1    X1-X3
          NZ     X1,COM30    ERROR EXIT IF NOT SEC OR SECTOR
 FMDG3    SA3    A3+B1
          SX6    A3 
          SA6    PCRK 
          SA1    FMDGA
          RJ     FIND 
          NG     B2,COM31    ERRORS EXIT IF NOT IN RANGE
          RJ     CLOAD
 FMDG4    SX1    STD+PA+1 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     STORE GENERATED CODE 
          SB7    GETFMD      ENTRY POINT FOR GET
          EQ     P9C4        ENTER COMMON SEQUENCE
  
 FMDG     VFD    60/6LSERIAL   GET KEYWORDS 
          VFD    60/7LFACTORY 
          VFD    60/7LUTILITY 
 LFMDG    EQU    *-FMDG 
  
 FMDGA    VFD    42/0,12/31B,3/0,3/REG1    CONTROL WORD FOR X            MAL010G
          EJECT 
 FMDOUT   TITLE  FMDOUT - PROCESS THE FMD OUT STATEMENT.
**        FMDOUT - PROCESS THE FMD OUT STATEMENT. 
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDOUT - PROCESS THE FMD MARGINS OUT. FORMAT
* 
*           OUT CHANNEL=A B C,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 - 7. 
* 
 FMDOUT   SA1    DCHANNEL 
          BX1    X3-X1
          ZR     X1,OUT1
          SX1    2RCH 
          LX1    59-11       POSITION CH INTO UPPER 12 BITS 
          BX1    X1-X3
          NZ     X1,COM30    ERROR EXIT IF NOT CH OR CHANNEL
 OUT1     SA3    A3+B1
          SX1    X3-1R= 
          NZ     X1,COM30    ERROR EXIT IF NO = SIGN
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK 
  
          SA1    OUTB 
          RJ     FIND 
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          RJ     CLOAD
          BX6    X2 
          SA6    OUTC        SAVE OUT COMMAND CHANNEL NUMBER
          SX1    STD+PA 
          LX0    12 
          BX0    X0+X1       CODE  LDD A, STD PA
          RJ     CSTOREB
  
          SA1    OUTA        CONTROL WORD FOR B + C 
          RJ     FIND 
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          RJ     CLOAD
          SA1    OUTC        GET OUT COMMAND CHANNEL NUMBER 
          SX1    X1-1 
          NZ     X1,OUT2     IF NOT CHANNEL 1 
          SX0    SCN+60B
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     OUT3 
  
 OUT2     SX1    X1+1-5 
          NZ     X1,OUT2A    IF NOT CHANNEL 5 
          SX1    SCN+10B
          LX0    12 
          BX0    X0+X1       CLEAR WRITE BIT ON OUT IF CH=5 
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     OUT3 
  
 OUT2A    SX1    X1+5-9 
          ZR     X1,COM30    ERROR EXIT IF CHANNEL 9
          SX1    X1+9-10
          ZR     X1,COM30    ERROR EXIT IF CHANNEL 10D
 OUT3     SX0    STD+PA+1 
          RJ     CSTOREB
  
          SA1    OUTA        CONTROL WORD FOR B + C 
          RJ     FIND 
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          RJ     CLOAD
          SA1    OUTC 
          SX1    X1-1 
          NZ     X1,OUT4     IF NOT CHANNEL 1 ON OUT COMMAND
          SX0    LPC
          SX1    100B 
          LX0    12 
          BX0    X0+X1       FORM LPC 100B
          LX0    12 
          SX1    ADM
          BX0    X0+X1
          LX0    12 
          SA1    TBUF3       GET FIRST WORD OF SB 
          BX1    -X5*X1      CLEAR GARBAGE
          SX1    X1+63B      FORM ADDRESS OF SB+63B 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
 OUT4     SX0    STD+PA+2    FORM  STD PA+2 
          RJ     CSTOREB
          SB7    OUTFMD      ENTRY POINT FOR OUT COMMAND
          EQ     P9C4        ENTER COMMON ABT PROCESSING
  
 OUTA     VFD    42/0,12/377B,3/0,3/REG2   CONTROL WORD FOR B AND C 
 OUTB     VFD    42/0,12/16B,3/0,3/0       CONTROL WORD FOR A 
 OUTC     DATA   0           DATA FOR CHANNEL NUMBER ON OUT COMMAND 
          EJECT 
 FMDMARG  TITLE  FMDMARG - PROCESS THE FMD MARGINS STATEMENT. 
**        FMDMARG - PROCESS THE FMD MARGINS STATEMENT.
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDMARG - 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. 
* 
 FMDMARG  SA1    FMDMA       ENTRY POINT FOR DIAGRD 
          RJ     FIND        GET W IF SPECIFIED 
          NG     B2,FMDM1    IF NOT FOUND - NOT A REGISTER
          RJ     CLOAD
          EQ     FMDM6
  
 FMDM1    SB7    B0          CLEAR COUNTER
          SB6    LFMDMB      SET LENGTH 
 FMDM2    SA1    B7+FMDMB 
          BX1    X1-X3
          ZR     X1,FMDM3    IF KEYWORD FOUND 
          SB7    B7+B1       BUMP POINTER 
          NE     B7,B6,FMDM2 IF NOT END OF TABLE
          EQ     COM30       ERROR EXIT IF KEYWORD NOT FOUND
  
 FMDM3    SB5    B7          SET OFFSET VALUE 
          SB7    B0          CLEAR COUNTER
          SB6    LFMDMC 
          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
 FMDM4    SA1    B7+FMDMC 
          BX1    X1-X3
          ZR     X1,FMDM5    IF KEYWORD FOUND 
          SB7    B7+B1       BUMP POINTER 
          SB5    B5+10B      BUMP STROBES 
          NE     B7,B6,FMDM4 IF NOT END OF LIST 
          EQ     COM30       ERROR EXIT IF KEYWORD NOT FOUND
  
 FMDM5    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 
 FMDM6    SX1    STD+PA 
          LX0    12 
          BX0    X0+X1       CODE = LDN VALUE   STD PA
          RJ     CSTOREB
          SB7    MARGFMD     ENTRY POINT FOR MARGINS
          EQ     P9C4        ENTER COMMON ABT SEQUENCE
  
 FMDMA    VFD    57/0,3/REG2 CONTROL WORD FOR W 
  
 FMDMB    VFD    60/6LNORMAL KEYWORDS FOR X 
          VFD    60/3LFWD 
          VFD    60/3LREV 
 LFMDMB   EQU    *-FMDMB
  
 FMDMC    VFD    60/6LNORMAL KEYWORDS FOR Y 
          VFD    60/5LEARLY 
          VFD    60/4LLATE
 LFMDMC   EQU    *-FMDMC
          EJECT 
 FMDREAD  TITLE  FMDREAD - PROCESS THE FMD READD STATEMENT. 
**        FMDREAD - PROCESS THE FMD READ STATEMENT. 
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDREAD - 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. 
* 
 FMDREAD  SB7    RDWRFMD     ENTRY POINT FOR READ 
          SX0    4           READ FUNCTION
          EQ     P9C         ENTER COMMON SEQUENCE
          EJECT 
 FMDRDCB  TITLE  FMDRDCB - PROCESS THE FMD READCB STATEMENT.
**        FMDRDCB - PROCESS THE FMD READCB STATEMENT. 
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDRDCB - 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. 
* 
 FMDRDCB  SB7    DRWFMD      ENTRY POINT FOR READCB 
          SX0    LDN+43B
          SX1    STD+PA 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     P9C4        ENTER COMMON ABT SEQUENCE
          EJECT 
 FMDRDCW  TITLE  FMDRDCW - PROCESS THE FMD READCW STATEMENT.
**        FMDRDCW - 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. 
* 
 FMDRDCW  SB7    RDWRFMD     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    P9CA 
          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     P9C1        ENTER COMMON SEQUENCE
          EJECT 
 FMDREL   TITLE  FMDREL  - PROCESS THE FMD RELD STATEMENT.
**        FMDREL - PROCESS THE FMD REL STATEMENT. 
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDREL  - 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. 
* 
 FMDREL   SB7    RELFMD      ENTRY POINT FOR REL
          EQ     P9C4        ENTER COMMON ABT SEQUENCE
          EJECT 
 FMDRES   TITLE  FMDRES  - PROCESS THE FMD RES STATEMENT. 
**        FMDRES - PROCESS THE FMD RES STATEMENT. 
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDRES  - PROCESS THE FMD RES STATEMENT. FORMATS ARE; 
* 
*           RES CONTROLLER, ABT Z 
*           RES DRIVE, ABT Z
*           RES DRIVE FAULT, ABT Z                                       MAL010G
* 
*         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. 
* 
 FMDRES   SA1    FMDRA       ENTRY POINT FOR RES
          SA2    FMDRB
          BX1    X1-X3
          SB7    B0 
          ZR     X1,FMDR     IF RES CONTROLLER
          BX2    X2-X3
          SB7    B1 
          NZ     X2,COM30    ERROR EXIT IF NOT DRIVE OR CONTROLLER
          SA2    A3+B1                                                   MAL010G
          SA1    FMDRC       GET DISPLAY CODE FOR FAULT                  MAL010G
          BX1    X1-X2                                                   MAL010G
          NZ     X1,FMDR     IF NOT FAULT                                MAL010G
          SX0    LDC                                                     MAL010G
          LX0    12                                                      MAL010G
          SX1    2000B       DATA FOR RES DRIVE AND DONT CLEAR FAULTS    MAL010G
          BX0    X0+X1                                                   MAL010G
          SA3    A3+B1                                                   MAL010G
          SX6    A3                                                      MAL010G
          SA6    PCRK        UPDATE PCRK POINTER TO CRKBUF               MAL010G
          EQ     FMDR1                                                   MAL010G
 FMDR     SX0    LDN+B7 
 FMDR1    SX1    STD+PA                                                  MAL010G
          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    RESFMD      ENTRY POINT FOR RES
          EQ     P9C4        ENTER COMMON ABT SEQUENCE
  
 FMDRA    VFD    60/10LCONTROLLER 
 FMDRB    VFD    60/5LDRIVE 
 FMDRC    VFD    60/5LFAULT                                              MAL010G
          EJECT 
 FMDRSET  TITLE  FMDRSET - PROCESS THE FMD RESET STATEMENT. 
**        FMDRSET - PROCESS THE FMD RESET STATEMENT.
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDRSET - 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. 
* 
 FMDRSET  SB7    RSETFMD     ENTRY POINT FOR RESET
          EQ     P9C4        ENTER COMMON ABT PROCESSOR CODE
          EJECT 
 FMDRTN   TITLE  FMDRTN  - PROCESS THE FMD RTNADDR STATEMENT. 
**        FMDRTN - PROCESS THE FMD RTNADDR STATEMENT. 
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDRTN  - 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. 
* 
 FMDRTN   SB7    RTNFMD      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     P9C4        ENTER COMMON SEQUENCE
  
 FMDRTNA  VFD    54/0,3/BUF4,3/0       CONTROL WORD FOR Y 
          EJECT 
 FMDSEEK  TITLE  FMDSEEK - PROCESS THE FMD SEEK STATEMENT.
**        FMDSEEK - PROCESS THE FMD SEEK STATEMENT. 
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDRTN  - 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)
*                P9C2 = COMMON COMPILER CODE TO PROCESS SEEK STATEMENT. 
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  NONE.
* 
*         USES   A - NONE.
*                X - NONE.
*                B - 7. 
* 
 FMDSEEK  SB7    SEEKFMD     ENTRY POINT FOR SEEK 
          EQ     P9C2        ENTER COMMON SEQUENCE
          EJECT 
 FMDSHRD  TITLE  FMDSHRD - PROCESS THE FMD SHORTRD STATEMENT. 
**        FMDSHRD - PROCESS THE FMD SHORTRD STATEMENT.
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDSHRD - 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)
*                P9C2 = COMMON COMPILER CODE TO PROCESS STATEMENT.
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  NONE.
* 
*         USES   A - NONE.
*                X - NONE.
*                B - 7. 
* 
 FMDSHRD  SB7    SHRDFMD     ENTRY POINT FOR SHORTRD
          EQ     P9C2        ENTER COMMON COMPILER CODE 
          EJECT 
 FMDST1   TITLE  FMDST1 - PROCESS THE FMDHT STATUS STATEMENT. 
**        FMDST1 - PROCESS THE FMDHT STATUS STATEMENT.
* 
*         G. L. GOLDEN. 77/11/30. 
* 
*         FMDST1 - PROCESS THE FMDHT STATUS STATEMENT. FORMAT IS; 
* 
*           STATUS GENERAL, ABT Z 
*           STATUS DETAIL, ABT Z
*           STATUS CHANNEL, ABT Z 
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT - (B7) = STATFMD (ADDRESS OF STATUS ROUTINE IN DRIVER) 
*                P9C4 = COMMON CODE TO PROCESS REST OF STATEMENT. 
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  NONE.
* 
*         USES   A - NONE.
*                X - NONE.
*                B - 7. 
* 
 FMDST1   SB7    B0          CLEAR POINTER
          SB6    LFMDS1 
 FMDS11   SA1    FMDS1+B7 
          BX1    X1-X3
          ZR     X1,FMDS12    IF KEYWORD FOUND
          SB7    B7+B1       BUMP POINTER 
          NE     B7,B6,FMDS11 IF END OF LIST NOT FOUND
          EQ     COM30       ERROR EXIT IF NOT FOUND
  
 FMDS12   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    STATFMD     ENTRY POINT FOR STATUS 
          EQ     P9C4        ENTER COMMON SEQUENCE
  
 FMDS1    VFD    60/7LGENERAL 
          VFD    60/6LDETAIL
          VFD    60/7LCHANNEL 
 LFMDS1   EQU    *-FMDS1
          EJECT 
 FMDVER   TITLE  PROCESS THE FMD VERIFY STATEMENT.
**        FMDVER - PROCESS THE FMD VERIFY STATEMENT.
* 
*         G. L. GOLDEN  77/11/30. 
* 
*         FMDVER - 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. 
*                 P9C  = COMMON CODE TO PROCESS REST OF STATEMENT.
* 
*         ROUTINES CALLED - NONE. 
* 
*         DATA AREAS USED - NONE. 
* 
*         USES   A - NONE.
*                X - NONE.
*                B - 7. 
* 
 FMDVER   SB7    RDWRFMD
          SX0    6+40B       VERIFY FUNCTION PLUS WRITE FLAG
          EQ     P9C         ENTER COMMON SEQUENCE
          EJECT 
 FMDWR    TITLE FMDWR - PROCESS THE FMD WRITE STATEMENT.
**        FMDWR - PROCESS THE FMD WRITE STATEMENT.
* 
*         G. L. GOLDEN  77/11/30. 
* 
*         FMDWR - 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. 
*                 P9C  = COMMON CODE TO PROCESS REST OF STATEMENT.
* 
*         ROUTINES CALLED - NONE. 
* 
*         DATA AREAS USED - NONE. 
* 
*         USES    A - NONE. 
*                 X - 0.
*                 B - 7.
* 
 FMDWR    SB7     RDWRFMD     ENTRY POINT IN DRIVER FOR WRITE 
          SX0     5+40B       WRITE FUNCTION PLUS WRITE BIT 
          EQ      P9C         ENTER COMMON CODE TO PROCESS STATEMENT. 
          EJECT 
