OSDN Git Service

line endings will now work for diff, etc.
[bif-6809/bif-6809.git] / cross_v / BIFDP.ASM
index bb6b8ed..9c60fa6 100644 (file)
@@ -1 +1,111 @@
-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
\ No newline at end of file
+00020 * Direct Page definitions for BIF
+00030 * BIF Copyright 1989 Joel Matthew Rees (see BIF/ASM)
+00060 * This file is dependent on BIF/M definitions
+00100 DPAGE    EQU *
+00105 VDP      EQU DPAGE/256
+00110 * ORG needs to leave space for this code
+00120  SETDP VDP
+00130 * COLD needs to load VDP into DP register
+00500 *
+00510 * Direct Page variables
+00600 UP       RMB 2
+00610  RMB 8 spares
+01000 *
+{      bifc_vm.c 
+01010 * nest into icode list
+01020 * call by JSR
+01030 XCOL     LDX ,S  list ptr
+01040  STY ,S  nest old
+01050  TFR X,Y interpret
+01060  NEXT
+01070 *
+}
+{      symbol.c
+01080 * PUSH FOLLOWING WORD
+01090 * call by JSR for CONSTANT
+01100 XCON     LDD [,S++]
+01110  PSHU D
+01120  NEXT
+01130 *
+01140 * push following address
+01150 * call by JSR for VARIABLE address
+01160 XVAR     PULS D
+01170  PSHU D
+01180  NEXT
+01190 * (same code as R>, but in DP)
+01200 *
+01210 * push address of USER variable
+01215 * call by JSR
+01220 XUSER    LDB [,S++]      one byte offset
+01225  CLRA
+01230  ADDD <UP
+01240  PSHU D
+01250  NEXT
+01260 *
+01300 * push address of LINEAR array entry
+01305 * call by JSR
+01310 X1ARR    PULS X
+01320  LDD ,U index
+01330  SUBD ,X base
+01340  CMPD 2,X width
+01350  BLO X1ARRS
+01360  LDD #$0C
+01365  PSHU D
+01370  JMP ERROR
+01380 X1ARRS   PSHS A
+01390  LDA 4,X size
+01400  MUL
+01410  STD ,U
+01420  PULS A ms byte
+01430  LDB 4,X
+01440  MUL
+01450  TFR B,A
+01460  ADDA ,U
+01470  LDB 1,U
+01480  LEAX 5,X past header
+01490  LEAX D,X
+01500  STX ,U
+01510  NEXT
+01520 * LINEAR array header format:
+01530 *        FDB BASE (lowest index)
+01540 *        FDB WIDTH (# of elements)
+01550 *        FCB SIZE (< 256 bytes / element)
+01560 *        RMB SIZE*WIDTH (data)
+01700 *
+01710 * push content of USER variable
+01715 * call by JSR
+01720 XUCON    LDX <UP
+01722  LDB [,S++]      one byte offset
+01725  CLRA
+01730  LDD D,X
+01740  PSHU D
+01750  NEXT
+01800 *
+01802 * store VOCABULARY pointer in root
+01805 * call by JSR
+01810 XVOC     LDX <UP
+01820  PULS D
+01830  STD UROOT,X
+01840  NEXT
+01850 *
+01860 * indirect into icode list following
+01870 * DOES> in defining definition
+01880 * call by JSR
+01890 XDOES    LDX ,S pfa
+01900  LDD ,X++        list ptr
+01920  PSHU X  parameters
+01930  STY ,S  nest old
+01940  TFR D,Y interpret
+01950  NEXT
+01960 *
+02000 * push double constant
+02010 * call by JSR
+02020 XDCON    PULS X
+02030  LDD ,X++
+02040  LDX ,X++
+02050  PSHU D,X
+02060  NEXT
+02070 *
+}
+40000  ORG DPAGE+256 if code fits
+40010  SETDP 0 not yet valid