From ad1f62fb5424fbf0914085fb832886df18e1e755 Mon Sep 17 00:00:00 2001 From: "chris.double" Date: Wed, 2 Aug 2006 09:14:51 +0000 Subject: [PATCH] fix bug in cpu-8080 emulation --- contrib/space-invaders/cpu-8080.factor | 26 ++++++++++---------- contrib/space-invaders/space-invaders.factor | 6 +++++ 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/contrib/space-invaders/cpu-8080.factor b/contrib/space-invaders/cpu-8080.factor index edc76a3093..60934affc4 100644 --- a/contrib/space-invaders/cpu-8080.factor +++ b/contrib/space-invaders/cpu-8080.factor @@ -1077,14 +1077,14 @@ SYMBOL: $4 8-bit-registers sp <&> "," token <& 8-bit-registers <&> - just [ >2array< swap >2array< swap >r append r> curry ] <@ ; + just [ >2array< swap >2array< swap >r swap append r> curry ] <@ ; : ADC-R,(RR)-instruction ( -- parser ) "ADC-R,(RR)" "ADC" complex-instruction 8-bit-registers sp <&> "," token <& 16-bit-registers indirect <&> - just [ >2array< swap >2array< swap >r append r> curry ] <@ ; + just [ >2array< swap >2array< swap >r swap append r> curry ] <@ ; : SBC-R,N-instruction ( -- parser ) "SBC-R,N" "SBC" complex-instruction @@ -1097,14 +1097,14 @@ SYMBOL: $4 8-bit-registers sp <&> "," token <& 8-bit-registers <&> - just [ >2array< swap >2array< swap >r append r> curry ] <@ ; + just [ >2array< swap >2array< swap >r swap append r> curry ] <@ ; : SBC-R,(RR)-instruction ( -- parser ) "SBC-R,(RR)" "SBC" complex-instruction 8-bit-registers sp <&> "," token <& 16-bit-registers indirect <&> - just [ >2array< swap >2array< swap >r append r> curry ] <@ ; + just [ >2array< swap >2array< swap >r swap append r> curry ] <@ ; : SUB-R-instruction ( -- parser ) "SUB-R" "SUB" complex-instruction @@ -1132,21 +1132,21 @@ SYMBOL: $4 8-bit-registers sp <&> "," token <& 8-bit-registers <&> - just [ >2array< swap >2array< swap >r append r> curry ] <@ ; + just [ >2array< swap >2array< swap >r swap append r> curry ] <@ ; : ADD-RR,RR-instruction ( -- parser ) "ADD-RR,RR" "ADD" complex-instruction 16-bit-registers sp <&> "," token <& 16-bit-registers <&> - just [ >2array< swap >2array< swap >r append r> curry ] <@ ; + just [ >2array< swap >2array< swap >r swap append r> curry ] <@ ; : ADD-R,(RR)-instruction ( -- parser ) "ADD-R,(RR)" "ADD" complex-instruction 8-bit-registers sp <&> "," token <& 16-bit-registers indirect <&> - just [ >2array< swap >2array< swap >r append r> curry ] <@ ; + just [ >2array< swap >2array< swap >r swap append r> curry ] <@ ; : LD-RR,NN-instruction #! LD BC,nn @@ -1174,28 +1174,28 @@ SYMBOL: $4 16-bit-registers indirect sp <&> "," token <& 8-bit-registers <&> - just [ >2array< swap >2array< swap >r append r> curry ] <@ ; + just [ >2array< swap >2array< swap >r swap append r> curry ] <@ ; : LD-R,R-instruction "LD-R,R" "LD" complex-instruction 8-bit-registers sp <&> "," token <& 8-bit-registers <&> - just [ >2array< swap >2array< swap >r append r> curry ] <@ ; + just [ >2array< swap >2array< swap >r swap append r> curry ] <@ ; : LD-RR,RR-instruction "LD-RR,RR" "LD" complex-instruction 16-bit-registers sp <&> "," token <& 16-bit-registers <&> - just [ >2array< swap >2array< swap >r append r> curry ] <@ ; + just [ >2array< swap >2array< swap >r swap append r> curry ] <@ ; : LD-R,(RR)-instruction "LD-R,(RR)" "LD" complex-instruction 8-bit-registers sp <&> "," token <& 16-bit-registers indirect <&> - just [ >2array< swap >2array< swap >r append r> curry ] <@ ; + just [ >2array< swap >2array< swap >r swap append r> curry ] <@ ; : LD-(NN),RR-instruction "LD-(NN),RR" "LD" complex-instruction @@ -1244,14 +1244,14 @@ SYMBOL: $4 16-bit-registers indirect sp <&> "," token <& 16-bit-registers <&> - just [ >2array< swap >2array< swap >r append r> curry ] <@ ; + just [ >2array< swap >2array< swap >r swap append r> curry ] <@ ; : EX-RR,RR-instruction "EX-RR,RR" "EX" complex-instruction 16-bit-registers sp <&> "," token <& 16-bit-registers <&> - just [ >2array< swap >2array< swap >r append r> curry ] <@ ; + just [ >2array< swap >2array< swap >r swap append r> curry ] <@ ; : 8080-generator-parser NOP-instruction diff --git a/contrib/space-invaders/space-invaders.factor b/contrib/space-invaders/space-invaders.factor index 42a280e6be..3dad3303d0 100644 --- a/contrib/space-invaders/space-invaders.factor +++ b/contrib/space-invaders/space-invaders.factor @@ -326,3 +326,9 @@ M: right-up-msg handle-invaders-message ( gadget message -- quit? ) dup "Space Invaders" open-titled-window dup [ millis swap invaders-process ] curry spawn swap dupd set-invaders-gadget-process ; + +: runx ( -- process ) + "invaders.rom" over load-rom + [ set-invaders-gadget-cpu ] keep + dup "Space Invaders" open-titled-window + dup "a" set invaders-gadget-cpu 1000 [ dup gui-frame "a" get relayout-1 ] times drop ; \ No newline at end of file