ASMB NAM RMOVE,7 92069-16015 REV.2026 800124 * * ****************************************************************** * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. 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. ******************************************************************* * * * SOURCE: 92069-18055 * RELOC: 92069-16015 * * *****************************************************************: * ***************************************************************** * THESE ROUTINES MOVE INFORMATION TO AND FROM THE ROOT TABLE * WHICH IS LOCATED IN THE SPACE AFTER THE LONGEST PROGRAM SEGMENT ***************************************************************** * * * SROOT * * CALLING SEQUENCE: * * CALL SROOT(I,VALUE) * * WHERE: I = BYTE OFFSET IN THE TABLE * NOTE: OFFSETS START WITH ZERO * VALUE = WORD TO BE STORED IN THE TABLE * * * ENT SROOT,RSGET,RSPUT,ROOTA EXT SGET,SPUT,.ENTR,ERXIT,EXEC,ERRM *$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ JANUARY 23,1980 * * * CONSTANTS IN COMMON * * * COM CARD(36),CHAR,CODE,CPACK(100),CRDPR COM DSEC,DCRN COM ENTL,ERROR COM NMFLG COM FWAM COM GGERR COM ICNT,IDCB(144),INDX COM INFPT,INFO(6),IGLOB(10),INPUT,ITMTB COM KPACK(50) COM LDCB(144),LGLOB,LIST,LWAM COM MEDIA COM NPACK(50),NSETS(50) COM OVRHD COM PTHTB(32) COM RDEF(64),RESNO,RFILE(3),RINDX COM SCNT,SETTB,SINDX,SORTI(255),SORTS(50),STYPE COM TYPE,PRGFG * *$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ JANUARY 23,1980 * CHANGED TO INCREASE SIZE OF PTHTB * OFFST NOP VALUE NOP SROOT NOP JSB .ENTR DEF OFFST * LDA OFFST,I COMPUTE ARS WORD ADA FWAM ADDRESS STA 1 OF ROOT TABLE CMB,INB IS THERE ROOM? ADB LWAM SSB JMP ERR NO! LDB VALUE,I GET DATA STB 0,I AND STORE IT JMP SROOT,I AND RETURN * ERR JSB ERXIT ERROR DEF *+2 DEF NOMEM * **************************************************************** * * GET * GET RETRIEVES A CHARACTER FROM ROOT TABLE * * CALLING SEQUENCE: * * CALL RSGET(INDEX,CHRX) * * WHERE: IINDX = CHARACTER INDEX IN ROOT TABLE * NOTE: INDEXING STARTS AT ZERO * CHRX = THE CHARACTER * **************************************************************** * INDEX NOP CHRX NOP RSGET NOP JSB .ENTR DEF INDEX LDA INDEX,I INA STA II * JSB SGET DEF *+4 DEF FWAM,I DEF II DEF CHRX,I * LDA CHRX,I MASK OFF ANYTHING IN THE LEFT BYTE AND LOW STA CHRX,I * JMP RSGET,I * * LOW OCT 377 II DEF *-* **************************************************************** * * PUT * PUT STORES A CHARACTER INTO THE ROOT TABLE * * CALLING SEQUENCE: * * CALL RSPUT(IINDX,CHR) * * WHERE IINDX = CHARACTER INDEX IN THE ROOT TABLE * NOTE: INDEXING STARTS AT ZERO * CHR = IS THE CHARACTER * **************************************************************** * IINDX NOP CHR NOP RSPUT NOP JSB .ENTR DEF IINDX LDA IINDX,I GET BYTE OFFSET FOR SPUT INA STA I2 GET WORD ADDRESS CCB ADA 1 ARS ADA FWAM IS THERE ROOM CMA,INA ADA LWAM SSA JMP E7010 * JSB SPUT PUT THE BYTE IN MEMORY DEF *+4 DEF FWAM,I DEF I2 DEF CHR,I JMP RSPUT,I * E7010 JSB ERXIT DEF *+2 DEF NOMEM * I2 DEF *-* * **************************************************************** * * ROOTA * ROOTA IS A FUNCTION THAT RETURNS A SPECIFIED WORD OF THE * ROOT TABLE. * * CALLING SEQUENCE: * * A=ROOTA(X) * * WHERE: X = THE BYTE OFFSET IN THE ROOT TABLE * NOTE: OFFSETTING STARTS AT ZERO * **************************************************************** * X NOP ROOTA NOP JSB .ENTR DEF X * LDA X,I ARS ADA FWAM LDA 0,I JMP ROOTA,I VALUE IS IN A REGISTER * .6 DEF 6 NOMEM DEF 30 END