1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2024-09-29 16:55:22 +00:00
Commit Graph

314 Commits

Author SHA1 Message Date
David Schmenk
caebedc1e5 Working Apple 3 again 2018-03-17 19:07:36 -07:00
David Schmenk
f7cf0be03e more cmdsys rearrangement 2018-03-17 16:51:00 -07:00
David Schmenk
a9237f58cc Sync cmd exported sysroutines 2018-03-17 15:52:15 -07:00
David Schmenk
3356cdd036 Break out cmd into module 2018-03-17 15:06:31 -07:00
David Schmenk
95e15e4b86 Better CASE END 2018-03-17 09:46:13 -07:00
David Schmenk
d379cefe2a 6502 caseblock early exit test 2018-03-17 08:44:02 -07:00
David Schmenk
463db3c170 Fix 65802 caseblock early exit 2018-03-16 20:44:09 -07:00
David Schmenk
68479c1606 Fix Y adjust on cse early exit 2018-03-16 19:08:13 -07:00
David Schmenk
423ca66fc0 No need for SANDBOX anymore. Tests for codeblock on 65802 2018-03-16 16:36:39 -07:00
David Schmenk
010750efed Early exit caseblock if value less than ordered list 2018-03-16 15:14:58 -07:00
David Schmenk
c07bc8172c Shrink a few bytes to fit 2018-03-15 07:59:16 -07:00
David Schmenk
3d84a2192c BREQ and BRNE ops 2018-03-14 21:34:55 -07:00
David Schmenk
53c832da58 Fix ADDx ops 2018-03-14 18:43:21 -07:00
David Schmenk
b145f82a9d Faster ADDx ops 2018-03-14 17:22:12 -07:00
David Schmenk
518b4e2680 local and absolute address ADDs 2018-03-14 11:56:16 -07:00
David Schmenk
c3f9ee0911 Save a few more bytes in the VM 2018-03-13 16:02:08 -07:00
David Schmenk
46b0c2c041 Version 1.1 2018-03-13 11:22:10 -07:00
Dave Schmenk
af44d7ee9a Fix sign of divmod 2018-03-13 09:22:17 -07:00
Dave Schmenk
5d531f53b1 Fix sign of mod and divmod 2018-03-13 09:19:18 -07:00
David Schmenk
35539e8f6e Update test case, portable VM WIP 2018-03-13 08:16:01 -07:00
David Schmenk
8730e2ff9a Update test cases and portable VM 2018-03-13 07:48:34 -07:00
David Schmenk
6bbc5b6381 Fix mod sign 2018-03-12 20:47:07 -07:00
David Schmenk
4f11cad955 Update XBYTE in SELect 2018-03-10 15:45:01 -08:00
David Schmenk
023030831c Sync all VMs and update images 2018-03-10 08:30:39 -08:00
David Schmenk
ce29a7c361 65802 bug fixes 2018-03-09 19:50:31 -08:00
Dave Schmenk
3d9c54adbf 65802 VM updates 2018-03-06 22:24:42 -08:00
David Schmenk
25599c00c8 Apple 3 VM updates 2018-03-06 19:20:59 -08:00
David Schmenk
a8553cfdb7 re-arrange some ops 2018-03-05 15:40:43 -08:00
David Schmenk
f3ef1b4820 Enable 65C02 ConstantNybble 2018-03-05 12:19:47 -08:00
David Schmenk
334bf1ec4d Nybble constants encoded in opcode 2018-03-05 11:38:16 -08:00
David Schmenk
eff01c5f12 Short circuit AND/OR 2018-03-05 10:55:19 -08:00
David Schmenk
6de120ec89 New WHEN/IS for hosted compiler 2018-03-05 08:58:21 -08:00
David Schmenk
3ee19e86f6 SWITCH/CASE table optimization 2018-03-04 21:36:23 -08:00
David Schmenk
5b41fd07c4 More work on for/next 2018-03-04 13:15:02 -08:00
Dave Schmenk
2b2e464c9b More immidiate ops, add/sub next branches 2018-03-04 10:18:31 -08:00
Dave Schmenk
793b1760a0 Constant op codes 2018-03-03 18:55:39 -08:00
Dave Schmenk
28f6e11606 Don't over-copy 65C02 routines 2018-03-02 21:54:03 -08:00
Dave Schmenk
40c3dcd197 Better FOR/NEXT ops 2018-03-02 21:43:09 -08:00
David Schmenk
86408f5157 First Commodore 64 version! 2018-02-24 18:11:06 -08:00
Dave Schmenk
ac78dad38f Seed Commodore 64 code 2018-02-21 07:25:22 -08:00
Dave Schmenk
3fbf2e4fbd Support multiple architecture ports 2018-02-20 17:27:44 -08:00
David Schmenk
efe08f8ea7 Save a couple bytes and sync label names 2018-02-17 10:34:09 -08:00
David Schmenk
02760f1038 Thanks SteveF! 2018-02-10 19:33:48 -08:00
David Schmenk
474f0a9017 PLASM type override bug :-( 2018-02-09 20:17:13 -08:00
David Schmenk
ebff3ebc07 Allocate all interp bank. Check path during set_pfx 2018-02-09 14:16:06 -08:00
David Schmenk
7af5d53fbb Allow Apple3 heap allocator to skip graphics memory 2018-02-08 18:46:50 -08:00
David Schmenk
9b7ecaf8e6 Synch Apple 1 CMD to A2 and A3 2018-02-06 09:49:48 -08:00
David Schmenk
be5dfdba4b Could this be it? 2018-02-05 14:54:06 -08:00
David Schmenk
5c322acf06 Fix gets() 2018-02-04 20:53:04 -08:00
David Schmenk
384c6e8a18 Lots of Apple /// progress 2018-02-03 20:20:21 -08:00
David Schmenk
222e34e229 Give 64K machines better ENTER/LEAVE 2018-02-01 18:49:20 -08:00
David Schmenk
10274bdf27 Synchronize CMDs 2018-02-01 18:10:02 -08:00
David Schmenk
f039572dde Synchronize VMs 2018-02-01 12:56:06 -08:00
David Schmenk
b177c3f69d Synchronize VMs 2018-02-01 12:52:00 -08:00
David Schmenk
11dea3d389 Capture Peter's 65C02 optimizations into standard VM 2018-01-31 14:36:50 -08:00
Peter Ferrie
3c36438333 a bit smaller, another attempt at 65c02 VM 2018-01-30 16:27:18 -08:00
David Schmenk
c2ee0a04ab Last of the VM opts. For now 2018-01-24 13:35:00 -08:00
David Schmenk
115c11d57b Turns out you cannot set emulation mode from native mode with PLP 2018-01-24 11:52:05 -08:00
David Schmenk
ec5109a6db DP#3 test 2018-01-23 20:54:06 -08:00
David Schmenk
1f999a86e8 Remove SELFMODIFY references for Apple II 2018-01-22 16:05:33 -08:00
David Schmenk
2175ce0d78 IP fixup cleanup 2018-01-22 13:56:04 -08:00
David Schmenk
2a6dbee706 Swap eval stack MSB and LSB for guard bytes bytes for stack based pointers 2018-01-21 21:23:49 -08:00
David Schmenk
e1faa30970 Developer Preview 2 2018-01-20 15:54:05 -08:00
David Schmenk
ad3a0c6a46 Peter Ferrie optimizations 2018-01-20 13:30:31 -08:00
David Schmenk
eb852c8a73 Last branch op code optimization 2018-01-20 10:37:21 -08:00
David Schmenk
3807a29fc9 The branch op code I was looking for 2018-01-20 10:30:14 -08:00
David Schmenk
934c52cf4d Even faster module loads. Now I'm happy 2018-01-20 09:52:32 -08:00
David Schmenk
abfe13a673 Fix oops on FIXJMP_IP 2018-01-20 09:17:55 -08:00
David Schmenk
82516bfe31 Speed up modload, fix oops on FIXUP_IP 2018-01-20 09:15:26 -08:00
David Schmenk
f24bb421ec fewer and better checks for IP FIXUP 2018-01-19 17:37:32 -08:00
David Schmenk
4b8fca060f remove conflict with clock cards and command line arguments 2018-01-19 14:12:22 -08:00
Dave Schmenk
e06a217f33 Switch all VMs to lazy IP update 2018-01-18 20:27:53 -08:00
David Schmenk
a3b12f9c28 John Brooks instruction fetch optimizations 2018-01-18 16:56:21 -08:00
David Schmenk
d166b99eb0 Fix 65802 HWSP state 2018-01-18 07:20:02 -08:00
David Schmenk
5ac6a556c8 Only adjust frame pointer for ENTER/LEAVE 2018-01-17 21:13:16 -08:00
David Schmenk
16f5cd6f1b Update magic # in module load 2018-01-17 10:28:41 -08:00
David Schmenk
5f9ba155eb Just easier to add a divmod opcode 2018-01-15 14:13:50 -08:00
David Schmenk
a92301908a Better fix for 65802 DIV and MOD bug 2018-01-15 07:36:02 -08:00
Dave Schmenk
b176847778 Reduce stack usage for ENTER/LEAVE but incompatible bytecode 2018-01-14 21:41:47 -08:00
Dave Schmenk
3651cb6373 divmod returning values in right order 2018-01-14 20:05:39 -08:00
David Schmenk
c3feb152ba Fix DI&MOD stomping on 65802 ESTK pointer 2018-01-14 18:47:52 -08:00
David Schmenk
eea119f924 Set identifiers/keyword to upper case 2018-01-14 13:44:08 -08:00
David Schmenk
06a04701c3 Found broken recursive calls on 65802 2018-01-14 12:41:19 -08:00
David Schmenk
26005a0637 Save a byte 2018-01-13 12:09:52 -08:00
David Schmenk
87f9be31d8 Sometimes a small change has large repercussions 2018-01-13 11:53:21 -08:00
Dave Schmenk
80a7805be1 Clean up 2018-01-10 22:02:55 -08:00
Dave Schmenk
55c23805b4 Fix TOUPPER in COUT for Apple][ 2018-01-10 21:02:43 -08:00
David Schmenk
f2d7593527 Apple ][/][+ and PLASMA16 acting wierd 2018-01-10 19:10:15 -08:00
David Schmenk
d1893b69da Set SYSPATH for CMD 2018-01-10 13:29:45 -08:00
David Schmenk
9b42eae31b Set verion to Pre 1.0 for developer release 2018-01-10 12:53:47 -08:00
David Schmenk
d7618a3708 get SYSPATH from CMD path 2018-01-10 12:29:52 -08:00
David Schmenk
e778e018aa Export SYSPATH 2018-01-10 11:48:11 -08:00
David Schmenk
a58f3639a5 Print banner *after* setting heap address 2018-01-10 10:29:27 -08:00
David Schmenk
6213bbf3ef Allow SOS PLASMA to set system path 2018-01-10 10:03:23 -08:00
David Schmenk
cf32a42364 PLASMA 1.0 code complete (but not fully tested) 2018-01-10 09:27:54 -08:00
David Schmenk
72fbb94dd1 Speed up module loading (remove unused features, too) 2018-01-09 18:12:30 -08:00
David Schmenk
e48d3cc112 Load EDASM generated REL files and link them in 2018-01-09 15:54:45 -08:00
David Schmenk
dbc02bc1b6 Still lingering TEST problem 2018-01-08 21:41:28 -08:00
David Schmenk
71f5f061ee Clean up modload code 2018-01-08 13:34:17 -08:00
David Schmenk
0af73ad1ca disable optimizer on 64K machines 2018-01-08 13:16:37 -08:00
David Schmenk
85e76a74bb Free as much memory when calling module init as possible 2018-01-08 11:53:15 -08:00
David Schmenk
c075197c6d PLASM code optimizations match plasm 2018-01-08 11:00:56 -08:00
David Schmenk
2fea8165b2 Writing out Ext REL file 2018-01-03 14:49:30 -08:00
David Schmenk
8a58ef8b5f Free up unneeded opcodes. Makes thing a little more simple 2018-01-01 10:29:28 -08:00
David Schmenk
7843bc41ce More robust stack depth checking and var parsing 2017-12-24 20:35:39 -08:00
David Schmenk
f79b94ba96 Enable strict parameter/return count checking 2017-12-13 14:40:31 -08:00
David Schmenk
42a58938b9 Get Apple /// playing with SANE and FileIO 2017-12-06 12:58:41 -08:00
David Schmenk
f5ea22af02 FileIO library for Apple 1 and ///, divmod function in cmdsys 2017-12-05 19:22:35 -08:00
David Schmenk
40ae932940 Add CPU check to PLASMA16 2017-12-04 10:44:37 -08:00
Dave Schmenk
f1bdedf938 Fix MUL opcode 2017-12-03 20:17:42 -08:00
David Schmenk
415e284066 Fix stupid filesystem modes 2017-12-03 16:11:28 -08:00
David Schmenk
3f8a396808 CMP doesn't set V flag :-( 2017-12-03 14:43:40 -08:00
David Schmenk
02129d49b9 Weird accum size switching bug 2017-12-02 22:47:07 -08:00
David Schmenk
4c168fe377 PLASMA16 code shrink 2017-12-01 20:54:58 -08:00
David Schmenk
eaef51d61b More tests looking for that last bug 2017-12-01 18:59:11 -08:00
David Schmenk
858023fd87 VM cleanup and PLASMA16 bugfixes 2017-12-01 18:27:50 -08:00
David Schmenk
944905e965 Fixing more PLASMA16 bugs 2017-11-30 18:24:58 -08:00
David Schmenk
3b0e0fb861 Almost operational PLASMA16 2017-11-29 21:35:52 -08:00
Dave Schmenk
f2f63df856 PLASMA16 WIP 2017-11-28 22:10:26 -08:00
David Schmenk
0f271a2cf5 PLASMA16 WIP 2017-11-28 21:37:03 -08:00
David Schmenk
2f7d5a1b39 VM cleanup 2017-11-28 20:05:22 -08:00
David Schmenk
634653bd47 Merge branch 'master' of https://github.com/dschmenk/PLASMA 2017-11-27 14:10:45 -08:00
David Schmenk
5c66505e04 Merge fixes 2017-11-27 14:10:15 -08:00
David Schmenk
7d392f2d42 Reduce stack usage on (I)CALL 2017-11-27 13:00:45 -08:00
David Schmenk
75ecdc237e Build preliminary 65802/65816 VM 2017-11-26 16:20:42 -08:00
David Schmenk
661d1b33eb Preliminary 65802/65816 VM 2017-11-25 20:10:01 -08:00
David Schmenk
a9bd3ebbeb Ternary operators for PLASMA! And Floating point string conversion WIP 2017-11-18 15:27:50 -08:00
David Schmenk
f3a6bfbb59 Add puti to cmdsys and clean up sanity comments 2017-11-16 10:46:06 -08:00
Dave Schmenk
e9191c20d8 Use cmdsys.plh include file 2017-11-11 06:50:06 -08:00
Dave Schmenk
95e94ce028 Music sequencer as a module 2017-11-08 20:35:53 -08:00
David Schmenk
7cd9f9fad0 Fix test pointer function calls and add eval stack pointer check in portable VM 2017-08-31 11:21:00 -07:00
David Schmenk
255061f75a Add def prototypes for cmdsys library functions 2017-08-27 20:38:26 -07:00
David Schmenk
326482a2a0 Add parameter/return values for predefs 2017-08-27 13:29:50 -07:00
David Schmenk
4591334896 Add optional self-modifying opcode implementation. 2017-08-12 15:50:36 -07:00
Dave Schmenk
1eed149c1b Add CFFB to AUX opcodes 2017-07-28 21:47:54 -07:00
dschmenk
c4912583de Add CFFB to portable VM with test case 2017-07-27 19:15:57 -07:00
Steven Flintham
d5f5326962 Use opcode $5E for CFFB 2017-07-26 20:22:27 +01:00
Steven Flintham
8610d2f56e Add CFFB opcode 2017-07-18 20:37:43 +01:00
dschmenk
b19956b3ba On the road to 1.0 2017-05-31 18:31:04 -07:00
David Schmenk
f6315d1bd1 Prepare for extended ops 2017-04-30 08:25:05 -07:00
dschmenk
62b47d0d0f Fix CALL6502 2017-04-25 11:57:11 -07:00
dschmenk
488f039494 Fix constant string ENTER code for A3 VM 2017-04-08 18:42:01 -07:00
David Schmenk
ee8fd77c26 Check for existing string in pool before copying CS string from aux mem 2017-03-26 20:36:03 -07:00
David Schmenk
18b082460f Check for existing string in pool before copying CS string from aux mem 2017-03-26 20:06:25 -07:00
dschmenk
988645cf8d Save a few bytes, somehing I meant to do a long time ago... 2017-01-28 12:27:34 -08:00
dschmenk
9170ca8602 SdFat support from Arduino SPI slave 2016-08-14 11:11:58 -07:00
dschmenk
6205c12145 Fix IDXW bug in portable VM 2016-01-29 13:42:47 -08:00
dschmenk
a02c6ccb82 Fix IDXW comment 2015-12-24 15:52:44 -08:00
dschmenk
99402bdf60 Save some bytes with inline strings 2015-11-15 13:12:39 -08:00
dschmenk
94a3482e49 Re-org VM ZP for more efficient fiber state swapping 2015-10-27 15:33:14 -07:00