*COMDECK,MALETPH
          EJECT 
          QUAL   MALETPH
          IFNE   CMSE,0,1 
          USE    MODD 
          VFD    30/1,6/KEYFMD2,6/KEY2,18/0   CW FOR DEMA3 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 (DEMA3)
          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 (DEMA3)
          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 (DEMA3)
          USE    *
          IFNE   CMSE,0,1 
          USE    P0SBFWA
          DATA   6612B             RELATIVE FWA OF SB 
          USE    *
  
*         DEMA3 FULL TRACK ENTRY POINTS.
  
 RELFMD2  EQU    0
 RESFMD2  EQU    1
 DRWFMD2  EQU    2
 RDWRFMD2 EQU    4
 RSETFMD2 EQU    5
 SEEKFMD2 EQU    6
 STATFMD2 EQU    7
 LSPFMD2  EQU    10B
 SHRDFMD2 EQU    11B
  
          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 DEMA3 
  
 TFMD2    VFD    42/6LDIAGRD,18/FMDDRD2 
          VFD    42/6LDIAGWR,18/FMDDWR2 
          VFD    42/3LLSP,18/FMDLSP2
          VFD    42/4LREAD,18/FMDREAD2
          VFD    42/5LRDESM,18/FMDRESM2 
          VFD    42/3LREL,18/FMDREL2
          VFD    42/3LRES,18/FMDRES2
          VFD    42/5LRESET,18/FMDRSET2 
          VFD    42/4LSEEK,18/FMDSEEK2
          VFD    42/7LSHORTRD,18/FMDSHRD2 
          VFD    42/6LSTATUS,18/FMDST2
          VFD    42/6LVERIFY,18/FMDVER2 
          VFD    42/6LVERESM,18/FMDVESM2
          VFD    42/5LWRITE,18/FMDWR2 
          VFD    42/6LWRTESM,18/FMDWESM2
 LFMD2    EQU    *-TFMD2
  
*         CONSTANTS USED BY DEMA3 
  
 DSEC     VFD    60/3LSEC 
          VFD    60/6LSECTOR
 DESM     VFD    60/3LESM 
 DLSP     VFD    60/3LLSP 
 DECHO    VFD    60/4LECHO
          EJECT 
 FMDDRD2  TITLE  FMDDRD2 - PROCESS THE DEMA3 DIAGRD STATEMENT.
**        FMDDRD2 - PROCESS THE DEMA3 DIAGRD STATEMENT. 
* 
*         G.L.GOLDEN  81/09/23. 
* 
*         FMDDRD2 - PROCESS THE DEMA3 DIAGNOSTIC STATEMENT. FORMATS 
*                   ARE;
* 
*           DIAGRD, ABT Z 
*           DIAGRD FROM ESM, ABT Z
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT  -  PAC4   IF NO ERRORS FOUND
* 
*         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 
          SA1    DFROM
          BX1    X1-X3
          NZ     X1,FMDDR1
          SA3    A3+B1
          SA1    DESM 
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT ESM 
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          SX0    LDN+72B     LDN 72B FOR READ ESM 
          EQ     FMDDR2 
  
 FMDDR1   SX0    LDN+70B     DIAGNOSTIC READ FUNCTION 
 FMDDR2   SX1    STD+PA 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     PAC4        ENTER COMMON CODE
  
          EJECT 
 PAC      TITLE  PAC - DEMA3 COMMON CODE PROCESSOR. 
**        PAC    COMMON CODE PROCESSOR. 
* 
*         G.L.GOLDEN  81/09/23. 
* 
*         ENTRY -CRKBUF CONTAINS REMAINDER OF DATA TO CRACK.
*                PCRK   POINTS TO NEXT ITEM IN CRKBUF.
*                (B7)   CONTAINS ENTRY POINT INDEX. 
* 
*         EXIT  -COM10 IF NO ERRORS 
*                COM30 IF SYNTAX ERROR
*                COM31 IF SYNTAX ERROR DURING FIND
* 
*         ROUTINES CALLED - FIND - FIND NEXT ITEM FROM CRKBUF 
*                           CABSPPU - FORM ABSOLUTE ADDRESS 
*                           CSTOREB - SAVE GENERATED BINARY 
*                           CPSN    - PROCESS STATEMENT NUMBER
* 
*         DATA AREAS USED - CRKBUF - WORD STRING OF SOURCE STATEMENT
* 
*         USES   A - 1, 3, 6, 7.
*                X - 0, 1, 3, 6, 7. 
*                B - 6, 7.
* 
  
**        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 
 PACA0    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     SX7    B7 
          SA7    PACB 
          SA1    DABT 
          BX1    X3-X1
          NZ     X1,COM30    ERROR EXIT IF NEXT ITEM IS NOT ABT 
          SA1    PACD 
          BX0    X1 
          RJ     CABSPPU
          RJ     CSTOREB     SAVE GENERATED CODE
          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    PACB 
          LX1    6           POSITION INDEX CODE
          SX0    2000B       SET BIAS FOR DEMA
          BX0    X0+X1
          LX0    12          POSITION COMMAND INDEX 
          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/0,12/0,12/RJM,12/POVL+14B
 PACE     VFD    60/3LCYL              KEYWORDS IN ORDER EXPECTED 
          VFD    60/3LTRK 
          VFD    60/3LSEC 
          EJECT 
 FMDDWR2  TITLE  FMDDWR2 - PROCESS THE DEMA3 DIAGWR STATEMENT.
**        FMDDWR2 - PROCESS THE DEMA3 DIAGWR STATEMENT. 
* 
*         G.L.GOLDEN  81/09/23. 
* 
*         FMDDWR2 - PROCESS THE DEMA3 DIAGNOSTIC WRITE STATEMENT. FORMAT; 
* 
*           DIAGWR, ABT Z 
*           DIAGWR TO ESM, ABT Z
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT  -  PAC4   IF NO ERRORS FOUND
* 
*         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. 
* 
 FMDDWR2  SB7    DRWFMD2     ENTRY POINT FOR DIAGRD 
          SA1    DTO
          BX1    X1-X3
          NZ     X1,FMDDW1
          SA3    A3+B1
          SA1    DESM 
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT TO ESM
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          SX0    LDN+73B     LDN 73B FOR WRITE ESM
          EQ     FMDDW2 
  
 FMDDW1   SX0    LDN+71B     DIAGNOSTIC WRITE FUNCTION
 FMDDW2   SX1    STD+PA 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     PAC4        ENTER COMMON ABT PROCESSOR 
          EJECT 
 FMDLSP2  TITLE  FMDLSP2  - PROCESS THE DEMA3 LSP STATEMENT.
**        FMDLSP2 - PROCESS THE DEMA3 LSP STATEMENT.
* 
*         M.S.FABBRINI  82/03/23. 
* 
*         FMDLSP2 - PROCESS THE DEMA3 LSP STATEMENT. FORMAT IS; 
* 
*           LSP ECHO, ABT Z 
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT  -  COM30  IF SYNTAX ERROR 
*                  PAC4   IF NO ERRORS FOUND
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
* 
*         USES   A - 1, 3.
*                X - 1, 3.
*                B - 7. 
* 
 FMDLSP2  SB7    LSPFMD2     ENTRY POINT FOR LSP
          SA1    DECHO       DISPLAY CODE FOR ECHO
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT ECHO
          SA3    A3+B1       NEXT ITEM FROM CRKBUF
          EQ     PAC4        ENTER COMMON ABT PROCESSOR CODE
          EJECT 
 FMDREAD2 TITLE  FMDREAD2 - PROCESS THE DEMA3 READ STATEMENT. 
**        FMDREAD2 - PROCESS THE DEMA3 READ STATEMENT.
* 
*         G.L.GOLDEN  81/09/23. 
* 
*         FMDREAD2 - PROCESS THE DEMA3 READ STATEMENT. FORMAT;
* 
*           READ ONE SECTOR AT CYL W TRK X SEC Y, ABT Z 
*           READ ONE CODED SECTOR AT CYL W TRK X SEC Y, ABT Z 
*           READ TO ESM V SECTORS AT CYL W TRK X SEC Y, ABT Z 
*           READ TO ESM V CODED SECTORS AT CYL W TRK X SEC Y, ABT Z 
*           RDESM V SEC AT CYL W TRK X SEC Y, ABT Z 
*           RDESM V C SEC AT CYL W TRK X SEC Y, ABT Z 
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT   - COM30  IF SYNTAX ERROR 
*                  PACA0  IF NO ERRORS FOUND
* 
*         ROUTINES CALLED     NONE. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3, 6. 
*                X - 0, 1, 2, 3, 6. 
*                B - 7. 
* 
 FMDREAD2 SB7    RDWRFMD2    ENTRY POINT FOR READ 
          SX0    LDN+4       READ FUNCTION
          SA1    DTO
          BX1    X1-X3
          NZ     X1,FMDRD1   IF NOT (TO)
          SA3    A3+B1
          SA1    DESM 
          BX1    X1-X3
          NZ     X1,COM30    IF NOT ESM SYNTAX ERROR
          SA3    A3+B1
 FMDRESM2 SB7    RDWRFMD2 
          SX0    14B         FLAG ESM READ
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          EQ     PAC         ENTER COMMON SEQUENCE
  
 FMDRD1   SA1    DONE 
          BX1    X1-X3
          NZ     X1,COM30    IF NOT DISPLAY CODE (ONE)
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO PCRK 
          SX2    LDN+15B
          SX0    LDN+1
          SX1    STD+15B
          LX0    12 
          BX0    X0+X1       FORM LDN 1   STD 1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SX0    LDN+4       CODE FOR READ
          EQ     PACA0       ENTER COMMON SEQUENCE
  
 DONE     VFD    60/3LONE 
 DFROM    VFD    60/4LFROM
 DTO      VFD    60/2LTO
          EJECT 
 FMDREL2  TITLE  FMDREL2 - PROCESS THE DEMA3 REL STATEMENT. 
**        FMDREL2 - PROCESS THE DEMA3 REL STATEMENT.
* 
*         G.L.GOLDEN  81/09/23. 
* 
*         FMDREL2 - PROCESS THE DEMA3 REL STATEMENT. FORMAT IS
* 
*           REL, ABT Z
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT  -  PAC4   IF NO ERRORS FOUND
* 
*         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 DEMA3 RES STATEMENT. 
**        FMDRES2 - PROCESS THE DEMA3 RES STATEMENT.
* 
*         G.L.GOLDEN  81/09/23. 
* 
*         FMDRES2 - PROCESS THE DEMA3 RES STATEMENT. FORMATS ARE; 
* 
*           RES CONTROLLER, ABT Z 
*           RES DRIVE, ABT Z
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT   - COM30  IF SYNTAX ERROR 
*                  PAC4   IF NO ERRORS FOUND
* 
*         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 DEMA3 RESET STATEMENT.
**        FMDRSET2 - PROCESS THE DEMA3 RESET STATEMENT. 
* 
*         G.L.GOLDEN  81/09/23. 
* 
*         FMDRSET2 - PROCESS THE DEMA3 RESET STATEMENT. FORMATS ARE;
* 
*           RESET, ABT Z
*           RESET LSP, ABT Z
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT  -  PAC4   IF NO ERRORS FOUND
* 
*         ROUTINES CALLED -  CSTOREB- STORE GENERATED CODE. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3.
*                X - 0, 1, 3. 
*                B - 7. 
* 
 FMDRSET2 SB7    RSETFMD2    ENTRY POINT FOR RESET
          SX0    LDN+0       RESET CODE = 0 
          SA1    DLSP        DISPLAY CODE LSP 
          BX1    X1-X3
          NZ     X1,FMDRS1   IF RESET 
          SA3    A3+B1       NEXT ITEM FROM CRKBUF
          SX0    LDN+1       RESET CODE = 1 
 FMDRS1   LX0    12 
          SX1    STD+PA 
          BX0    X0+X1       CODE = LDN 0/1  STD PA 
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     PAC4        ENTER COMMON ABT PROCESSOR CODE
          EJECT 
 FMDSEEK2 TITLE  FMDSEEK2 - PROCESS THE DEMA3 SEEK STATEMENT. 
**        FMDSEEK2 - PROCESS THE DEMA3 SEEK STATEMENT.
* 
*         G.L.GOLDEN  81/09/23. 
* 
*         FMDSEEK2 - PROCESS THE DEMA3 SEEK STATEMENT. FORMAT IS; 
* 
*           SEEK CYL W TRK X SEC Y, ABT Z 
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT - (B7) = SEEKFMD (INDEX 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 DEMA3 SHORTRD STATEMENT.
**        FMDSHRD2 - PROCESS THE DEMA3 SHORTRD STATEMENT. 
* 
*         M.S.FABBRINI  82/03/23. 
* 
*         FMDSHRD2 - PROCESS THE DEMA3 SHORTRD STATEMENT. FORMAT IS;
* 
*           SHORTRD CYL W TRK X SEC Y, ABT Z
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT  - PAC2 = IF NO ERRORS FOUND 
*                 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 DEMA3 STATUS STATEMENT.
**        FMDST2 - PROCESS THE DEMA3 STATUS STATEMENT.
* 
*         G.L.GOLDEN  81/09/23. 
* 
*         FMDST2 - PROCESS THE DEMA3 STATUS STATEMENT. FORMAT IS; 
* 
*           STATUS GENERAL, ABT Z 
*           STATUS DETAIL, ABT Z
*           STATUS ESM LSP, ABT Z 
*           STATUS GENERAL EXTENDED, ABT Z
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT - (B7) = STATFMD (INDEX OF STATUS ROUTINE IN DRIVER) 
*                PAC4 = COMMON CODE TO PROCESS REST OF STATEMENT. 
* 
*         ROUTINES CALLED -  CSTOREB- STORE GENERATED PPU BINARY. 
* 
*         DATA AREAS USED -  NONE.
* 
*         USES   A - 1, 3, 6. 
*                X - 0, 1, 3, 6.
*                B - 7. 
* 
 FMDST2   SB7    B0          CLEAR POINTER
          SA1    DGEN 
          BX1    X1-X3
          NZ     X1,FMDS23   IF KEYWORD FOUND 
          SA3    A3+B1
          SA1    DEXT 
          BX1    X1-X3
          NZ     X1,FMDS22   IF NOT EXTENDED
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO PCRK 
          SB7    2           INDEX TO GENERAL EXTENDED
          EQ     FMDS2X      ENTER COMMON SEQUENCE
  
 FMDS22   SA3    A3-1 
          EQ     FMDS2X      ENTER COMMON SEQUENCE
  
 FMDS23   SA1    DDET 
          BX1    X1-X3
          NZ     X1,FMDS24   IF NOT DETAIL
          SB7    B1          INDEX TO DETAIL STATUS = 1 
          EQ     FMDS2X      ENTER COMMON SEQUENCE
  
 FMDS24   SA1    DESM 
          BX1    X1-X3
          NZ     X1,COM30    IF NOT ESM SYNTAX ERROR
          SB7    3           INDEX FOR ESM STATUS = 3 
          SA1    DLSP 
          SA3    A3+B1
          BX1    X1-X3
          NZ     X1,COM30    SYNTAX ERROR IF NOT LSP
  
 FMDS2X   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
  
 DGEN     VFD    60/7LGENERAL 
 DDET     VFD    60/6LDETAIL
 DEXT     VFD    60/8LEXTENDED
          EJECT 
 FMDVER2  TITLE  FMDVER2 - PROCESS THE DEMA3 VERIFY STATEMENT.
**        FMDVER2 - PROCESS THE DEMA3 VERIFY STATEMENT. 
* 
*         G.L.GOLDEN  81/09/23. 
* 
*         FMDVER2 - PROCESS THE DEMA3 VERIFY STATEMENT.  FORMATS ARE; 
* 
*                VERIFY FROM ESM V SECTORS AT CYL W TRK X SEY Y, ABT Z
*                VERIFY FROM ESM V C SEC AT CYL W TRK X SEC Y, ABT Z
*                VERIFY FROM ESM V SECTORS AT CYL W TRK X SEY Y, ABT Z
*                VERIFY FROM ESM V C SEC AT CYL W TRK X SEC Y, ABT Z
*                VERESM V SEC AT CYL W TRK X SEC Y, ABT Z 
*                VERESM V C SEC AT CYL W TRK X SEC Y, ABT Z 
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT  - (B7) = VERFMD (INDEX OF VERIFY ROUTINE IN DRIVER. 
*                 PAC  = COMMON CODE TO PROCESS REST OF STATEMENT.
* 
*         ROUTINES CALLED - NONE. 
* 
*         DATA AREAS USED - NONE. 
* 
*         USES   A - 1, 3, 6. 
*                X - 0, 1, 3, 6.
*                B - 7. 
* 
 FMDVER2  SB7    RDWRFMD2 
          SA1    DFROM
          BX1    X1-X3
          NZ     X1,COM30    IF NOT FROM SYNTAX ERROR 
          SA1    DESM 
          SA3    A3+B1
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT ESM 
          SA3    A3+B1
 FMDVESM2 SB7    RDWRFMD2 
          SX0    56B         VERIFY FUNCTION/WRITE BIT/ESM BIT
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          EQ     PAC         ENTER COMMON SEQUENCE
          EJECT 
 FMDWR2   TITLE FMDWR2 - PROCESS THE DEMA3 WRITE STATEMENT. 
**        FMDWR2 - PROCESS THE DEMA3 WRITE STATEMENT. 
* 
*         G.L.GOLDEN  81/09/23. 
* 
*         FMDWR2 - PROCESS THE DEMA3 WRITE STATEMENT. FORMATS ARE;
* 
*               WRITE ONE SEC AT CYL W TRK X SEC Y, ABT Z 
*               WRITE ONE CODED SECTORS AT CYL W TRK X SEC Y, ABT Z 
*               WRITE FROM ESM V SEC AT CYL W TRK X SEC Y, ABT Z
*               WRITE FROM ESM V C SEC AT CYL W TRK X SEC Y, ABT Z
*               WRTESM V SEC AT CYL W TRK X SEC Y, ABT Z
*               WRTESM V C SEC AT CYL W TRK X SEC Y, ABT Z
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT  - (B7) = RDWRFMD (INDEX 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 - 1, 3, 6. 
*                X - 0, 1, 2, 3, 6. 
*                B - 7. 
* 
 FMDWR2   SB7    RDWRFMD2    ENTRY POINT IN DRIVER FOR WRITE
          SX0    LDN+45B     WRITE FUNCTION PLUS WRITE BIT
          SA1    DFROM
          BX1    X1-X3
          NZ     X1,FMDW1    IF NOT FROM
          SA1    DESM 
          SA3    A3+B1
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT ESM 
          SA3    A3+B1
 FMDWESM2 SB7    RDWRFMD2    ENTRY POINT IN DRIVER FOR ESM WRITE
          SX0    5+40B+10B   VERIFY FUNCTION/WRITE BIT/E SM BIT 
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          EQ     PAC
  
 FMDW1    SA1    DONE 
          BX1    X1-X3
          NZ     X1,COM30    SYNTAX ERROR IF NOT (ONE)
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          SX2    LDN+15B
          SX0    LDN+1
          SX1    STD+15B
          LX0    12 
          BX0    X0+X1       FORM LDN 1   STD 1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SX0    LDN+45B     WRITE FUNCTION PLUS WRITE BIT
          EQ     PACA0       ENTER COMMON SEQUENCE
          EJECT 
