Optimize a few frame things
authorAlyssa Rosenzweig <alyssa@backtick.town>
Thu, 30 Jun 2016 22:37:56 +0000 (15:37 -0700)
committerAlyssa Rosenzweig <alyssa@backtick.town>
Thu, 30 Jun 2016 22:37:56 +0000 (15:37 -0700)
src/CPU/common.tosh

index 014bab0..cd78421 100644 (file)
@@ -1,6 +1,6 @@
 define ; [comment]
 
-define mapper read (addr)
+define-atomic mapper read (addr)
 if addr < 8192 then
        set M to item (addr mod 2048 + 1) of RAM
 else
@@ -13,7 +13,7 @@ else
         end
 end
 
-define mapper write (addr) (value)
+define-atomic mapper write (addr) (value)
 if addr < 8192 then
        replace item addr mod 2048 + 1 of RAM with value
 else
@@ -30,7 +30,7 @@ else
        end
 end
 
-define PLP
+define-atomic PLP
 set flagN to < (item (join (letter 1 of M) "8")+1 of AND) = 8>
 set flagV to < (item (join (letter 1 of M) "4")+1 of AND) = 4>
 set flagB to < (item (join (letter 1 of M) "1")+1 of AND) = 1>
@@ -39,7 +39,7 @@ set flagI to < (item (join (letter 2 of M) "4")+1 of AND) = 4>
 set flagZ to < (item (join (letter 2 of M) "2")+1 of AND) = 2>
 set flagC to < (item (join (letter 2 of M) "1")+1 of AND) = 1>
 
-define interrupt: vector [vector]
+define-atomic interrupt: vector [vector]
 mapper write 256 + S (((PC - (PC mod 256)))/256)
 set S to (S - 1) mod 256
 mapper write 256 + S (PC mod 256)
@@ -53,7 +53,7 @@ set tmp to M
 mapper read vector+1
 set PC to (M*256) + tmp
 
-define compute SR
+define-atomic compute SR
 set SR to (128*flagN) + (64*flagV) + (32) + (16*flagB) + (8*flagD) + (4*flagI) + (2*flagZ) + (1*flagC)
 
 when flag clicked
@@ -81,16 +81,18 @@ delete all of RAM
 repeat 2048
        add "0" to RAM
 end
+initialize PPU
 
 when p key pressed
 step CPU
 
 when f key pressed
-emulate frame
+forever
+        emulate frame
+end
 
 define-atomic step CPU
 mapper read (PC)
 interpret instruction (M)
+set opcode to M
 change line by 1
-
-define interpret instruction (opcode)
This page took 0.024861 seconds and 4 git commands to generate.