OSDN Git Service

A few random tweaks
authorJoel Matthew Rees <joel.rees@gmail.com>
Sun, 12 Apr 2020 08:22:17 +0000 (17:22 +0900)
committerJoel Matthew Rees <joel.rees@gmail.com>
Sun, 12 Apr 2020 08:22:17 +0000 (17:22 +0900)
runt6800.68c
runt68000.ask
runt6801.68c
runt6805.as5
runt6809.as9

index 2611b0c..fd3fffa 100644 (file)
@@ -172,7 +172,8 @@ BMOVE
        STAA TEMP
        BCS BMOVEDN
 BMOVEUP
-
+****** Working in here to make it go both ways.
+****** Also need to check multiply and divide.
 
        LDX PSP
        LDX CELLSZ+ADRWDSZ,X
index 03a7d39..da98222 100644 (file)
@@ -133,6 +133,11 @@ COLD       JMP.S COLDENT
 WARM   JMP.S WARMENT
 
 
+****** Working in here to make it go both ways.
+****** Also need to check multiply and divide.
+****** And need to convert the stuff past multiply and divide to 68000
+
+
 * Entry point below.
 * SMOVEL
 *      MOVE.B (A2)+,(A3)+
index 6f377fb..a7d3c17 100644 (file)
@@ -145,31 +145,32 @@ SMOVEDL   LDX IXSRC
 * _WORD_ Move up to 32K bytes ( src dest count --- ):
 * Copies zero when count >= 2^15
 * Compare CMOVE in Forth.
+
+****** Working in here to make it go both ways.
+****** Also need to check multiply and divide.
+
 BMOVE
        LDX PSP
-       LDX 0,X
-       STX GCOUNT
-       LDX PSP
-       LDX ADRWDSZ,X
-       STX IXDEST
-       LDX PSP
-       LDX 2*ADRWDSZ,X
-       STX IXSRC
-       LDD GCOUNT      ; Pre-test for zero, too big.
+       LDD 0,X
+       STD GCOUNT
        BEQ BMOVEX      ; Do nothing if zero.
        BMI BMOVEX      ; Do nothing if too big.
+       LDD ADRWDSZ,X
+       STD IXDEST
+       LDD 2*ADRWDSZ,X
+       STD IXSRC
        LDAB 1+GCOUNT   ; Get low byte for partial block.
        CLR 1+GCOUNT    ; To avoid debugging confusion.
 BMOVEL BSR SMOVE       ; partial block and full blocks
        DEC GCOUNT      ; count high byte down (blocks)
        BPL BMOVEL ; This limits the count.
        LDD PSP
-       SUBD #3*ADRWDSZ
+       ADDD #3*ADRWDSZ
        STD PSP
 BMOVEX RTS
 * compare:
 *      LDX PSP
-*      LDB #3*ADRWDSZ  ; SUBD #3*ADRWDSZ is probably faster. Byte count is same.
+*      LDB #3*ADRWDSZ  ; ADDD #3*ADRWDSZ is probably faster. Byte count is same.
 *      ABX
 *      STX PSP
 *
index 6e566b5..aedc35a 100644 (file)
@@ -109,6 +109,11 @@ COLD       JMP COLDENT
 WARM   JMP WARMENT
 
 
+****
+Need to convert the whole thing to 6805,
+Need to decide on whether the runtime sees more than 8 address bytes, etc.
+
+
 * _LOWORD_ Move 256 bytes or less:
 * 0=256, do not enter without pretesting for 0 count!
 * source in IXSRC, destination in IXDEST, count in B:
index 4d0a1bf..7231854 100644 (file)
@@ -105,6 +105,10 @@ COLD       JMP COLDENT
 WARM   JMP WARMENT
 
 
+****** Working in here to make it go both ways.
+****** Also need to check multiply and divide.
+
+
 * _LOWORD_ Move 256 bytes or less:
 * 0=256, do not enter without pretesting for 0 count!
 * source in X, destination in Y, count in B: