Revision: 45774
http://sourceforge.net/p/vice-emu/code/45774
Author: gpz
Date: 2025-09-18 10:54:30 +0000 (Thu, 18 Sep 2025)
Log Message:
-----------
add another test for an obscure JAM bug
Modified Paths:
--------------
testprogs/CPU/cpujam/Makefile
testprogs/CPU/cpujam/cpujam.d64
testprogs/CPU/cpujam/cpujam02.prg
testprogs/CPU/cpujam/cpujam12.prg
testprogs/CPU/cpujam/cpujam22.prg
testprogs/CPU/cpujam/cpujam32.prg
testprogs/CPU/cpujam/cpujam42.prg
testprogs/CPU/cpujam/cpujam52.prg
testprogs/CPU/cpujam/cpujam62.prg
testprogs/CPU/cpujam/cpujam72.prg
testprogs/CPU/cpujam/cpujam92.prg
testprogs/CPU/cpujam/cpujamb2.prg
testprogs/CPU/cpujam/cpujamd2.prg
testprogs/CPU/cpujam/cpujamf2.prg
testprogs/CPU/cpujam/jamirq.prg
testprogs/CPU/cpujam/jamnmi.prg
testprogs/CPU/cpujam/nojam.prg
testprogs/CPU/cpujam/readme.txt
testprogs/testbench/c64-testlist.in
testprogs/testbench/c64rmk2-testlist.txt
testprogs/testbench/chameleon-testlist.txt
testprogs/testbench/denise-testlist.txt
testprogs/testbench/emu64-testlist.txt
testprogs/testbench/frodo-testlist.txt
testprogs/testbench/hoxs64-testlist.txt
testprogs/testbench/kernal64c128c64-testlist.txt
testprogs/testbench/kernal64c64-testlist.txt
testprogs/testbench/micro64-testlist.txt
testprogs/testbench/u64-testlist.txt
testprogs/testbench/virtualc64-testlist.txt
testprogs/testbench/x128c64-testlist.txt
testprogs/testbench/x64-testlist.txt
testprogs/testbench/x64sc-testlist.txt
testprogs/testbench/yace-testlist.txt
testprogs/testbench/z64kc128c64-testlist.txt
testprogs/testbench/z64kc64-testlist.txt
Added Paths:
-----------
testprogs/CPU/cpujam/unjam.prg
testprogs/CPU/cpujam/unjam.s
Modified: testprogs/CPU/cpujam/Makefile
===================================================================
--- testprogs/CPU/cpujam/Makefile 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/CPU/cpujam/Makefile 2025-09-18 10:54:30 UTC (rev 45774)
@@ -15,6 +15,7 @@
cpujamd2.prg \
cpujamf2.prg \
nojam.prg \
+ unjam.prg \
jamirq.prg \
jamnmi.prg
all:
@@ -33,6 +34,7 @@
cl65 -C c64-asm.cfg -u __EXEHDR__ -o nojam.prg nojam.s
cl65 -C c64-asm.cfg -u __EXEHDR__ --asm-define MODE=0 -o jamirq.prg jamirqnmi.s
cl65 -C c64-asm.cfg -u __EXEHDR__ --asm-define MODE=1 -o jamnmi.prg jamirqnmi.s
+ cl65 -C c64-asm.cfg -u __EXEHDR__ -o unjam.prg unjam.s
rm -f *.o
c1541 -format "cpujam,1" d64 cpujam.d64 > /dev/null
Modified: testprogs/CPU/cpujam/cpujam.d64
===================================================================
(Binary files differ)
Modified: testprogs/CPU/cpujam/cpujam02.prg
===================================================================
(Binary files differ)
Modified: testprogs/CPU/cpujam/cpujam12.prg
===================================================================
(Binary files differ)
Modified: testprogs/CPU/cpujam/cpujam22.prg
===================================================================
(Binary files differ)
Modified: testprogs/CPU/cpujam/cpujam32.prg
===================================================================
(Binary files differ)
Modified: testprogs/CPU/cpujam/cpujam42.prg
===================================================================
(Binary files differ)
Modified: testprogs/CPU/cpujam/cpujam52.prg
===================================================================
(Binary files differ)
Modified: testprogs/CPU/cpujam/cpujam62.prg
===================================================================
(Binary files differ)
Modified: testprogs/CPU/cpujam/cpujam72.prg
===================================================================
(Binary files differ)
Modified: testprogs/CPU/cpujam/cpujam92.prg
===================================================================
(Binary files differ)
Modified: testprogs/CPU/cpujam/cpujamb2.prg
===================================================================
(Binary files differ)
Modified: testprogs/CPU/cpujam/cpujamd2.prg
===================================================================
(Binary files differ)
Modified: testprogs/CPU/cpujam/cpujamf2.prg
===================================================================
(Binary files differ)
Modified: testprogs/CPU/cpujam/jamirq.prg
===================================================================
(Binary files differ)
Modified: testprogs/CPU/cpujam/jamnmi.prg
===================================================================
(Binary files differ)
Modified: testprogs/CPU/cpujam/nojam.prg
===================================================================
(Binary files differ)
Modified: testprogs/CPU/cpujam/readme.txt
===================================================================
--- testprogs/CPU/cpujam/readme.txt 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/CPU/cpujam/readme.txt 2025-09-18 10:54:30 UTC (rev 45774)
@@ -1,9 +1,17 @@
-This test can be used to check if the JAM opcode(s) actually do what they are
+These tests can be used to check if the JAM opcode(s) actually do what they are
supposed to do (halt the CPU).
+
jamirq.prg:
jamnmi.prg:
set up a timer irq which triggers after cpu has run into a JAM. that should
have no effect, the only way to recover from a JAM is reset.
+
+
+unjam.prg:
+
+executes a JAM opcode that was placed into a cia timer highbyte. when the timer
+counts down and the high byte changes, the CPU should stay jammed and not
+execute the new opcode.
Added: testprogs/CPU/cpujam/unjam.prg
===================================================================
(Binary files differ)
Index: testprogs/CPU/cpujam/unjam.prg
===================================================================
--- testprogs/CPU/cpujam/unjam.prg 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/CPU/cpujam/unjam.prg 2025-09-18 10:54:30 UTC (rev 45774)
Property changes on: testprogs/CPU/cpujam/unjam.prg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/x-commodore-exec
\ No newline at end of property
Added: testprogs/CPU/cpujam/unjam.s
===================================================================
--- testprogs/CPU/cpujam/unjam.s (rev 0)
+++ testprogs/CPU/cpujam/unjam.s 2025-09-18 10:54:30 UTC (rev 45774)
@@ -0,0 +1,44 @@
+ .macpack longbranch
+ .export Start
+
+Start:
+ sei
+
+ lda #$2f
+ sta $00
+ lda #$35
+ sta $01
+
+ lda #5
+ sta $d020
+
+ ; stop timers
+ lda #0
+ sta $dc0e
+ sta $dc0f
+
+ lda #$ff
+ sta $dc04
+ lda #$02 ; JAM, turns into some zp/2 byte opcode
+ sta $dc05
+ lda #$ff ; argument
+ sta $dc06
+ lda #$60 ; rts
+ sta $dc07
+
+ ; copy latch to timer
+ lda #%00010000
+ sta $dc0f
+ ; copy latch to timer, start timer
+ lda #%00010001
+ sta $dc0e
+
+ jsr $dc05 ; JAM
+
+ ; if we ever come here, something is seriously wrong
+ lda #2
+ sta $d020
+ lda #$ff
+ sta $d7ff
+ jmp *
+
Modified: testprogs/testbench/c64-testlist.in
===================================================================
--- testprogs/testbench/c64-testlist.in 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/testbench/c64-testlist.in 2025-09-18 10:54:30 UTC (rev 45774)
@@ -424,6 +424,7 @@
../CPU/cpujam/,nojam.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamirq.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamnmi.prg,exitcode,5500000,expect:timeout
+../CPU/cpujam/,unjam.prg,exitcode,5500000,expect:timeout
../CPU/cpuport/,bitfade.prg,analyzer,0
../CPU/cpuport/,delaytime.prg,analyzer,0
../CPU/cpuport/,test1.prg,exitcode,5500000
Modified: testprogs/testbench/c64rmk2-testlist.txt
===================================================================
--- testprogs/testbench/c64rmk2-testlist.txt 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/testbench/c64rmk2-testlist.txt 2025-09-18 10:54:30 UTC (rev 45774)
@@ -416,6 +416,7 @@
../CPU/cpujam/,nojam.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamirq.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamnmi.prg,exitcode,5500000,expect:timeout
+../CPU/cpujam/,unjam.prg,exitcode,5500000,expect:timeout
../CPU/cpuport/,bitfade.prg,analyzer,0
../CPU/cpuport/,delaytime.prg,analyzer,0
../CPU/cpuport/,test1.prg,exitcode,5500000
Modified: testprogs/testbench/chameleon-testlist.txt
===================================================================
--- testprogs/testbench/chameleon-testlist.txt 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/testbench/chameleon-testlist.txt 2025-09-18 10:54:30 UTC (rev 45774)
@@ -425,6 +425,7 @@
../CPU/cpujam/,nojam.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamirq.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamnmi.prg,exitcode,5500000,expect:timeout
+../CPU/cpujam/,unjam.prg,exitcode,5500000,expect:timeout
../CPU/cpuport/,bitfade.prg,analyzer,0
../CPU/cpuport/,delaytime.prg,analyzer,0
../CPU/cpuport/,test1.prg,exitcode,5500000
Modified: testprogs/testbench/denise-testlist.txt
===================================================================
--- testprogs/testbench/denise-testlist.txt 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/testbench/denise-testlist.txt 2025-09-18 10:54:30 UTC (rev 45774)
@@ -425,6 +425,7 @@
../CPU/cpujam/,nojam.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamirq.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamnmi.prg,exitcode,5500000,expect:timeout
+../CPU/cpujam/,unjam.prg,exitcode,5500000,expect:timeout
../CPU/cpuport/,bitfade.prg,analyzer,0
../CPU/cpuport/,delaytime.prg,analyzer,0
../CPU/cpuport/,test1.prg,exitcode,5500000
Modified: testprogs/testbench/emu64-testlist.txt
===================================================================
--- testprogs/testbench/emu64-testlist.txt 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/testbench/emu64-testlist.txt 2025-09-18 10:54:30 UTC (rev 45774)
@@ -404,6 +404,7 @@
../CPU/cpujam/,nojam.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamirq.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamnmi.prg,exitcode,5500000,expect:timeout
+../CPU/cpujam/,unjam.prg,exitcode,5500000,expect:timeout
../CPU/cpuport/,bitfade.prg,analyzer,0
../CPU/cpuport/,delaytime.prg,analyzer,0
../CPU/cpuport/,test1.prg,exitcode,5500000
Modified: testprogs/testbench/frodo-testlist.txt
===================================================================
--- testprogs/testbench/frodo-testlist.txt 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/testbench/frodo-testlist.txt 2025-09-18 10:54:30 UTC (rev 45774)
@@ -404,6 +404,7 @@
../CPU/cpujam/,nojam.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamirq.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamnmi.prg,exitcode,5500000,expect:timeout
+../CPU/cpujam/,unjam.prg,exitcode,5500000,expect:timeout
../CPU/cpuport/,bitfade.prg,analyzer,0
../CPU/cpuport/,delaytime.prg,analyzer,0
../CPU/cpuport/,test1.prg,exitcode,5500000
Modified: testprogs/testbench/hoxs64-testlist.txt
===================================================================
--- testprogs/testbench/hoxs64-testlist.txt 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/testbench/hoxs64-testlist.txt 2025-09-18 10:54:30 UTC (rev 45774)
@@ -424,6 +424,7 @@
../CPU/cpujam/,nojam.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamirq.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamnmi.prg,exitcode,5500000,expect:timeout
+../CPU/cpujam/,unjam.prg,exitcode,5500000,expect:timeout
../CPU/cpuport/,bitfade.prg,analyzer,0
../CPU/cpuport/,delaytime.prg,analyzer,0
../CPU/cpuport/,test1.prg,exitcode,5500000
Modified: testprogs/testbench/kernal64c128c64-testlist.txt
===================================================================
--- testprogs/testbench/kernal64c128c64-testlist.txt 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/testbench/kernal64c128c64-testlist.txt 2025-09-18 10:54:30 UTC (rev 45774)
@@ -425,6 +425,7 @@
../CPU/cpujam/,nojam.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamirq.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamnmi.prg,exitcode,5500000,expect:timeout
+../CPU/cpujam/,unjam.prg,exitcode,5500000,expect:timeout
../CPU/cpuport/,bitfade.prg,analyzer,0
../CPU/cpuport/,delaytime.prg,analyzer,0
../CPU/cpuport/,test1.prg,exitcode,5500000
Modified: testprogs/testbench/kernal64c64-testlist.txt
===================================================================
--- testprogs/testbench/kernal64c64-testlist.txt 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/testbench/kernal64c64-testlist.txt 2025-09-18 10:54:30 UTC (rev 45774)
@@ -425,6 +425,7 @@
../CPU/cpujam/,nojam.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamirq.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamnmi.prg,exitcode,5500000,expect:timeout
+../CPU/cpujam/,unjam.prg,exitcode,5500000,expect:timeout
../CPU/cpuport/,bitfade.prg,analyzer,0
../CPU/cpuport/,delaytime.prg,analyzer,0
../CPU/cpuport/,test1.prg,exitcode,5500000
Modified: testprogs/testbench/micro64-testlist.txt
===================================================================
--- testprogs/testbench/micro64-testlist.txt 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/testbench/micro64-testlist.txt 2025-09-18 10:54:30 UTC (rev 45774)
@@ -424,6 +424,7 @@
../CPU/cpujam/,nojam.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamirq.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamnmi.prg,exitcode,5500000,expect:timeout
+../CPU/cpujam/,unjam.prg,exitcode,5500000,expect:timeout
../CPU/cpuport/,bitfade.prg,analyzer,0
../CPU/cpuport/,delaytime.prg,analyzer,0
../CPU/cpuport/,test1.prg,exitcode,5500000
Modified: testprogs/testbench/u64-testlist.txt
===================================================================
--- testprogs/testbench/u64-testlist.txt 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/testbench/u64-testlist.txt 2025-09-18 10:54:30 UTC (rev 45774)
@@ -401,6 +401,7 @@
../CPU/cpujam/,nojam.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamirq.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamnmi.prg,exitcode,5500000,expect:timeout
+../CPU/cpujam/,unjam.prg,exitcode,5500000,expect:timeout
../CPU/cpuport/,bitfade.prg,analyzer,0
../CPU/cpuport/,delaytime.prg,analyzer,0
../CPU/cpuport/,test1.prg,exitcode,5500000
Modified: testprogs/testbench/virtualc64-testlist.txt
===================================================================
--- testprogs/testbench/virtualc64-testlist.txt 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/testbench/virtualc64-testlist.txt 2025-09-18 10:54:30 UTC (rev 45774)
@@ -424,6 +424,7 @@
../CPU/cpujam/,nojam.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamirq.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamnmi.prg,exitcode,5500000,expect:timeout
+../CPU/cpujam/,unjam.prg,exitcode,5500000,expect:timeout
../CPU/cpuport/,bitfade.prg,analyzer,0
../CPU/cpuport/,delaytime.prg,analyzer,0
../CPU/cpuport/,test1.prg,exitcode,5500000
Modified: testprogs/testbench/x128c64-testlist.txt
===================================================================
--- testprogs/testbench/x128c64-testlist.txt 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/testbench/x128c64-testlist.txt 2025-09-18 10:54:30 UTC (rev 45774)
@@ -425,6 +425,7 @@
../CPU/cpujam/,nojam.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamirq.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamnmi.prg,exitcode,5500000,expect:timeout
+../CPU/cpujam/,unjam.prg,exitcode,5500000,expect:timeout
../CPU/cpuport/,bitfade.prg,analyzer,0
../CPU/cpuport/,delaytime.prg,analyzer,0
../CPU/cpuport/,test1.prg,exitcode,5500000
Modified: testprogs/testbench/x64-testlist.txt
===================================================================
--- testprogs/testbench/x64-testlist.txt 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/testbench/x64-testlist.txt 2025-09-18 10:54:30 UTC (rev 45774)
@@ -425,6 +425,7 @@
../CPU/cpujam/,nojam.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamirq.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamnmi.prg,exitcode,5500000,expect:timeout
+../CPU/cpujam/,unjam.prg,exitcode,5500000,expect:timeout
../CPU/cpuport/,bitfade.prg,analyzer,0
../CPU/cpuport/,delaytime.prg,analyzer,0
../CPU/cpuport/,test1.prg,exitcode,5500000
Modified: testprogs/testbench/x64sc-testlist.txt
===================================================================
--- testprogs/testbench/x64sc-testlist.txt 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/testbench/x64sc-testlist.txt 2025-09-18 10:54:30 UTC (rev 45774)
@@ -425,6 +425,7 @@
../CPU/cpujam/,nojam.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamirq.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamnmi.prg,exitcode,5500000,expect:timeout
+../CPU/cpujam/,unjam.prg,exitcode,5500000,expect:timeout
../CPU/cpuport/,bitfade.prg,analyzer,0
../CPU/cpuport/,delaytime.prg,analyzer,0
../CPU/cpuport/,test1.prg,exitcode,5500000
Modified: testprogs/testbench/yace-testlist.txt
===================================================================
--- testprogs/testbench/yace-testlist.txt 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/testbench/yace-testlist.txt 2025-09-18 10:54:30 UTC (rev 45774)
@@ -405,6 +405,7 @@
../CPU/cpujam/,nojam.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamirq.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamnmi.prg,exitcode,5500000,expect:timeout
+../CPU/cpujam/,unjam.prg,exitcode,5500000,expect:timeout
../CPU/cpuport/,bitfade.prg,analyzer,0
../CPU/cpuport/,delaytime.prg,analyzer,0
../CPU/cpuport/,test1.prg,exitcode,5500000
Modified: testprogs/testbench/z64kc128c64-testlist.txt
===================================================================
--- testprogs/testbench/z64kc128c64-testlist.txt 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/testbench/z64kc128c64-testlist.txt 2025-09-18 10:54:30 UTC (rev 45774)
@@ -425,6 +425,7 @@
../CPU/cpujam/,nojam.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamirq.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamnmi.prg,exitcode,5500000,expect:timeout
+../CPU/cpujam/,unjam.prg,exitcode,5500000,expect:timeout
../CPU/cpuport/,bitfade.prg,analyzer,0
../CPU/cpuport/,delaytime.prg,analyzer,0
../CPU/cpuport/,test1.prg,exitcode,5500000
Modified: testprogs/testbench/z64kc64-testlist.txt
===================================================================
--- testprogs/testbench/z64kc64-testlist.txt 2025-09-17 17:55:56 UTC (rev 45773)
+++ testprogs/testbench/z64kc64-testlist.txt 2025-09-18 10:54:30 UTC (rev 45774)
@@ -425,6 +425,7 @@
../CPU/cpujam/,nojam.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamirq.prg,exitcode,5500000,expect:timeout
../CPU/cpujam/,jamnmi.prg,exitcode,5500000,expect:timeout
+../CPU/cpujam/,unjam.prg,exitcode,5500000,expect:timeout
../CPU/cpuport/,bitfade.prg,analyzer,0
../CPU/cpuport/,delaytime.prg,analyzer,0
../CPU/cpuport/,test1.prg,exitcode,5500000
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|