ASMB,R,L,C HED RTE MICRODEBUG EDITOR SUBROUTINE-MDES NAM MDES,7 92061-16005 REV.1926 790416 EXT LURQ,WLOAD,CREAT,CLOSE,WRITF,EXEC,REIO,IFBRK ENT MDES * * ********************************************************* * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. * * * * * * ALL RIGHTS RESERVED. NO PART OF THIS PROGRAM MAY BE * * * PHOTOCOPIED, REPRODUCED, OR TRANSLATED TO ANOTHER * * * PROGRAM LANGUAGE WITHOUT THE PRIOR WRITTEN CONSENT OF * * * HEWLETT-PACKARD COMPANY. * * ********************************************************* * * CALL MDES: * * EXT MDES * . * . * CALL JSB MDES TRANSFER CONTROL TO MDES * DEF RTURN RETURN POINT * DEF LU1 OPERATOR CONSOLE LU(OPT. DEFAULT=1) * DEF LU2 WCS LU(OPTIONAL) * DEF LU3 2ND WCS LU(OPTIONAL) * DEF LU4 3RD WCS LU(OPTIONAL) * DEF ECODE ERROR CODE ADDRESS * RTURN EQU * * . * . * LU1 DEC XX OPERATOR CONSOLE(OPTIONAL) * LU2 DEC XX WCS LU NUMBER(OPTIONAL) * LU3 DEC XX ADDITIONAL WCS LU(OPTIONAL) * LU4 DEC XX ADDITIONAL WCS LU(OPTIONAL) * ECODE OCT 0 ERROR CODE(0=SUCCESSFUL,-1=ABORTED) * * MDES CONTAINS THE ACTUAL MICRODEBUG EDITOR. IT ALLOWS * LOADING AND DUMPING OF BINARY MICRO-OBJECT CODE. * MICROPROGRAMS MAY BE MODIFIED AND/OR DEBUGGED(WHILE * WCS RESIDENT) USING MDES. DVR36 IS REQUIRED. * * THE PROGRAM MAP CONSISTS OF THE FOLLOWING SECTIONS IN * THE ORDER SHOWN: * * INITIALIZATION SECTION * CONTROL SECTION * COMMAND ROUTINES * SUBROUTINES **** * TABLES AND BUFFERS * * * MESSAGES * * * CONSTANTS,LINKS AND STORAGE * **** * **** * * * * * * * * **** HED MDES SUP A EQU 0 B EQU 1 S EQU 1 * * INITIALIZATION SECTION * * 1. SAVES REGISTERS FOR RU COMMAND USE. * 2. GETS PARAMETERS FROM CALLING PROGRAM. * 3. CONFIGURES OPERATOR CONSOLE. * 4. CHECKS PARAMETERS. * 5. SETS MX OR MX-E COMPUTER TYPE FLAG. * 6. BUILDS WCSLT. * 7. LOCKS ANY WCS LU'S IN WCSLT. * CLU NOP ADDRESS OF CONSOLE LU WLU1 NOP ADDRESS OF 1ST WCS LU WLU2 NOP ADDRESS OF 2ND WCS LU WLU3 NOP ADDRESS OF 3RD WCS LU PERR NOP ADDRESS OF ERROR CODE MDES NOP STA A.REG SAVE STB B.REG REGISTERS LIB S UPON STB S.REG ENTRY STX X.REG OF MDES STY Y.REG CLA SOC INA STA O.REG CLA SEZ INA STA E.REG CLA CLEAR STA CLU PARAMETERS STA WLU1 POINTERS STA WLU2 AREA STA WLU3 STA PERR JSB GTPAR GET PARAMETERS DEF CLU FROM CALLING PROGRAM LDA CLU ANY OPERATOR CONSOLE SZA,RSS LU PASSED TO MDES? JMP MDE12 NO.TREAT AS DEFAULT LDA CLU,I DEFAULT THE SZA,RSS OPERATOR CONSOLE LU? SKP MDE12 EQU * LDA B1 YES STA CLU SAVE IT IOR CW01 CONFIGURE CONSOLE STA CW01 INTO CONTROL WORDS AND B77 IOR CW04 STA CW04 LDA CTYPE ALREADY HAVE THE SZA COMPUTER TYPE? JMP MDE11 YES JSB M.OUT NO.ASK DEF HEADR OPERATOR DEF .29 FOR TYPE JSB M.IN GET THE DEF SAVE0 OPERATOR'S DEF .1 RESPONSE LDA SAVE0 GET SINGLE ALF,ALF CHARACTER AND B377 RESPONSE CPA ONE IS IT A 21MX? JMP MDE01 YES CPA TWO NO.IS IT A 21MX E-SERIES? JMP MDE02 YES JMP MDE07 NO.ILLEGAL-ABORT MDES MDE01 EQU * LDA B1 SET MX RSS FLAG MDE02 EQU * LDA B100K SET MX-E FLAG STA CTYPE SAVE TYPE MDE11 EQU * LDA WLU1 DEFAULT SZA,RSS 1ST WCS LU? JMP MDE08 YES.GO ON TO NEXT LDA WLU1,I NO.IS THE 1ST WCS SZA,RSS LU PASSED=0? JMP MDE08 YES.DEFAULT IT JSB CHKLU NO.CHECK 1ST WCS LU JMP MDE08 LU ERROR.DON'T ADD TO WCSLT LDA WLU1,I ADD LU JSB ADDLU TO WCSLT SKP MDE08 EQU * LDA WLU2 DEFAULT SZA,RSS 2ND WCS LU? JMP MDE13 YES.GO ON TO NEXT LDA WLU2,I NO.IS THE 2ND WCS SZA,RSS LU PASSED=0? JMP MDE13 YES.DEFAULT IT JSB CHKLU NO.CHECK 2ND WCS LU JMP MDE13 LU ERROR.DON'T ADD TO WCSLT LDA WLU2,I ADD LU JSB ADDLU TO WCSLT MDE13 EQU * LDA WLU3 DEFAULT SZA,RSS 3RD WCS LU? JMP MDE09 YES.NO MORE WCS LU'S LDA WLU3,I NO.IS THE 3RD WCS SZA,RSS LU PASSED=0? JMP MDE09 YES.DEFAULT IT JSB CHKLU NO.CHECK 3RD WCS LU JMP MDE09 LU ERROR.DON'T ADD TO WCSLT LDA WLU3,I ADD LU JSB ADDLU TO WCSLT MDE09 EQU * JSB LOCK LOCK WCS LU'S IN WCSLT CLA CLEAR STA PERR,I ERROR CODE SKP * CONTROL SECTION * * 1. ISSUES PROMPT. * 2. TAKES INPUT FROM OPERATOR CONSOLE. * 3. DIRECTS COMMAND TO ITS COMMAND ROUTINE. * 4. REPORTS SOME ERRORS. * 5. RETURNS TO CALLING PROGRAM. * MDE03 EQU * JSB M.OUT ISSUE DEF $ PROMPT DEF .1 JSB M.IN TAKE FIRST PNT04 DEF IBUFF COMMAND DEF M.80 INPUT STB COUNT SAVE CHARACTER COUNT LDA B INITIALIZE SUBROUTINES LDB PNT04 "XGET" AND "XGETN" TO JSB XGETI THE INPUT ASCII STRING CLE CHECK INPUT FOR LDB COUNT CORRECT SYNTAX JSB SCAN JMP MDE06 ERROR LDX M1 X=-1 LDB PNT05 POINT TO COMMANDS TABLE MDE04 EQU * CPA B,I LOOK JMP MDE05 UP XAX COMMAND CPA B,I JMP MDE06 COULDN'T FIND THE COMMAND-ERROR XAX ADB .2 JMP MDE04 MDE05 EQU * INB GO TO LDA B,I COMMAND JMP A,I ROUTINE MDE10 EQU * JSB ERROR MDE DEF .2 ERROR 002 JMP MDE03 TRY AGAIN MDE06 EQU * JSB ERROR MDE DEF .5 ERROR 005 JMP MDE03 TRY AGAIN MDE07 EQU * LDA PERR DID CALLING PROGRAM SZA,RSS PASS AN ERROR CODE ADDRESS? JMP EXIT NO.EXIT MDES CCB YES.SET ERROR STB A,I CODE = -1 JMP EXIT RETURN TO CALLING PROGRAM HED COMMAND ROUTINES IN ALPHANUMERIC ORDER SKP * B R E A K * * SETS BREAKPOINTS INTO CONTROL MEMORY. * * $BR [,XXXXX [,YYYYY [,ZZZZZ]]] * * XXXXX,YYYYY & ZZZZZ ARE CONTROL STORE ADDRESSES OF * DESIRED BREAKPOINT LOCATIONS. A MAXIMUM OF 3 * BREAKPOINTS ARE ALLOWED. * BREAK EQU * CLA ADD BREAKPOINTS FLAG BRE10 EQU * STA FLAG1 SAVE FLAG LDA PNT34 INITIAILIZE POINTER TO STA SAVE6 START OF BREAKPOINTS TABLE LDA RTMAC MDE BREAKPOINT SZA,RSS MICROCODE BEEN LOCATED? JMP BRE02 NO.GO REPORT ERROR LDB .3583 SET UPPER JSB CKTYP LIMIT OF LDB UP.XE COMPUTER FOR STB ADRS2 SUBROUTINE "GETLU" CLE GET 1ST JSB GTNUM ADDRESS SZA DEFAULTED? JMP BRE05 NO SZB,RSS YES.PARAMETERS END? JMP BRE11 YES.GO POSSIBLY CLEAR AND DISPLAY JMP BRE04 NO.GO TO NEXT BREAKPOINT BRE05 EQU * SZB,RSS MORE PARAMETERS? JMP BRE01 NO.GO ON TO DO A SINGLE BREAKPOINT STA ADDRS SAVE ADDRESS JSB CKADR CHECK ADDRESS JSB GETLU GET WCS LU # CONTAINING THE ADDRESS JMP E11 COULDN'T FIND ANY JSB READ1 READ MICROINSTRUCTION THERE JMP MDE03 ERROR OCCURRED.TAKE NEXT COMMAND LDA FLAG1 ADD A SZA BREAKPOINT? JMP *+3 NO.CLEAR ONE JSB ADBRK YES.ADD BREAKPOINT TO TABLE RSS SKIP OVER CLEAR JSB CLBRK CLEAR BREAKPOINT FROM TABLE BRE04 EQU * JSB GTNUM GET NEXT ADDRESS SZA DEFAULTED? JMP BRE06 NO SZB,RSS YES.PARAMETERS END? JMP BRE03 YES.GO DISPLAY BREAKPOINTS JMP BRE07 NO.GO TO NEXT BREAKPOINT SKP BRE06 EQU * SZB,RSS MORE PARAMETERS? JMP BRE01 NO.GO ON STA ADDRS SAVE ADDRESS JSB CKADR CHECK ADDRESS JSB GETLU GET WCS LU # CONTAINING THE ADDRESS JMP E11 COULDN'T FIND ANY.ERROR JSB READ1 READ MICROINSTRUCTION THERE JMP MDE03 ERROR OCCURRED.TAKE NEXT COMMAND LDA FLAG1 ADD A SZA BREAKPOINT? JMP *+3 NO.GO CLEAR A BREAKPOINT JSB ADBRK YES.ADD BREAKPOINT TO TABLE RSS SKIP OVER CLEAR JSB CLBRK CLEAR BREAKPOINT BRE07 EQU * JSB GTNUM GET LAST ADDRESS SZB MORE PARAMETERS? JMP MDE10 YES.ILLEGAL SZA,RSS DEFAULTED? JMP BRE03 YES.GO DISPLAY BREAKPOINTS BRE01 EQU * STA ADDRS SAVE ADDRESS JSB CKADR CHECK ADDRESS JSB GETLU GET WCS LU # CONTAINING THE ADDRESS JMP E11 COULDN'T FIND ANY.ERROR JSB READ1 READ MICROINSTRUCTION THERE JMP MDE03 ERROR OCCURRED.TAKE NEXT COMMAND LDA FLAG1 ADD A SZA BREAKPOINT? JMP *+3 NO.CLEAR A BREAKPOINT JSB ADBRK YES.ADD BREAKPOINT TO TABLE RSS SKIP CLEAR BREAKPOINTS JSB CLBRK CLEAR BREAKPOINT BRE03 EQU * LDA ONE INITIALIZE BREAKPOINT STA SAVE6 # AND ADDRESS LDA PNT40 IN OUTPUT LINE STA SAVE5 BUFFER LDA PNT34 INITIALIZE BREAKPOINT STA SAVE4 TABLE POINTER BRE09 EQU * LDA .30 INITIALIZE SUBROUTINE LDB PNT04 "XPUT" FOR 6 CHARACTERS JSB XPUTI TO BUFFER "XBUFF" BRE08 EQU * LDA BLANK FILL OUTPUT JSB XPUT LINE BUFFER RSS WITH BLANKS JMP BRE08 SKP LDA PNT35 MOVE BREAK ADA .2 MESSAGE TO LDB PNT04 OUTPUT LINE MVW .3 BUFFER LDA .6 INITIALIZE SUBROUTINE LDB PNT03 "XPUT" FOR 6 CHARACTERS JSB XPUTI TO BUFFER "XBUFF" LDB SAVE4 GET BREAKPOINT LDA B,I ADDRESS ADB .3 POINT TO STB SAVE4 NEXT ENTRY JSB XOCAS CONVERT BREAKPOINT ADDRESS TO ASCII JSB MBTS MOVE TO OUTPUT DEF OBUFF+5 LINE BUFFER LDB SAVE5 FORM CURRENT LDA SAVE6 BREAKPOINT # STA B,I IN OUTPUT INA LINE BUFFER STA SAVE6 BUMP # TO NEXT BREAKPOINT # JSB M.OUT WRITE BREAKPOINT DEF OBUFF MESSAGE DEF .9 ON CONSOLE LDA SAVE6 GET BREAKPOINT AND B7 NUMBER CPA .4 DONE? JMP MDE03 YES.TAKE NEXT COMMAND JMP BRE09 NO.CONTINUE BRE11 EQU * LDA FLAG1 NEED TO CLEAR SZA,RSS ALL BREAKPOINTS? JMP BRE03 NO.GO DISPLAY CURRENT BREAKPOINTS LDB PNT34 YES.INITIALIZE A POINTER STB SAVE6 TO THE BREAKPOINT TABLE LDA B,I START CLEAR WITH STA ADDRS FIRST ENTRY SZA,RSS IS THERE AN ENTRY? JMP BRE12 NO.SKIP TO NEXT ONE JSB GETLU GET WCS LU NOP # CONTAINING ADDRESS STA CONWD SAVE IT JSB CLBRK CLEAR 1ST BREAKPOINT BRE12 EQU * LDB SAVE6 BUMP POINTER ADB .3 TO NEXT STB SAVE6 BREAKPOINT ENTRY LDA B,I NOW TRY STA ADDRS SECOND ENTRY SZA,RSS IS THERE AN ENTRY? JMP BRE13 NO.SKIP TO LAST ONE JSB GETLU YES.GET WCS LU NOP # CONTAINING ADDRESS STA CONWD SAVE IT JSB CLBRK CLEAR 2ND BREAKPOINT SKP BRE13 EQU * LDB SAVE6 POINT TO ADB .3 LAST ENTRY LDA B,I NOW TRY STA ADDRS LAST ENTRY SZA,RSS IS THERE AN ENTRY? JMP BRE03 NO.GO DISPLAY BREAKPOINTS JSB GETLU YES.GET WCS LU NOP # CONTAINING ADDRESS STA CONWD SAVE IT JSB CLBRK CLEAR LAST BREAKPOINT JMP BRE03 GO DISPLAY BREAKPOINTS BRE02 EQU * JSB ERROR MDE DEF .22 ERROR 022 JMP MDE03 TAKE NEXT COMMAND SKP * C L E A R * * CLEARS DESIRED OR ALL BREAKPOINTS CURRENTLY SET IN THE * USER MICROPROGRAM. * * $CL [,XXXXX [,YYYYY [,ZZZZZ]]] * * XXXXX,YYYYY & ZZZZZ ARE CONTROL STORE ADDRESSES OF * DESIRED BREAKPOINT LOCATIONS TO BE CLEARED. A * MAXIMUM OF 3 BREAKPOINTS ARE ALLOWED. * CLEAR EQU * CCA CLEAR BREAKPOINTS FLAG JMP BRE10 GO USE "BREAK" CODE FOR CLEAR SKP * D E L E T * * DELETES A RANGE OF MICROINSTRUCTIONS. * * $DE,XXXXX [,YYYYY] * * XXXXX IS THE LOWER CONTROL STORE ADDRESS OF THE RANGE OF * MICROINSTRUCTIONS TO BE DELETED. * * YYYYY IS THE UPPER CONTROL STORE ADDRESS OF THE RANGE OF * MICROINSTRUCTIONS TO BE DELETED. * DELET EQU * JSB RANGE PICK UP RANGE OF MICROINSTRUCTIONS SZA,RSS MORE PARAMETERS LEFT? JMP MDE10 YES.ILLEGAL CCA SET NO STA FLAG3 LU'S FLAG DEL01 EQU * JSB GETLU GET LU # OF WCS WITH CURRENT ADDRESS JMP DEL02 NO LU'S HAVE CURRENT WCS ADDRESS STA FLAG3 CLEAR NO LU'S FLAG JSB NOP DELETE CURRENT MICROINSTRUCTION JMP MDE03 ERROR OCCURRED.TERMINATE DELETE JSB IFBRK GET BREAK FLAG DEF *+1 FROM ID SEGMENT SSA SET? JMP DEL04 YES.GO BREAK LDA ADDRS NO.JUST DELETE CPA ADRS2 LAST ADDRESS? JMP MDE03 YES ISZ ADDRS NO.BUMP WCS ADDRESS JMP DEL01 CONTINUE DEL02 EQU * LDA ADRS2 CURRENT WCS CMA,INA ADDRESS < OR = ADA ADDRS THE UPPER SSA,RSS WCS ADDRESS? JMP DEL03 NO.GO CHECK END OF OPERATION LDA ADDRS YES.BUMP AND MASK1 CURRENT WCS ADA .256 ADDRESS UP TO STA ADDRS NEXT MODULE JMP DEL01 CONTINUE LOOKING DEL03 EQU * ISZ FLAG3 FIND ANY LU'S? JMP MDE03 YES.DONE.TAKE NEXT COMMAND JMP E11 NO.MDE ERROR 011 DEL04 EQU * JSB ERROR MDE DEF .0 ERROR 000 JMP MDE03 TAKE NEXT COMMAND SKP * D U M P * * DUMPS MICRO-OBJECT CODE FROM WCS TO A FILE OR LOGICAL UNIT. * * $DU,NAMR1[,XXXXX[,YYYYY]] * * NAMR1 IS THE FILE OR LOGICAL UNIT BEING DUMPED TO. * * XXXXX IS THE LOWER CONTROL STORE ADDRESS OF THE RANGE OF * MICROCODE TO BE DUMPED. * * YYYYY IS THE UPPER CONTROL STORE ADDRESS OF THE RANGE OF * MICROCODE TO BE DUMPED. * DUMP EQU * CLA INITIALIZE OUTPUT STA FLAG2 FLAG TO 0 CLE JSB PICK GET NAMR JMP MDE10 ILLEGAL PARAMETER SZB,RSS DEFAULT NAMR? JMP MDE10 YES.ILLEGAL CPB .1 IS IT A DEVICE? JMP DUM01 YES CLB NO.CLEAR DEVICE FLAG DUM02 EQU * STB FLAG1 SAVE DEVICE FLAG SZA DEFAULT REMAINING PARAMETERS? JMP DUM03 NO.GET THEM STA ADRS1 YES LDB .3583 SET UPPER LIMIT JSB CKTYP TO THE COMPUTER'S LDB UP.XE UPPER LIMIT DUM05 EQU * STB ADRS2 SAVE IT DUM04 EQU * LDA ADRS2 GET UPPER WCS ADDRESS JSB CKADR CHECK IT LDA ADRS1 GET LOWER WCS ADDRESS JSB CKADR CHECK IT LDA ADRS1 GET LOWER WCS ADDRESS CMA,INA IS IT GREATER ADA ADRS2 THAN THE UPPER SSA WCS ADDRESS? JMP MDE10 YES.ILLEGAL LDA ADRS1 INITIALIZE CURRENT WCS STA ADDRS ADDRESS TO LOWER LIMIT CCA SET NO STA FLAG3 LU'S FLAG SKP DUM09 EQU * JSB GETLU GET LU # OF WCS WITH CURRENT ADDRESS JMP DUM06 NO LU'S HAVE CURRENT WCS ADDRESS STA FLAG3 CLEAR NO LU'S FLAG STA LU SAVE LU # FOR READ WCS CPB B66 FULL RECORD LENGTH? RSS YES ADB .2 NO.NEED TO BUMP 2 STB WLOG SAVE (# OF MICROINSTRUCTIONS) X 2 JSB EXEC READ DEF DUM08 CURRENT DEF .1 BLOCK OF DEF LU MICROINSTRUCTIONS PNT21 DEF IOBUF+5 DEF WLOG DEF ADDRS DUM08 EQU * LDA WLOG FORMAT DATA LDB ADDRS READ INTO JSB FXDAT A RECORD LDA FLAG1 IS IT A DUMP SZA,RSS TO A DEVICE? JMP DUM13 NO.DUMPING TO A FILE LDA OUTLU YES.GET JSB GTEQT EQUIPMENT TYPE ADA M30 DVR # LESS SSA,RSS THAN 30? JMP DUM10 NO.ERROR LDA OUTLU YES.GET OUTPUT LU LDB FLAG2 FIRST OUTPUT SZB,RSS TRANSFER? JSB LEADR YES.GENERATE LEADER CCA SET OUTPUT STA FLAG2 FLAG LDA OUTLU WRITE RECORD JSB WRITE ON OUTPUT LU DUM07 EQU * LDB WLOG GET (# OF MICROINSTRUCTIONS) X 2 IN B LDA ADDRS GET CURRENT WCS ADDRESS BRS BUMP CURRENT ADDRESS ADA B BY AMOUNT OF LAST TRANSFER STA ADDRS CPA ADRS2 DONE? JMP DUM11 YES JMP DUM09 NO.CONTINUE DUM01 EQU * LDB NUMB SAVE STB OUTLU LU # JMP DUM02 SKP DUM03 EQU * JSB GTNUM GET LOWER WCS ADDRESS STA ADRS1 SAVE IT SZB,RSS DEFAULT THE UPPER ADDRESS? JMP DUM16 YES JSB GTNUM GET UPPER WCS ADDRESS CPB .1 MORE PARAMETERS LEFT? JMP MDE10 YES.ILLEGAL STA ADRS2 SAVE UPPER WCS ADDRESS JMP DUM04 DUM10 EQU * JSB ERROR MDE DEF .7 ERROR 007 JMP MDE03 TAKE NEXT COMMAND DUM06 EQU * LDA ADRS2 CURRENT WCS CMA,INA ADDRESS LESS THAN ADA ADDRS OR EQUAL TO SSA,RSS THE UPPER WCS ADDRESS? JMP DUM18 NO.GO CHECK FINISH OF OPERATION LDA ADDRS YES.BUMP CURRENT AND MASK1 WCS ADDRESS UP ADA .256 TO NEXT MODULE STA ADDRS ADDRESS 0 JMP DUM09 CONTINUE DUM18 EQU * ISZ FLAG3 FIND ANY LU'S? JMP DUM11 YES.FINISH OPERATION E11 EQU * JSB ERROR NO.MDE DEF .11 ERROR 011 JMP MDE03 TAKE NEXT COMMAND DUM11 EQU * LDA B2000 FORM STA IOBUF LAST LDA B120K RECORD STA IOBUF+1 OF STA IOBUF+2 OUTPUT CLA STA IOBUF+3 LDA .4 STA XFER LDA FLAG1 DUMP TO SZA,RSS A DEVICE? JMP DUM17 NO.GO WRITE EOR & CLOSE FILE LDA OUTLU WRITE LAST JSB WRITE RECORD LDA OUTLU GENERATE JSB TRAIL TRAILER SKP LDA OUTLU FORM IOR B100 CONTROL WORD STA CONWD FOR EOF JSB EXEC WRITE AN DEF *+3 EOF IN CASE DEF .3 DEVICE IS A DEF CONWD MAG TAPE JMP MDE03 TAKE NEXT COMMAND DUM13 EQU * LDA FLAG2 FIRST OUTPUT SZA TRANSFER? JMP DUM15 NO JSB CREAT YES.CREATE DEF DUM14 A DEF IOBUF+60 FILE DEF SAVE0 DEF PRAM DEF .20 DEF .5 DEF SECOD DEF CRLBL DUM14 EQU * LDA SAVE0 ERROR SSA,RSS OCCUR? JMP DUM15 NO JSB FMPER YES.REPORT FMP ERROR JMP MDE03 TAKE NEXT COMMAND DUM15 EQU * CCA SET OUTPUT STA FLAG2 FLAG JSB WRIFL WRITE CURRENT RECORD TO FILE JMP DUM07 CONTINUE DUM17 EQU * JSB WRIFL WRITE END-OF-RECORD TO FILE JSB CLOSE CLOSE DEF DUM19 FILE DEF IOBUF+60 DEF SAVE0 DUM19 EQU * LDA SAVE0 ERROR SSA,RSS OCCUR? JMP MDE03 NO.DONE.TAKE NEXT COMMAND JSB FMPER YES.REPORT FMP ERROR JMP MDE03 TAKE NEXT COMMAND DUM16 EQU * LDB ADRS1 DUMP THE JMP DUM05 SINGLE ADDRESS SKP * E X I T * * RETURNS MDES TO THE CALLING PROGRAM. * * $EX * EXIT EQU * CLO RESTORE LDA O.REG REGISTERS SZA ON EXIT STO OF MDES LDA E.REG ERA LDA S.REG OTA S LDX X.REG LDY Y.REG LDB B.REG LDA A.REG JMP MDES,I RETURN TO CALLING PROGRAM SKP * L O A D * * LOADS WCS FROM A FILE OR LU. * * $LD,NAMR1 * * NAMR1 IS EITHER A FILE CREATED BY THE $CODE CONTROL * STATEMENT IN A MICROASSEMBLY OR A DU COMMAND FROM MDE,