*DECK KAPPMOD USETEXT NIPDEF USETEXT SUPMSG USETEXT KDIS USETEXT DISTAIL USETEXT AHEADER USETEXT PARAMS USETEXT PT USETEXT AT PRGM KAPPMOD ; # HANDLES K-DISPLAY APPLICATION-MODE TYPE-INS # STARTIMS ; # *1DC KAPPMOD * * 1. PROC NAME AUTHOR DATE * KAPPMOD A. BEN-ARTZI 82/03/01 * * 2. FUNCTIONAL DESCRIPTION * HANDLES K-DISPLAY APPLICATION MODE TYPE-INS. * * 3. METHOD USED * VERIFY IF INPUT ALLOWED TO APPLICATION * CHECK TYPE OF INPUT * IF FIRST CHARACTER IS "+" OR "-" THEN FORMAT HOP/PAGE * ELSE FORMAT HOP/CMD AND SEND MESSAGE TO APPLICATION. * * 4. ENTRY PARAMETERS * PARAMS1 - NUMBER OF CHARACTERS ON INPUT * * 5. EXIT PARAMETERS * NONE * * 6. COMDECKS CALLED AND SYMPL TEXTS USED * NIPDEF SUPMSG KDIS * DISTAIL AHEADER PARAMS * PT AT * * 7. ROUTINES AND OVERLAYS CALLED * BLINK - LINK MESSAGE INTO DATA RING * MGETS - ALLOCATE BUFFER * OSCHAPP - SCHEDULE APPLICATION * XTRACE - TRACE PROCEDURE CALL * * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION * THIS IS A SECONDARY OVERLAY CALLED BY KPTYPIN. * W A R N I N G - THIS OVERLAY CANNOT EXCEED THE SECONDARY *CALL OSSIZE # STOPIMS ; # EXTERNAL VARIABLES # XREF BEGIN PROC XTRACE ; PROC MGETS ; PROC BLINK ; PROC OSCHAPP; LABEL RJMAIN ; END # INTERNAL VARIABLES # ITEM FIRST C(1) ; ITEM KAPNO ; ITEM KCHAR ; ITEM BUFADDR ; BEGIN CONTROL IFEQ DEBUG,1 ; XTRACE("KAPPM") ; CONTROL FI ; KCHAR = PARAMS1 ; FIRST = C<0>KBUF1[0] ; BEGIN KAPNO = KDAN[0] ; IF FIRST NQ "/" AND # TO THE APPLICATION # FIRST NQ "-" AND # # FIRST NQ "+" AND FIRST NQ "(" AND FIRST NQ ")" THEN BEGIN IF KDNI[0] # MAYBE INPUT TO APPLICATION NOT ALLOWED # THEN BEGIN KREPEAT[0] = "REPEAT.."; # SIGNAL OPERATOR OF ERROR # GOTO KEXIT ; END ELSE # APP. MODE AND INPUT ALLOWED # BEGIN # SEND THE MSG TO THE APPLICATION WITH HOP/CMD # KGET (HOPCMD,(KCHAR+21)/10,BUFADDR) ; HOPDTL[0]= KCHAR ; C<0,KCHAR>HOPMSG[0]=C<0,KCHAR>KBUF[0] ; # AND NO INPUT ANY MORE TILL APPLICATION ALLOWES # KDNI[0] = TRUE ; # AND SEND IT TO APPLICATION # GOTO SEND ; END END ELSE # APP. MODE. ONE OF FUNC (*,-,/,+) RECEIVED # BEGIN IF FIRST EQ "+" OR FIRST EQ "-" OR FIRST EQ "(" OR FIRST EQ ")" THEN BEGIN # BUILD THE HOP/PAGE BLOCK # KGET(HOPPAGE,LHOPAGE,BUFADDR) ; HOPPC[0] = FIRST ; # AND SEND IT TO APPLICATION # GOTO SEND ; END ELSE # NO OTHER CHOICE. JUST "/" # BEGIN IF KDBK[0] THEN BEGIN KREPEAT[0] = "REPEAT.."; # SIGNAL ERROR # GOTO KEXIT; END ELSE BEGIN KDBK[0] = TRUE; KGET(HOPBRK,LHOPBRK,BUFADDR); GOTO SEND; END END END END SEND: BEGIN BLINK(BUFADDR,ATACBA[KAPNO]) ; OSCHAPP(ATACBA[KAPNO]) ; END KEXIT: KBUF1[0] = 0 ; GOTO RJMAIN ; # -------------------- # PROC KGET(KCODE,KL,BUF); ITEM KCODE U; ITEM KL U; ITEM BUF U; BEGIN MGETS(KL+BLKHSIZE+ABHSIZE,BUF,TRUE); P=BUF+BLKHSIZE+ABHSIZE; P = BUF+BLKHSIZE;# BASE APPLICATION HEADER # PFCSFC[0] = KCODE ; # SET FUNCTION CODE # # # ABHTLC[0]=KL; # LENGTH OF MESSAGE # ABHABT[0]=APPCMD; # THIS IS A COMMAND BLOCK # ABHACT[0]=CT60TRANS; #CHARACTER TYPE # ABHABN[0]=0; ABHADR[0]=0; RETURN; END END # MAIN # TERM