ASMB,R,B,L HED RTE-B BASIC ERROR MESSAGE ROUTINE NAM ERROR HP 29102-16001 REV.A **************************************** * RTE-B BASIC ERROR ROUTINE * REV. A **************************************** * SOURCE TAPE 29102-18001 * RELOC. BIN. TAPE 29102-16001 * EXT. REF. SPEC 29102-16001-1 * LISTING 29102-16001-2 * ENT ERROR,.RROR,ERRCD ENT EBUFA,LBUFA ENT IERR,SERR * EXT PRNIN,TYPE,RECER,M9,OUTIN,.63,.LNUM,M1,M256 EXT SPCIT,LISTR,PEXMA,SPCRC,SWLST,DSPLY EXT ERBS,INDCK EXT FLOAT,.IENT EXT .ENTR SUP * .RROR NOP BASIC ENTRY CLA JMP ERRO1 * NUM NOP ERROR CODE MNEM NOP " MNEMONIC ERROR NOP NON-BASIC ENTRY JSB .ENTR PASS CALLING PARAMETERS DEF NUM LDA NUM,I FETCH ERROR CODE ERRO1 STA TEMPG SAVE REQUESTED ERROR # IF ANY LDA LISTR STA TEMPF SAVE CURRENT LIST DEVICE LDA SPCRC STA IERR JSB SWLST DEF DSPLY JSB PRNIN STA TYPE TYPE_0 LDA M9 LDB EBUFA JSB DSPLY (CR) (LF) (BELL) 'ERROR ' LDA TEMPG LDB .RROR ERROR SOURCE IN (B) SZA BASIC ENTRY? JMP ERRO2 NO, ERROR NUMBER IN AREG ALREADY LDA ERBS GET ERROR TABLE ADDRESS INA MOVE TO NEXT ERROR CPB 0,I SAME AS ACTUAL ERROR? CMA,INA,RSS YES, COMPUTE ERROR JMP *-3 NO ADA ERBS STA TEMPG SAVE NEGATIVE OF ERROR JMP ERRO3 * ERRO2 STA ERRCD SAVE ERROR FOR ALL TO ADMIRE LDB MNEM FETCH BUFFER ADDRESS LDA 1,I GET AND .63 CHARACTER COUNT CPA 1,I FROM MNEM TABLE? RSS ADA M1 YES, DEDUCT FOR LEFT PAREN INB POINT AT STRING CMA,INA,SZA,RSS CHARS WITHOUT CR-LF IF CHARS JMP ERRO3+1 NO CHARS (NULL STRING) JSB DSPLY YES, DISPLAY STRING LDA TEMPG GET POSITIVE ERROR NUMBER ERRO3 CMA,INA,RSS INSERT/REMOVE DASH IN MESSAGE LDA TEMPG GET POSITIVE ERROR NUMBER JSB OUTIN PUT ERROR NUMBER IN BUFFER LDA .LNUM GET LINE NUMBER OF STATEMENT JSB OUTIN DUMP ERR #, PUT LINE # IN BUF LDA M9 LDB LBUFA JSB DSPLY ' IN LINE ' LDA M256 JSB SPCIT DUMP LINE #, DO CR-LF LDA TEMPG RETRIEVE ERROR LDB PEXMA SET UP POINTER TO ABORT EXIT SSA,RSS NEGATIVE? JMP ERROR,I NO, WAS NOT CALLED BY BASIC INTERP ADA RECER RECOVERABLE SSA,RSS ERROR? JMP 1,I NO, OVERLAY SYNTAX PHASE OR TERMIN JSB SWLST RECOVERABLE. DEF TEMPF,I LDA IERR STA SPCRC RESTORE JMP .RROR,I RETURN TO BASIC SKP * ENTRY POINT TO SET ERRCD TO DESIRED VALUE * PTR NOP SERR NOP SET "ERRCD" TO THE VALUE SPECIFIED JSB .ENTR DEF PTR LDA PTR,I ISZ PTR LDB PTR,I JSB .IENT CONVERT TO INTEGER NOP STA ERRCD JMP SERR,I * * ENTRY POINT TO FETCH ERRCD * IERR NOP LDA ERRCD JSB FLOAT CONVERT ERROR CODE TO FLOATING POINT JMP IERR,I AND RETURN IT IN A & B * EBUFA DEF EBUFF EBUFF OCT 6412 OCT 3505 BELL, E ASC 3,RROR LBUFA DEF LBUFF LBUFF ASC 5, IN LINE * TEMPF BSS 1 TEMPG BSS 1 ERRCD NOP END