OSDN Git Service

preparing to change the line endings under cross_v
[bif-6809/bif-6809.git] / cross_v / BIFDP.ASM
1 00020 * Direct Page definitions for BIF\r00030 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)\r00060 * This file is dependent on BIF/M definitions\r00100 DPAGE      EQU *\r00105 VDP EQU DPAGE/256\r00110 * ORG needs to leave space for this code\r00120      SETDP VDP\r00130 * COLD needs to load VDP into DP register\r00500 *\r00510 * Direct Page variables\r00600 UP        RMB 2\r00610     RMB 8 spares\r01000 *\r01010 * nest into icode list\r01020 * call by JSR\r01030 XCOL        LDX ,S  list ptr\r01040  STY ,S  nest old\r01050  TFR X,Y interpret\r01060         NEXT\r01070 *\r01080 * PUSH FOLLOWING WORD\r01090 * call by JSR for CONSTANT\r01100 XCON    LDD [,S++]\r01110        PSHU D\r01120    NEXT\r01130 *\r01140 * push following address\r01150 * call by JSR for VARIABLE address\r01160 XVAR PULS D\r01170    PSHU D\r01180    NEXT\r01190 * (same code as R>, but in DP)\r01200 *\r01210 * push address of USER variable\r01215 * call by JSR\r01220 XUSER LDB [,S++]      one byte offset\r01225   CLRA\r01230      ADDD <UP\r01240  PSHU D\r01250    NEXT\r01260 *\r01300 * push address of LINEAR array entry\r01305 * call by JSR\r01310 X1ARR PULS X\r01320    LDD ,U index\r01330      SUBD ,X base\r01340      CMPD 2,X width\r01350    BLO X1ARRS\r01360        LDD #$0C\r01365  PSHU D\r01370    JMP ERROR\r01380 X1ARRS  PSHS A\r01390    LDA 4,X size\r01400      MUL\r01410       STD ,U\r01420    PULS A ms byte\r01430    LDB 4,X\r01440   MUL\r01450       TFR B,A\r01460   ADDA ,U\r01470   LDB 1,U\r01480   LEAX 5,X past header\r01490      LEAX D,X\r01500  STX ,U\r01510    NEXT\r01520 * LINEAR array header format:\r01530 *        FDB BASE (lowest index)\r01540 * FDB WIDTH (# of elements)\r01550 *       FCB SIZE (< 256 bytes / element)\r01560 *        RMB SIZE*WIDTH (data)\r01700 *\r01710 * push content of USER variable\r01715 * call by JSR\r01720 XUCON     LDX <UP\r01722   LDB [,S++]      one byte offset\r01725   CLRA\r01730      LDD D,X\r01740   PSHU D\r01750    NEXT\r01800 *\r01802 * store VOCABULARY pointer in root\r01805 * call by JSR\r01810 XVOC    LDX <UP\r01820   PULS D\r01830    STD UROOT,X\r01840       NEXT\r01850 *\r01860 * indirect into icode list following\r01870 * DOES> in defining definition\r01880 * call by JSR\r01890 XDOES    LDX ,S pfa\r01900        LDD ,X++        list ptr\r01920  PSHU X  parameters\r01930        STY ,S  nest old\r01940  TFR D,Y interpret\r01950         NEXT\r01960 *\r02000 * push double constant\r02010 * call by JSR\r02020 XDCON       PULS X\r02030    LDD ,X++\r02040  LDX ,X++\r02050  PSHU D,X\r02060  NEXT\r02070 *\r40000      ORG DPAGE+256 if code fits\r40010        SETDP 0 not yet valid\r