00001 *************************
00002 *
00003 * CF83COR6.ASM
00004 * MDJ 06-13-91
00005 *
00006 * CF83 CORE WORDS 
00007 * SET #6
00008 *
00009 * "VOCABULARY"
00010 *
00011 *************************
00012 *
00013 * MUST ALTER  ON
00014 * ==========  ==
00015 * CF83COR5    ZOCABN
00016 * CF83COR7    ZOCABN
00017 *
00018 *************************
00019 *
00020 ZRGETN  EQU     $6C89
00021 ZLOADN  EQU     $6B54
00022 COLON   EQU     $07
00023 SEMI    EQU     $0D
00024 DPDP    EQU     $1B
00025 TDPDP   EQU     $1D
00026 CURENT  EQU     $098D
00027 VAF01   EQU     $0995
00028 VAF25   EQU     $09F5
00029 ZESTR6  EQU     $5596
00030 ZDEFNC  EQU     $643F
00031 ZORTHC  EQU     $64CF
00032 ZREATC  EQU     $64F3
00033         ORG     $6B96
00034 ZOCABN  FCB     10
00035         FCC     'VOCABULARY'
00036 VOCABL  FDB     ZLOADN
00037         FDB     ZRGETN
00038 VOCABC  FDB     COLON
00039 VOCABP  FDB     VOCABX
00040         FDB     ZORTHC
00041         FDB     ZDEFNC
00042         FDB     ZREATC
00043         FDB     VOCABR
00044         FDB     SEMI
00045 VOCABX  FDB     *+2     FIND VOCABULARY PTR ARRAY ENTRY
00046         PSHS    A,B,X
00047         LDX     #VAF01  GET FIRST POINTER ARRAY ENTRY
00048 VOCABS  CMPX    #VAF25  DONE?
00049         BHI     VOCABT  GO IF YES
00050         LDD     ,X      GET ENTRY
00051         CMPD    #0      IS IT EMPTY?
00052         BEQ     VOCABU  GO IF YES
00053         LEAX    4,X     POINT TO NEXT ENTRY
00054         BRA     VOCABS  RETURN FOR NEXT ENTRY
00055 VOCABT  JMP     ZESTR6  ERROR-RESTART
00056 VOCABU  STX     VOCABZ  TEMP. STORE VAF ENTRY ADDRESS
00057         PULS    A,B,X
00058         LDX     ,Y++
 
 
 
 
 
 
 
 
00059         JMP     [,X++]
00060 VOCABZ  RMB     2
00061 VOCABR  FDB     *+2     PUT VOCABULARY WORD RUN-TIME CODE
00062         PSHS    A,B,X     TO DICTIONARY
00063         LDX     DPDP    GET DICTIONARY POINTER
00064         STX     TVDPDP  TEMPORARILY SAVE IT
00065         LEAX    -2,X    BUMP POINTER BACK TWO BYTES
00066         LDD     TVDPDP  LOAD ORIGINAL DPDP
00067         STD     ,X++    STORE IT TO DICTIONARY
00068         LDD     #$3410  CODE FOR "PSHS X"
00069         STD     ,X++
00070         LDD     #$AE9F  CODE FOR "LDX [SCHORD]"
00071         STD     ,X++      (GET LINK TO NEXT VOCABULARY
00072         LDD     #$098F     SEARCH ORDER)
00073         STD     ,X++
00074         LDD     #$AF8D  CODE FOR "STX VNAMEL,PCR"
00075         STD     ,X++      (STORE TO INTERNAL LINK
00076         LDD     #$0022     FIELD ADDRESS)
00077         STD     ,X++
00078         LDD     #$AE8D  CODE FOR "LDX FWPA,PCR"
00079         STD     ,X++      (MAKE VOCABULARY CURRENT)
00080         LDD     #$001A
00081         STD     ,X++
00082         LDD     #$BF09  CODE FOR "STX VOCAB"
00083         STD     ,X++
00084         LDA     #$89
00085         STA     ,X+
00086         LDD     #$3002  CODE FOR "LEAX 2,X"
00087         STD     ,X++
00088         LDD     #$BF09  CODE FOR "STX CURENT"
00089         STD     ,X++
00090         LDA     #$8B
00091         STA     ,X+
00092         LDD     #$AE9F  CODE FOR "LDX [CURENT]"
00093         STD     ,X++
00094         LDD     #$098B
00095         STD     ,X++
00096         LDD     #$9F25  CODE FOR "STX TCUR"
00097         STD     ,X++
00098         LDD     #$8E09  CODE FOR "LDX #VAL00"
00099         STD     ,X++      (RESET SEARCH ORDER)
00100         LDA     #$93
00101         STA     ,X+
00102         LDD     #$BF09  CODE FOR "STX SCHORD"
00103         STD     ,X++
00104         LDA     #$8F
00105         STA     ,X+
00106         LDD     #$3510  CODE FOR "PULS X"
00107         STD     ,X++
00108         LDD     #$AEA1  CODE FOR "LDX ,Y++"
00109         STD     ,X++
00110         LDD     #$6E91  CODE FOR "JMP [,X++]"
00111         STD     ,X++
00112         LDD     VOCABZ  FWPA VALUE
00113         STD     ,X++
00114         STX     TVNAME  TEMP. STORE VNAMEN ADDRESS
00115         LDD     #$0100  DUMMY VNAMEN
00116         STD     ,X++
 
 
 
 
 
 
 
 
00117         LDD     [CURENT] DUMMY VNAMEL
00118         STD     ,X++
00119         CLRA            DUMMY VNAMEF
00120         CLRB
00121         STD     ,X++
00122         STX     TVDPDP  TEMP. STORE NEW DPDP
00123         LDX     VOCABZ  GET VAF ENTRY ADDRESS
00124         LDD     TVNAME  GET NFA OF NEW WORD
00125         STD     ,X++    STORE TO VAF ADDRESS
00126         STD     ,X      STORE TO VAL ADDRESS
00127         LDX     TVDPDP  GET NEW DPDP AGAIN
00128         STX     DPDP    STORE NEW DICTIONARY POINTER
00129         STX     TDPDP   STORE NEW TEMPORARY DPDP
00130         PULS    A,B,X
00131         LDX     ,Y++
00132         JMP     [,X++]
00133 TVDPDP  RMB     2
00134 TVNAME  RMB     2
00135 ZEND    NOP
00136         END
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
