ASMB,L
* 
* 
* 
* 
* 
* 
**************************************************************
* (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978.  ALL RIGHTS    *
* RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- *
* PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH-  *
* OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.  *
**************************************************************
* 
* 
* 
*      NAME: GLEN 
*      SOURCE: 92840 - 18153
*      RELOC:  92840 - 16021
* 
* 
* 
************************************************************* 
      NAM GLEN,7 92840-16021 REV.2013 790904
******************************************************* 
* GLEN IS THE ASMB INTERFACE FOR THE GLEN SUBROUTINE OF 
* THE STROKE GENERATED CHARACTER PACKAGE. 
* GLEN VERIFIES THE PROPER NUMBER OF PARAMETERS HAS BEEN
* PASSED IN, THEN CALLS GTEXM TO PROCESS THE ACTUAL CALL. 
**********************************************************
      ENT GLEN
      EXT .OPTN,PLTER,GSOFT,GLEN1,GLEN2 
      EXT GASC1,GCHK
********************************************************* 
IAC   NOP 
IGCB  NOP 
ITEXT NOP 
ISTRT NOP 
ITEXL NOP 
DELTX NOP 
DELTY NOP 
IDCB  NOP 
DCB17 NOP           POINTER INTO IDCB(17) GETS STUFFED HERE 
GLEN  NOP 
      LDA GLEN
      JSB .OPTN 
      DEF RTN00 
      DEF IAC 
      DEF M8
      DEF IDUMY     NO ACTION CODE
      DEF D6        NUMBER OF REQUIRED PARAMETERS 
      DEF D1        NUMBER OF OPTIONAL PARAMETERS 
      DEF OPARM     ADDRESS OF OPTIONAL PARAMETER 
      DEF RETRN     .OPTN STUFFS RETURN ADDRESS HERE
RTN00 JMP GERR3 
********************************************************************
* NORMAL RETURN FROM .OPTN
**************************************************************
* GRAPHICS LINK AND CHECK FOR SUSPENDED GCB.
* 
      JSB GCHK
      DEF RTNA
      DEF IGCB,I
      DEF ISUSP 
RTNA  LDA ISUSP 
      SZA 
      JMP RETRN,I 
******************************************************************
* SEE IF ITEXT CAME FROM BASIC. 
* 
      JSB GASC1 
      DEF RTN01 
      DEF ITEXT,I 
      DEF IBASC 
* 
RTN01 LDA IBASC 
      SSA 
      ISZ ITEXT     BUMP THE ADDRESS IF THE STRING IS FROM BASIC
********************************************************************* 
* CALL GSOFT TO SEE IF SOFTWARE TEXT IS ENABLED.
* BRANCH TO HARD IF HARDWARE TEXT IS ENABLED. 
* 
      JSB GSOFT 
      DEF RTN0
      DEF IGCB,I
* 
RTN0  SSA,RSS 
      JMP HARD      EXECUTE THIS IF SIGN A=0
**********************************************************************
* RETURN THE SOFTWARE LENGTH OF THE TEXT STRING. MAKE SURE THE USER 
* PASSED IN A DCB.
* 
      LDA IDCB
      SZA,RSS 
      JMP GERR3     EXECUTE THIS IF A=0 
*************************************************************** 
* DEVELOP A DEF TO DCB(17) SO YOU CAN USE THE END OF THE DCB
* AS A UTILITY BUFFER.
* 
      LDA IDCB
      ADA D16 
      STA DCB17 
* 
      JSB GLEN1 
      DEF RTN1
      DEF IGCB,I
      DEF ITEXT,I 
      DEF ISTRT,I 
      DEF ITEXL,I 
      DEF DELTX,I 
      DEF DELTY,I 
      DEF IDCB,I
      DEF DCB17,I 
* 
RTN1  NOP 
      JMP FINIS 
******************************************************************* 
* HARDWARE TEXT LENGTH GETS RETURNED HERE.
********************************************************************
HARD  NOP 
      JSB GLEN2 
      DEF RTN2
      DEF IGCB,I
      DEF ITEXT,I 
      DEF ISTRT,I 
      DEF ITEXL,I 
      DEF DELTX,I 
      DEF DELTY,I 
RTN2  NOP 
      JMP FINIS 
*********************************************************************** 
* RESET ALL THE PARAMETERS TO 0 
*********************************************************************** 
FINIS NOP 
      JMP RETRN,I 
******************************************************************* 
* NOT ENOUGH PARAMETERS.
******************************************************************* 
GERR3 NOP 
      JSB PLTER 
      DEF RTN22 
      DEF D97 
      DEF IDUMY 
RTN22 NOP 
      JMP RETRN,I 
************************************************************
* CONSTANTS 
* 
D16   DEC 16
D97   DEC 97
IDUMY NOP 
IBASC NOP 
M8    DEC -8
D6    DEC 6 
D1    DEC 1 
RETRN NOP 
OPARM NOP 
ISUSP NOP           EQUALS 0 IF GCB NOT SUSPENDED 
      END 
                  