00001 *************************
00002 *
00003 * NOTVAL.ASM
00004 * MDJ 10-31-91
00005 * 
00006 * LOW MEMORY ADDITION FOR
00007 * DLITERAL SUPPORT
00008 *
00009 *************************
00010 *
00011 DPDP    EQU     $1B
00012 STATEL  EQU     $2D
00013 TYPEF   EQU     $465F
00014 ZITERT  EQU     $5328
00015 OUTER4  EQU     $5975
00016 TOKLIN  EQU     $598A
00017 CPNUMC  EQU     $5BDA
00018 OUTL2   EQU     $5C02
00019 BLKNML  EQU     $5C29
00020         ORG     $515E
00021 NOTVAL  PULU    X       DROP FLAG
00022         CLRA
00023         LDB     [DPDP]  LOAD CHARACTER COUNT
00024         TFR     D,X     MOVE COUNT TO X
00025         LDY     DPDP    LOAD TOKEN ADDRESS
00026         LEAY    1,Y     BUMP IT PAST COUNT
00027         JSR     TYPEF   GO TYPE TOKEN TO SCREEN
00028         RTS
00029 ST2CVK  PSHS    A
00030         LDA     STATEL  LOAD STATE
00031         CMPA    #0      IS IT ZERO?
00032         BEQ     ST2CK1  GO IF YES
00033         LDX     #CPNUMC
00034         BRA     ST2CK2
00035 ST2CK1  PULU    A       DROP FLAG
00036         PULU    A
00037         LDY     #OUTER4 ADJUST INNER INTERPRETER
00038         LDX     #TOKLIN
00039 ST2CK2  PULS    A
00040         JMP     [,X++]
00041 ST2CVL  PSHS    A
00042         LDA     STATEL  LOAD STATE
00043         CMPA    #0      IS IT ZERO?
00044         BEQ     ST2CL1  GO IF YES
00045         PULS    A
00046         LDX     ,Y++
00047         JMP     [,X++]
00048 ST2CL1  PULU    A       DROP FLAG
00049         PULU    A
00050         PULS    A
00051         LDY     #OUTL2
00052         LDX     #BLKNML
00053         JMP     [,X++]
00054 ZPNUMX  PSHS    A,B,X,Y
00055         PULU    A,B     GET FLAG
00056         CMPD    #$FFFF  16-BIT NUMBER?
00057         BEQ     ZP1     GO IF YES
00058         LDX     DPDP    GET DICTIONARY POINTER
 
 
 
 
 
 
 
 
00059         LDY     #ZDLITT GET DLITERAL RUN TIME CODE
00060         STY     ,X++    COMPILE CODE
00061         PULU    A,B,Y   GET DOUBLE NUMBER
00062         STY     ,X++    COMPILE LOW BYTES
00063         STD     ,X++    COMPILE HIGH BYTES
00064         BRA     ZP2
00065 ZP1     LDX     DPDP    GET DICTIONARY POINTER
00066         LDY     #ZITERT GET LITERAL RUN TIME CODE
00067         STY     ,X++    COMPILE CODE
00068         PULU    Y       GET NUMBER
00069         STY     ,X++    COMPILE NUMBER
00070 ZP2     STX     DPDP    STORE UPDATED POINTER
00071         PULS    A,B,X,Y
00072         RTS
00073 ZDLITT  FDB     *+2
00074         PSHS    A,B
00075         LDD     ,Y++
00076         PSHU    A,B
00077         LDD     ,Y++
00078         PSHU    A,B
00079         PULS    A,B
00080         LDX     ,Y++
00081         JMP     [,X++]
00082 ZEND    NOP
00083         END
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
