/       FOCAL PATCH ROUTINES FOR KV8/I
/ TO ERASE S G=FACC()
/ TO PLOT S G=FNEW(X,Y,Z,W)
/ X = X CO-ORD. Y = Y CO-ORD.
/ Z     = 0,    SHORT VECTOR
/       = -1,   LONG VECTOR
/ W     = 0,    VISIBLE
/       = -1,   INVISIBLE
/ PATCH FADC AS AN ERASE FN.
*1343
XADC,   CLA
        TAD SXIC / COMBINED ABS. MODE AND ERASE-RESET.
        LDF
        EXC / ERASE RESET
        STA / SET STATUS DONE FOR INT. HANDLER.
IND,    DCA I FNSWA
        JMP I EFUN3I
SXIC,   0406
FNSWA,  FNSW / INDIRECT TO STATUS.
/*************************************

/ PATCH INTERUPT HANDLER
*2652
        JMP I .+1
        INTPTR
        RMF / FOR 8K FOCAL.
/*************************************


/ PATCH FNEW ENTRY POINT.
*FNTABF+14
XFNEW   / PLOT FUNCTION.

/ PATCH USER AREA POINTER.
*35
        BOTTOM


/ INTERRUPT HANDLER EXTENSION.
*4511
INTPTR, SRF / SCREEN FLAG
        JMP I HANDLER / NOT IT.
        TAD FNSW / GET STATUS POINTER
        SPA SNA CLA
        JMP READY / FINISHED THIS ONE
        TAD P / EXECUTE MODE.
        EXC
        STA
COMMN,  DCA FNSW / SET STATUS TO DONE
        JMP I HANDLER / BACK TO INT. HANDLER
READY,  CRF
        JMP COMMN
HANDLER, 2654 / RETURN TO INTERUPT HANDLER
/****************************

XFNEW,  TAD FNSW
        SZA CLA
        JMP .-2 / WAIT IF PREVIOUS NOT FINISHED
        IOF
        JMS I INTEGER
        LDX / SET X
        CLA
        JMS FIND
        DCA FNSW / TEMP STORAGE FOR Y
        JMS FIND / GET VECTOR TYPE
        SMA CLA
        TAD SIX / LONG
        TAD FRC / SHORT
        DCA P / SET SHORT OR LONG
RETN,   JMS FIND / GET VISIBLE OR INVISIBLE
        IAC
        TAD P / SET MODE
        DCA P
        TAD FNSW / GET Y
        SRF
        JMP .-1
        LDY / LOAD Y
        CLA IAC
        DCA FNSW / SET LOADED
        ION
        JMP I EFUN3I
FIND,   00
        TAD CHAR
        TAD MCOMMA
        SZA CLA
        JMS I 166 / ERROR, NOT ENOUGH ARGUMENTS.
        GETC / MOVE PAST COMMA
        SPNOR / IGNOR BLANKS
        PUSHJ
        EVAL / GET ARG.
        JMS I INTEGER
        JMP I FIND
FRC,    440
P,      00
MCOMMA, -254
FNSW,   00 / PLOT STATUS POINTER.
SIX,    140
/******************************
/ ASSIGN MNEMONICS
/ FOCAL NOTATION USED

EXC=6066
SRF=6071
LDF=6063
CRF=6072
EFUN3I=136
FNTABF=374
LDX=6064
LDY=6065
CHAR=66
GETC=JMS I 145
SPNOR=JMS I 160
PUSHJ=JMS I 140
EVAL=1613
INTEGER=53
BOTTOM=4510
$
