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

351 Commits

Author SHA1 Message Date
David Schmenk
07733cc5a6 JIT 65802 WIP 2018-04-10 18:11:35 -07:00
David Schmenk
b33856ee28 Get 65802 to sort-of run JIT 2018-04-08 14:59:45 -07:00
David Schmenk
bc7e38ee17 Merge branch 'devel' 2018-04-07 09:27:21 -07:00
David Schmenk
dad0f4b4d5 Add NO-JITC flag to module SYSFLAGS 2018-04-06 17:53:51 -07:00
David Schmenk
fd641bef8f JIT specific module loading 2018-04-06 14:22:39 -07:00
David Schmenk
82a4b57c43 65802 requires 128K and JITC 2018-04-06 12:42:48 -07:00
David Schmenk
558290100c Clear MSB for DLB/DAB 2018-04-05 11:20:43 -07:00
David Schmenk
9a82e3b5fb Looking for one more JITC bug 2018-04-03 13:56:55 -07:00
David Schmenk
3e0d81d09d Put buffer at beginning of SBANK 2018-04-03 10:10:41 -07:00
Dave Schmenk
763cbd6986 Full 4K JIT codebuffer 2018-04-02 21:46:53 -07:00
David Schmenk
347aa5329d Leave buffer for maxcode and assembly defcpy 2018-04-02 15:41:41 -07:00
David Schmenk
9e4f9936af Cleanup 2018-04-02 13:51:04 -07:00
David Schmenk
d0215eb7e1 Allocate proper size for defentries 2018-04-02 12:36:44 -07:00
David Schmenk
58eb615176 Remove JITC puts from JIT module 2018-04-02 10:17:33 -07:00
David Schmenk
e5e43f58b7 Save/Restore JIT code ptr 2018-04-02 10:02:17 -07:00
David Schmenk
77ca9b2813 Re-org some JIT <-> CMDSYS <-> VM connections 2018-04-02 09:17:18 -07:00
David Schmenk
d4f15e3a90 Apple /// JITC 2018-04-02 08:47:16 -07:00
David Schmenk
574911e389 Apple /// JIT WIP 2018-04-01 18:53:56 -07:00
David Schmenk
46b9f073d5 New JIT defaults 2018-03-31 17:15:18 -07:00
David Schmenk
51ba2df618 Move JIT compiler to top of AUX memory 2018-03-30 13:12:39 -07:00
David Schmenk
148031d192 Make SIEVE JITable 2018-03-29 07:58:31 -07:00
David Schmenk
3968f82625 Lose the JIT warmup count 2018-03-28 17:02:26 -07:00
David Schmenk
27a2d8d0b7 Start more efficient coding for writing native code to buffer 2018-03-24 10:02:14 -07:00
David Schmenk
a7ecdc7edc Save a few bytes so we can test JIT 2018-03-22 16:38:05 -07:00
David Schmenk
cdb0dac92f Fix SEL and SUBI 2018-03-22 12:23:25 -07:00
Dave Schmenk
81574a8a62 JIT tuning parameters 2018-03-21 22:31:06 -07:00
David Schmenk
cb7f86a911 Order DFD by address 2018-03-21 16:23:32 -07:00
David Schmenk
e16f45f59b First pass at JIT 2018-03-21 13:00:23 -07:00
David Schmenk
3afd11fd03 New code translations 2018-03-20 21:01:59 -07:00
David Schmenk
3fc34fe028 Parsing bytecode to compile 2018-03-20 16:54:44 -07:00
David Schmenk
9701c00d1e Merge branch 'devel' of https://github.com/dschmenk/PLASMA into devel 2018-03-20 14:19:42 -07:00
David Schmenk
4dcc033ed0 Invokable JIT compiler version 2018-03-20 14:19:17 -07:00
David Schmenk
d392cbca9c Slight improvement to return address calc for ICAL/CALL 2018-03-19 15:21:15 -07:00
David Schmenk
571e8d8eb0 All out speed CFFB 2018-03-18 14:31:36 -07:00
David Schmenk
1a8f3048b5 Verify REL module tyoe before loading 2018-03-18 13:47:14 -07:00
David Schmenk
5a0d9e5751 VerifyREL module filetype before trying to load 2018-03-18 13:38:13 -07:00
David Schmenk
309f5d45b0 Shuffle routines around based on available INTERP mem 2018-03-18 13:23:39 -07:00
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