Commit Graph

107 Commits

Author SHA1 Message Date
Michael Martin 99f074da27 Fix the listing/map output to be Python 3 compatible 2019-04-12 20:47:01 -07:00
Michael Martin 41bf01d035 Convert Ophis to Python 3.
Most of the work is handled by 2to3, but there's a few extra tricks
needed to finish the job, mostly about picking the right bits to be
Unicode and the right bits to be bytes.
2019-01-09 20:45:01 -08:00
Michael Martin 971fafd918 Fix the 4502 opcode table generator 2019-01-09 20:23:58 -08:00
Michael Martin f6990095c1 A more Atari font for the Color Test 2018-09-20 21:53:51 -07:00
Michael Martin 778fbf7e2c Improved Atari 2600 example programs
Add the color test program as a sample program. Also update
the hi_stella example so that it runs properly when run in a Harmony
cartridge.
2015-01-07 00:35:21 -08:00
Michael Martin c3d48da59d Fix issue with branches in listfiles.
Due to whitespace vagaries, etc., a sample correct output has been
added to the test case files, but isn't directly checked as part
of verification.
2014-05-24 19:52:33 -07:00
Michael Martin 92f91aeeee Document the macros and functions in libbasic64 2014-05-24 07:47:14 -07:00
Michael Martin 0fd4d5f36a updated platform file descriptions 2014-05-24 07:21:50 -07:00
Michael Martin 3b41dde751 Update Windows installer for 2.1 2014-05-24 07:21:49 -07:00
Michael C. Martin f656a69a90 Merge pull request #25 from catseye/usr-bin-env-python
For scripts, use the Python interpreter that's found on the path.
2014-05-24 07:19:40 -07:00
Michael C. Martin 33b9e9acac Merge pull request #24 from catseye/test-sets-exit-code
When running tests from command line, set exit code appropriately.
2014-05-24 07:19:14 -07:00
Michael Martin afe510735e Update manual for 2.1. 2014-05-24 05:48:26 -07:00
Michael Martin 12f0dc05d4 VIC-20 header files 2014-05-24 05:48:26 -07:00
Michael Martin d3772587da Include a .cbmfloat pragma to make creating data simpler
Due to the usual vagaries of floating point, these are not completely
perfect, but for "human-scale" numbers it will be OK.
2014-05-18 23:19:22 -07:00
Cat's Eye Technologies 8f53f2d213 For scripts, use the Python interpreter that's found on the path. 2014-05-17 07:19:35 +01:00
Cat's Eye Technologies 1bd1424e33 When running tests from command line, set exit code appropriately. 2014-05-17 07:16:24 +01:00
Michael Martin bfbe169364 Range-check inputs on kinematics example 2014-05-14 23:05:43 -07:00
Michael Martin 2f7007ac1b libbasic64 sample program 2014-05-14 23:05:43 -07:00
Michael Martin 31bff0e414 libbasic64 is now vaguely usable
More consistent set of macros for interacting, a string-reader,
and better-documented preconditions based on disassemblies
2014-05-14 23:05:43 -07:00
Michael Martin 7ad52695d2 Refactor c64_0.oph to include a minimal BASIC loader 2014-05-14 23:05:43 -07:00
Michael C. Martin f48071add9 Merge pull request #22 from catseye/printable-chars-in-listing
Good catch. Merging that in 2.1.
2014-05-14 09:10:10 -07:00
Michael Martin 72d86ea06d Add libbasic64, for using BASIC's floating point in assembler programs 2014-05-14 08:57:46 -07:00
Michael Martin 60f03a34af Improvements to c64_0.oph startup/teardown code
16 additional bytes from the zero page are now available; the ZP
locations from $02-$8F are now free for your program's use.

Approximately 128 additional bytes in main RAM are now available,
giving you free reign from $0800-$CFFF. Zero Page backup is now
handled underneath the KERNAL's ROM, with the program epilogue
safely handling swapping out the KERNAL for the duration of the
switch. (IRQs are disabled, and NMI handling code is replicated
and modified to not hurt anything.)

Program exit is now handled by keyboard buffer and jumping
through BASIC's warm reset vector. This technique lets programs
play more nicely with PUCRUNCH and onefilers (which otherwise
often confused BASIC as the BASIC prologue would change as part
of decompression or link-loading).
2014-05-14 07:33:07 -07:00
Michael Martin 5b64c9701e Refactor the label mapper to be more like the lister. 2014-05-14 05:56:59 -07:00
Michael Martin bac908bff5 Much prettier label map files 2014-05-09 23:55:56 -07:00
Michael Martin 70f93b22eb Rework label map collection
This uses a pass to interrogate the system for locations, then dumps
those out instead. It handles includes, anonymous labels, and basic
macros, but it does so in a somewhat ugly way. This data can be
readily abbreviated and should also be re-sorted.
2014-05-09 23:11:09 -07:00
Cat's Eye Technologies 1ab61cd3be The ASCII characters DEL (127) and US (31) are not printable. 2014-04-26 13:16:15 +01:00
Cat's Eye Technologies c0bf2e98b7 A very, *very* poor-man's version of label<->address dump. Ugh! 2014-03-24 12:32:17 +00:00
Michael C. Martin 83b8433b77 Merge pull request #20 from gardners/master
INW/DEW addressing modes
2014-03-23 21:20:36 -07:00
gardners 97ea228fb7 remove LF added during conflict resolution. 2014-03-23 16:55:04 +10:30
gardners d407791aa9 Merge github.com:michaelcmartin/Ophis into temp 2014-03-23 16:53:39 +10:30
gardners a7994f9e85 4502 instructions INW and DEW are Zero Page, not Absolute 2014-03-23 16:51:01 +10:30
Michael Martin 42f01f7cd6 Bump minor version number and copyright dates 2014-03-22 22:09:11 -07:00
Michael Martin 3f13609932 Post-merge adjustments to 4502 patch. 2014-03-22 22:03:06 -07:00
Michael C. Martin 88c7214950 Merge pull request #19 from gardners/master
Add support for 4502/4510 CPU from Commodore 65
2014-03-22 22:02:56 -07:00
gardners adf965fc9d fix SBX (ZeroPage), Z for 4502 2014-02-08 02:56:41 +10:30
gardners bcfd08c750 Fix 16-bit immediate mode. 2014-02-08 02:55:26 +10:30
gardners dcc37f5751 Implement test for 4502 extensions.
Fix numerous bugs revealed through tests, some more remain.
2014-02-08 02:51:42 +10:30
gardners 591fc2fe35 make addressing mode cooercion work with varying addressing mode
lists.
2014-02-08 02:19:14 +10:30
gardners 5c162d2407 restore branch expansion for non-4502 targets 2014-02-08 01:59:42 +10:30
gardners 8152590946 update readme to indicate 4502 support 2014-02-07 20:55:19 +10:30
gardners 6856da1bbf fix various bugs with 4502 assembly. 2014-02-07 20:52:11 +10:30
gardners 5c4b23cbee fix 16-bit branch out-by-one error 2014-02-07 20:23:56 +10:30
gardners dec3106744 implement new 4510 addressing modes.
promote relative branches to 16-bit when required.
2014-02-07 20:22:06 +10:30
gardners c4be540f49 add 4502 option to Ophis command line. 2014-02-06 22:23:28 +10:30
gardners ccef1b663f update Opcodes.py to include 4502 opcodes 2014-02-06 22:20:24 +10:30
gardners 7686b21396 update addressing modes. Add 4502 to chipsets.txt 2014-02-06 22:19:38 +10:30
gardners 45e79d5583 add 4502 opcode table. 2014-02-06 22:06:40 +10:30
Michael Martin 364b39edfb First draft of listfile support.
The .listfile pragma and the -l command line option will select the
output file for the listing.
2013-04-13 19:57:24 -07:00
Michael Martin e5ac21f0f9 Second attempt at implementation of the BBXn instructions for Rockwell 65c02 chips.
Reliable technical documentation for how these instructions are decoded is a
little thin on the ground online, so some of this implementation is still
speculative.
2013-01-27 20:18:08 -08:00