Commit Graph

757 Commits

Author SHA1 Message Date
Devine Lu Linvega cfeeb85712 Catch invalid sublabels 2023-01-14 15:08:40 -08:00
Devine Lu Linvega ffb0a9c9bc (uxnasm.c) Auto-start at 0x100 2023-01-13 10:14:20 -08:00
Devine Lu Linvega fad574816d Removed errcode from stacks 2023-01-12 20:35:42 -08:00
Devine Lu Linvega bc26d9d60d (uxn.c) Removed mask to LDR and write in Uint16 var instead 2023-01-12 19:00:54 -08:00
Devine Lu Linvega c7d574b230 (uxn.c) Unallow LDR/STR to reach outside of ram 2023-01-12 18:47:19 -08:00
Devine Lu Linvega a5442ea4fd (uxn.c) Swapped JMI/JCI 2023-01-12 09:44:27 -08:00
Devine Lu Linvega 5e1c896554 (uxnasm) endian-agnostic handling of symbols file writing 2023-01-12 08:40:33 -08:00
Andrew Alderwick f202944566 Make JMI, JCI and JSI relative. 2023-01-12 13:22:21 +00:00
Andrew Alderwick 7490666878 (uxnasm) Simplify handling of references. 2023-01-12 13:15:07 +00:00
Andrew Alderwick 230e8dda34 Optimize opcode 0 handling. 2023-01-12 13:02:04 +00:00
Devine Lu Linvega e0c2da0700 (uxnasm) Use correct address in symbol export 2023-01-11 21:01:56 -08:00
Devine Lu Linvega d5d6a7a186 Removed DEO masks, already fed to Uint8 expecting function 2023-01-09 15:54:05 -08:00
Devine Lu Linvega a1bc00ce5f (uxnasm) Fixed buffer overflow in tokenizer 2023-01-07 11:59:00 -08:00
Devine Lu Linvega 4e68dc7753 Fixed crash vector where STR/LDR can access outside of bounds 2023-01-07 11:31:03 -08:00
Devine Lu Linvega 6cbe51b4ab (uxn.c)Use same macro format sequence for all CALL opcodes 2023-01-03 11:17:55 -08:00
Devine Lu Linvega 9b8cd748ad Faster CALL opcodes 2023-01-03 10:48:17 -08:00
Devine Lu Linvega 0e7137e016 (uxnasm) Experimental implementation of JM/JC/JS runes 2023-01-02 17:45:06 -08:00
Devine Lu Linvega 5b6aad6be2 Clearer routing of LIT/CALL opcodes 2023-01-02 13:11:52 -08:00
Devine Lu Linvega cc2b2e77b0 Merge branch 'main' of git.sr.ht:~rabbits/uxn 2023-01-02 09:50:57 -08:00
Devine Lu Linvega 491e4b7435 Returned the k variable in uxn core 2023-01-02 09:50:09 -08:00
Andrew Alderwick 5cacb3f241 Fix macOS build. 2023-01-02 15:23:28 +00:00
Andrew Alderwick d94a84bc93 Port Audio to new devices scheme. 2023-01-02 15:01:55 +00:00
Andrew Alderwick c2b0667496 Update Copyright years. 2023-01-02 14:40:23 +00:00
Devine Lu Linvega a450959e9f Removed extraneous j variable 2023-01-01 18:26:28 -08:00
Devine Lu Linvega 6d0b51fa7f Added support for CALL 2023-01-01 18:03:36 -08:00
Devine Lu Linvega 22cbd38fab Do not check twice for short mode in LIT opcode 2023-01-01 16:44:18 -08:00
Devine Lu Linvega 48596a6ee7 Removed PEEK16 macro 2023-01-01 16:22:37 -08:00
Devine Lu Linvega 7f275772ef Added HALT macro 2023-01-01 16:21:05 -08:00
Devine Lu Linvega 5ac6ff4313 All devices but audio ported to new devices scheme 2023-01-01 16:13:34 -08:00
Devine Lu Linvega 2fb5f560a7 Use the File device load_rom function 2023-01-01 14:18:27 -08:00
Devine Lu Linvega 794ce1bdfd Housekeeping 2023-01-01 13:40:58 -08:00
Devine Lu Linvega bf4ee03d27 Ported screen to new device 2023-01-01 13:34:20 -08:00
Devine Lu Linvega 7afe1f39c7 Screen device is half ported to new device handlers 2023-01-01 13:19:40 -08:00
Devine Lu Linvega 679aec047a Device memory is not a member of ram 2023-01-01 12:21:30 -08:00
Devine Lu Linvega 68d706be25 Will connect devices to devold while I migrate to new router 2023-01-01 12:12:59 -08:00
Devine Lu Linvega 0fd68e96f0 Connecting new device ports to uxn core 2023-01-01 12:04:54 -08:00
Devine Lu Linvega d1ca328b98 Removed devmouse and devctrl globals 2023-01-01 11:47:52 -08:00
Devine Lu Linvega 9aefeebf25 Removed Device struct from controller device 2023-01-01 11:37:34 -08:00
Devine Lu Linvega 062bbac37d Removed Device struct from mouse device 2023-01-01 11:31:14 -08:00
Sigrid Solveig Haflínudóttir 6317b5cf18 fix uxnasm: missing semicolon 2022-12-11 04:54:58 +01:00
neauoire c97aa87faf (uxnasm)Allow more space for symbols filename, and check for length 2022-12-10 11:07:45 -08:00
neauoire 2f3954d398 Uxnasm should use BE to store addresses 2022-12-09 12:52:34 -08:00
neauoire d4c55e2f48 Uxnasm now outputs a symbols file 2022-12-09 12:30:04 -08:00
neauoire c8fc397054 Relaunch boot rom if launcher is not found 2022-11-11 21:12:30 -08:00
neauoire f59b214ac1 Added _rune 2022-11-10 20:54:53 -08:00
neauoire da5e581442 (uxnasm) Fixed issue with = rune 2022-11-09 16:40:07 -08:00
neauoire 261b574671 (uxnasm) Added support for = and - runes 2022-11-09 16:21:07 -08:00
Devine Lu Linvega 24285d1d5d Fixed issue with monochromatic 2022-09-15 11:12:57 -07:00
Devine Lu Linvega ac6e4fed10 Toggle monochromatic mode 2022-09-15 09:11:20 -07:00
Devine Lu Linvega f348d24606 Removing rawchr run 2022-08-14 12:06:23 -07:00
Devine Lu Linvega ef30fb8f8e Removed JSR JMP2r tail-call optimisations for now 2022-08-06 11:05:16 -07:00
Andrew Alderwick fb030288f9 Disable execution timeouts for now.
This is a quick hack to disable the execution timeout, while still
making the application able to exit if the window is requested to close.
Execution limits may be reintroduced with more debugging features, but
not enabled by default.
2022-06-13 09:15:20 +01:00
Andrew Alderwick 04352a8c89 Switch back to single thread for handling redraws.
This reverts commit a283264df2 while
keeping the enhancements made later on (detection of overlong
execution).

This change fixes compatibility for learn-uxn and current npe.
2022-06-10 07:58:29 +01:00
Andrew Alderwick 978713474a (uxnasm) Prevent tail call optimisation when required, fixes asma
Literals do not get squashed across absolute or relative pads and
labels, now the tail call optimisations do not occur under the same
conditions. etc/asma-test.tal was identifying serious errors with
asma.rom, which uses "JSR2 &skip JMP2r" in @asma-macro-body.
2022-06-07 20:03:12 +01:00
Andrew Alderwick 0ff2a3586d Deal with compiler warnings. 2022-06-07 19:39:43 +01:00
Devine Lu Linvega 0fafd652f1 (uxnasm) Better parent label reference counting 2022-06-06 09:42:26 -07:00
Devine Lu Linvega bf81d07113 (uxnasm)Quiet label warnings with sublabels 2022-06-06 07:57:29 -07:00
phoebos a014cd8da9 (uxnasm) only ignore [ or ] if it is a whole token
Currently, tokens beginning with a [ or ] character are completely
ignored, which forbids a macro from beginning with these characters.
Specifically, a macro can be declared eg. as `%[x { ... }` but cannot be
dereferenced as `[x`.
This patch only ignores these tokens if they have a length of 1;
otherwise the switch falls through to the default case.
2022-06-05 16:29:06 -07:00
Andrew Alderwick eb8c496feb Revert "Fix for hanging on quit", replacing it with improved code 2022-06-03 22:42:54 +01:00
Devine Lu Linvega 17fd40af43 (uxnasm) Minor cleanup 2022-05-31 14:04:54 -07:00
Devine Lu Linvega 18b73f4861 (uxnasm)Optimize tail-call for subroutines too 2022-05-31 13:55:00 -07:00
Devine Lu Linvega 3c06af41c3 Tiny change to uxnasm 2022-05-31 13:38:21 -07:00
Devine Lu Linvega 8176ab93c8 Extended timeout to 20 frames to give RPIs a chance 2022-05-31 12:29:55 -07:00
Devine Lu Linvega 56d08285b7 Fix for hanging on quit 2022-05-31 12:25:25 -07:00
Devine Lu Linvega 5a0e0c56aa Added tail-call optimization 2022-05-26 20:26:21 -07:00
Andrew Alderwick e00e74b9d0 (uxnasm) Raise an error if the output rom would be empty. 2022-05-09 21:13:28 +01:00
neauoire fec233db2a Use helpers for LIT 2022-04-18 12:33:30 -07:00
Andrew Alderwick d5253086b5 Move stack opcodes. 2022-04-18 09:45:33 +01:00
Andrew Alderwick c2ffe63cc3 (uxnasm) Fix valid macro names being rejected.
Macro names that begin with the name of an opcode were being rejected
incorrectly. “STA” would not be a valid macro name since it is an
opcode, but “STACK” should be fine.
2022-04-14 18:24:48 +01:00
neauoire d49981c4ce Removed runes 2022-04-11 17:27:33 -07:00
neauoire a3c42c23b9 Fixed issue with oprunes 2022-04-11 17:16:05 -07:00
neauoire dcc37fd0d5 Added logic/arithmetic symbols to uxnasm 2022-04-11 16:07:15 -07:00
neauoire 60315ff3dc Raised label limit in uxnasm 2022-04-11 15:34:53 -07:00
Andrew Alderwick 4c59498f14 (Windows) Fix uxnemu freezing on exit. 2022-04-09 12:22:24 +01:00
Andrew Alderwick 219cfee472 (Windows) Fix output not flushing automatically. 2022-04-09 12:21:39 +01:00
Andrew Alderwick 72c7296a47 Revert "Switch to SDL Timer for redraw handler." 2022-04-09 12:19:27 +01:00
Andrew Alderwick 96f4510a03 Switch to SDL Timer for redraw handler. 2022-04-09 11:37:51 +01:00
Andrew Alderwick a35ef6b242 Fix build warning on Windows. 2022-04-09 11:37:06 +01:00
Sigrid Solveig Haflínudóttir 2a892a23b1 uxnemu: fix a memory leak (ram) in start() and reduce types clutter 2022-03-29 19:24:15 +02:00
Andrew Alderwick 47f65c7b82 (uxncli) Load ROM using the File device functions. 2022-03-28 18:51:29 +01:00
Andrew Alderwick 42dea5b914 Replace file_i_deo and file_i_dei. 2022-03-28 18:16:44 +01:00
Sigrid Solveig Haflínudóttir 0b75afc415 uxnemu: use read() in stdin thread and close(0) at shutdown for the thread to exit 2022-03-28 17:49:54 +02:00
Sigrid Solveig Haflínudóttir f06494477a uxnemu: fix the stuck threads on quit, SOMEWHAT
Create threads in detached mode and check if events failed to be
pushed. Stdin thread is still blocking on fread hence the "SOMEWHAT".
2022-03-28 17:24:35 +02:00
neauoire c4f7483027 Arranged include order 2022-03-27 09:18:02 -07:00
Andrew Alderwick 0e7ebb69e6 (uxnemu) Interrupt infinite loops with an error. 2022-03-27 13:53:25 +01:00
Andrew Alderwick b9ff19d857 (uxnemu) Update indentation with clang-format.
The main loop now uses SDL_WaitEvent instead of SDL_PollEvent, and the
indentation level needs to change. For clarity, the previous commit
contains the code changes, while this one updates the indentation.
2022-03-27 13:18:37 +01:00
Andrew Alderwick a283264df2 (uxnemu) Use a separate thread for triggering redraws.
The main loop now uses SDL_WaitEvent instead of SDL_PollEvent, and the
indentation level needs to change. For clarity, this commit contains the
code changes, while the next one updates the indentation.
2022-03-27 13:16:40 +01:00
Andrew Alderwick f2c644f680 Move DateTime to 0xc0, add second File to 0xb0. 2022-03-26 17:54:29 +00:00
Andrew Alderwick 7ce8cc1d24 Add file reading with .File/read DEI(2). 2022-03-17 19:09:34 +00:00
Andrew Alderwick 205cc89bcb Keep a local copy of File/name; don't try to read it beyond end of RAM. 2022-03-17 18:41:55 +00:00
Andrew Alderwick 27089a77e4 Prepare for more than one File device. 2022-03-17 18:35:49 +00:00
Andrew Alderwick bca73244f0 Minor fix to audio.c. 2022-03-17 18:29:44 +00:00
Andrew Alderwick a3b87e021f Rename file_deo variables. 2022-03-17 17:08:03 +00:00
Andrew Alderwick 5dcf0a2b35 Make the UxnAudio struct private to audio.c. 2022-03-17 16:59:36 +00:00
Andrew Alderwick 1d694c43ea Fix sprite address check. 2022-03-06 20:39:27 +00:00
Andrew Alderwick fef8806493 Fix comment at end of uxn.h. 2022-03-06 18:02:34 +00:00
Andrew Alderwick 314dd5a431 screen/auto: Replace draft looping with block width control. 2022-03-06 18:02:34 +00:00
Andrew Alderwick 1b04e0814b (draft) Add looping functionality to Screen/auto. 2022-03-06 13:42:59 +00:00
Bad Diode 11c9ec8b49 Add header guard to uxn.h 2022-03-05 13:58:03 -08:00
Andrew Alderwick 0c819b9f59 clang-format 2022-02-19 01:02:47 +00:00