Adrian Wise
2011-11-18 20:35:19 UTC
Hi
I've come across a (rather detailed) problem with the H316 simulation.
The issue is that the current code assumes that the X register always
tracks location zero, but there is a situation where this is not so. On
a machine with more than 16Kwords of RAM, and therefore equipped with
the extended addressing option, if the machine is *not* in extended
addressing mode, and the current instruction is in the upper half of RAM
then the X register actually tracks location '040000 - the first word of
the upper half.
The attached patch file corrects the issue. Note that this patch file is
relative to the code in h316_cpu.c on the "Interim Corrections" page:
http://simh.trailing-edge.com/interim.html
Once patched, simh will cleanly run the main CPU Verification and Test
program, AB16-CCT4, which may be downloaded from here:
http://www.series16.adrianwise.co.uk/software/source/VT/AB16-CCT4/AB16-CCT4_slst.ptp
The attached "do" file, boot_AB16-CCT4 will run it. (The test of the
front-panel sense switches is skipped, and an instruction not
implemented by simh has to be ignored.)
Adrian
--
Adrian Wise
http://www.series16.adrianwise.co.uk
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: XR_patchfile
URL: <http://mailman.trailing-edge.com/pipermail/simh/attachments/20111118/14435667/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: boot_AB16-CCT4
URL: <http://mailman.trailing-edge.com/pipermail/simh/attachments/20111118/14435667/attachment-0001.ksh>
I've come across a (rather detailed) problem with the H316 simulation.
The issue is that the current code assumes that the X register always
tracks location zero, but there is a situation where this is not so. On
a machine with more than 16Kwords of RAM, and therefore equipped with
the extended addressing option, if the machine is *not* in extended
addressing mode, and the current instruction is in the upper half of RAM
then the X register actually tracks location '040000 - the first word of
the upper half.
The attached patch file corrects the issue. Note that this patch file is
relative to the code in h316_cpu.c on the "Interim Corrections" page:
http://simh.trailing-edge.com/interim.html
Once patched, simh will cleanly run the main CPU Verification and Test
program, AB16-CCT4, which may be downloaded from here:
http://www.series16.adrianwise.co.uk/software/source/VT/AB16-CCT4/AB16-CCT4_slst.ptp
The attached "do" file, boot_AB16-CCT4 will run it. (The test of the
front-panel sense switches is skipped, and an instruction not
implemented by simh has to be ignored.)
Adrian
--
Adrian Wise
http://www.series16.adrianwise.co.uk
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: XR_patchfile
URL: <http://mailman.trailing-edge.com/pipermail/simh/attachments/20111118/14435667/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: boot_AB16-CCT4
URL: <http://mailman.trailing-edge.com/pipermail/simh/attachments/20111118/14435667/attachment-0001.ksh>