neauoire
222246748e
(screen.c) Inlined sprite drawing function
2023-08-05 10:31:22 -07:00
neauoire
789fb0cd8b
(screen.c) Faster sprite drawing
2023-08-05 09:59:08 -07:00
neauoire
b4d7818632
Added auto byte sprite flipping
2023-08-04 11:55:17 -07:00
Derek Stevens
ffc604fba3
run: set window title from rom
...
Signed-off-by: Derek Stevens <nilix@nilfm.cc>
2023-08-04 11:47:37 -07:00
neauoire
2ddc20b1b6
(uxnasm) Generalized lambdas as common labels
2023-08-02 19:48:48 -07:00
Cellmaker
9ca8e9623d
added microtonality to the audio device
2023-07-30 15:03:34 -07:00
Devine Lu Linvega
3a8cc42e0e
Better labels for lambdas
2023-07-29 16:24:39 -07:00
Devine Lu Linvega
32cc690539
(uxnasm) Lambdas support
2023-07-29 16:14:19 -07:00
Devine Lu Linvega
0efea06b46
Only update viewport rect on resize
2023-07-26 08:37:58 -07:00
Devine Lu Linvega
289d13aeb4
Returned emulator border
2023-07-25 21:43:26 -07:00
Devine Lu Linvega
12509b7e6b
Merged show() and gameloop()
2023-07-25 14:56:26 -07:00
Devine Lu Linvega
db2117ee0a
Resize emulator on start
2023-07-25 14:46:37 -07:00
Devine Lu Linvega
4286e0ba53
Grouped emulator routines together in uxnemu
2023-07-25 14:42:10 -07:00
Devine Lu Linvega
969f03e0ba
Uxnemu skips resizing window until reset vector is done.
2023-07-25 14:30:51 -07:00
Devine Lu Linvega
dcb434760b
Housekeeping
2023-07-24 09:48:49 -07:00
Devine Lu Linvega
26bc456a1b
(screen.c) Blending 00 only clears in accordance to sprite at addr
2023-07-23 19:32:41 -07:00
Devine Lu Linvega
867883409e
Emulator functions prefixed with emu_ instead of uxn_
2023-07-23 19:18:11 -07:00
Devine Lu Linvega
ec973c2ea6
Only set emu size on screen resize, no constant checks
2023-07-23 16:24:09 -07:00
Devine Lu Linvega
29e664c6b8
Do not re-set window size when unchanged
2023-07-23 16:10:48 -07:00
Devine Lu Linvega
4db53c1cc6
(uxn.c) Housekeeping
2023-07-23 11:06:21 -07:00
Devine Lu Linvega
cb41bdfa9a
(uxn.c) Removed PUSH/PUSH2 macros
2023-07-23 10:13:16 -07:00
Devine Lu Linvega
bf1ee0298d
(uxn.c) Fixed issue where JSRr was pushing to wrong stack
2023-07-23 09:57:32 -07:00
Devine Lu Linvega
db6f7d9fbf
(uxn.c) Aligned BRK/JCI/JMI
2023-07-23 09:52:20 -07:00
Devine Lu Linvega
bc4ec9ea5f
(uxn.c) JSI makes use of SET() macro
2023-07-23 09:41:11 -07:00
Devine Lu Linvega
6f15a96d91
(uxn.c) LIT opcodes use SET() macro
2023-07-23 09:36:18 -07:00
Devine Lu Linvega
b020732d6d
(uxn.c) PUT2 should use POKE2 macro
2023-07-23 09:21:09 -07:00
Devine Lu Linvega
41a3a6b358
(uxn) Removed z stack assignment
2023-07-22 20:53:23 -07:00
Devine Lu Linvega
92e06e2eda
Removed window padding
2023-07-22 19:52:17 -07:00
Sigrid Solveig Haflínudóttir
0c9e67b9be
uxncli: stop on EOF as there is nothing left to run (besides endless loop)
2023-07-17 00:52:52 +02:00
Sigrid Solveig Haflínudóttir
51d43a6989
screen: don't leak memory and don't crash if failed to adjust for new screen size
2023-07-17 00:50:19 +02:00
Sigrid Solveig Haflínudóttir
dbcb8ed050
retry_realpath: check before possibly writing out of bounds
2023-07-10 17:21:36 +00:00
Sigrid Solveig Haflínudóttir
784467564c
uxnemu: fix two warnings on 9front build
2023-07-10 15:37:42 +00:00
Sigrid Solveig Haflínudóttir
05356e23b1
capture_screen: check for errors
2023-07-10 15:35:35 +00:00
Devine Lu Linvega
ff6d9e39ca
(uxnemu) Fixes issue where non-zero console/type occurs even when empty, fixed by hikari_no_yume
2023-06-29 14:23:16 -07:00
Weeble
f5c816d215
(screen.c) Fix sprite draw at screen edge
...
Problem - Sprites can be drawn at X/Y coordinates >= 0xfff9 to appear
partially over the left/upper screen boundary. But the dirty-rectangle
calculation doesn't account for this, so these updates will only appear
on the screen if something *else* dirties this area of the screen. This
can be observed in /projects/examples/devices/screen.tal where these
edges of the screen show stale content.
Solution - Detect wrapping and expand the dirty rectangle appropriately.
Change screen_change to take Uint16 to make sure values are truncated to
the intended range. Ignore changes that are fully off the screen.
2023-06-29 07:41:42 -07:00
Devine Lu Linvega
e930804c4b
Do not print message on quit
2023-06-09 09:29:25 -07:00
Devine Lu Linvega
fe10cfecef
Improved usage standard message
2023-06-08 09:47:18 -07:00
neauoire
5dd7fec729
Removed clear between redraws and moved to set_window_size
2023-06-07 08:23:42 -07:00
neauoire
e147b46b55
Snake_cased some SDL variables
2023-06-07 08:03:28 -07:00
Devine Lu Linvega
1d4ae74e41
Removed multiplication from SET macro in uxn core
2023-05-17 20:39:03 -07:00
Sevan Janiyan
305b8469b0
Use the correct definition to obtain snprintf(3)
...
At some point snprintf(3) prototype became guarded off in stdio.h.
Defining _C99_SOURCE makes it visible.
On legacy Darwin, such a guard was not present so the definition
has no impact on the build, but on "modern" macos it has the desired
effect.
Build tested on OS X 10.4 and macos 10.15.
2023-05-15 08:32:48 -07:00
Sevan Janiyan
b5b3177c68
Switch to using SDL_CreateRGBSurface() SDL_CreateRGBSurfaceWithFormat() was introduced in SDL 2.0.5 whereas SDL_CreateRGBSurface() is available since SDL 2.0. This allows uxn to run on legacy systems where it's not possible to reach SDL 2.0.5 but prior versions are, such as Mac OS X Tiger.
2023-05-14 19:34:55 -07:00
Sevan Janiyan
822a7fea54
Use the audio format native to host AUDIO_S16 defaults to little endian format which causes issues when running on big endian systems. Use AUDIO_S16SYS instead which sets to whatever endian the system uxn is being built on is.
2023-05-14 19:34:55 -07:00
~d6
310ba97ef6
Improve screen vector timing somewhat.
...
This patch tries to improve the accuracy of our
screen refresh timing. Notably, it tries to ensure
we don't introduce extra delay in our timing based
on how long the screen vector takes to evaluate.
We also try to ensure we only call SDL_Delay when
we have at least 1ms to wait.
2023-05-09 13:12:23 -07:00
Devine Lu Linvega
09d9990a62
(screen) Fixes warnings
2023-05-04 20:45:52 -07:00
Devine Lu Linvega
77edd1dbbf
(screen) Renamed pixels attr to layer
2023-05-04 20:32:44 -07:00
Devine Lu Linvega
d80885ee22
(screen) Housekeeping
2023-05-04 20:17:38 -07:00
Devine Lu Linvega
98bd2a7849
(screen) Use uxn_screen global
2023-05-04 17:43:44 -07:00
Devine Lu Linvega
9416a0e813
Removed layer struct
2023-05-04 11:33:31 -07:00
Devine Lu Linvega
8f98281d89
(screen) Only repaint changed pixels
2023-05-04 11:15:16 -07:00
Sigrid Solveig Haflínudóttir
c7f3014fe9
zoom: ignore if 0, ie if the screen is somehow TOO small to do any scaling
2023-05-02 22:53:07 +00:00
Devine Lu Linvega
83ba7e05ea
Added mock behavior for the friend port
2023-05-02 10:31:33 -07:00
Matus Laslofi
d2e054346f
Declare snprintf to fix builds on macOS
...
For some reason on macOS, the functions `snprintf` and `vsnprintf` are
not in the X/Open 5 (ANSI C89) standard but rather in the X/Open
6 (ISO C99). A simplest solution seems to be to declaring the missing
functions before using them, which is what I did here. Another option
is to use the C99 standard with `#define _XOPEN_SOURCE 600`, which
seems to be an overkill for such a niche issue.
Quoting from the STANDARDS section in `man 3 snprintf` on macOS:
> ...the snprintf() and vsnprintf() functions conform to ISO/IEC
> 9899:1999 (“ISO C99”)...
2023-05-01 09:27:49 -07:00
Devine Lu Linvega
ce0cc5a352
Do not center on resize
2023-04-26 12:04:44 -07:00
Devine Lu Linvega
0da70d6bd1
Allow tiny sizes for the screen
2023-04-26 12:01:45 -07:00
Devine Lu Linvega
ebf31ecb03
(uxnemu) Removed debug line
2023-04-22 14:57:26 -07:00
Devine Lu Linvega
40d6c889bc
Set Console/type after memory is initialized
2023-04-22 14:56:12 -07:00
Devine Lu Linvega
3038d5c40b
(console) Use 0x00 for no-queue
2023-04-17 11:27:54 -07:00
Devine Lu Linvega
d8bee29626
(console) Use 0x1 for no-args
2023-04-17 11:19:37 -07:00
Devine Lu Linvega
98282cb1a6
Moved error printing to system.c
2023-04-17 11:03:11 -07:00
Devine Lu Linvega
9a882a64c7
(uxnemu) Write arguments end in console device
2023-04-17 10:41:03 -07:00
Devine Lu Linvega
1bf0ffc5e5
(uxnemu) Display usage when no roms and no params
2023-04-17 10:29:39 -07:00
Devine Lu Linvega
453f491918
(uxnemu) Display new zoom values in usage
2023-04-17 09:59:00 -07:00
Devine Lu Linvega
72e23f0260
(uxnemu) Simplified boot sequence
2023-04-17 09:48:27 -07:00
Devine Lu Linvega
d1dc143912
(uxnemu) Only set zoom scale once on boot
2023-04-17 09:36:55 -07:00
Devine Lu Linvega
a9527fbd95
(console.tal) Added input type port to example
2023-04-16 22:03:44 -07:00
Devine Lu Linvega
fbba9b304d
(console) Implemented 0x17 port with stream type based on design by zzo38
2023-04-16 21:13:50 -07:00
Devine Lu Linvega
32fa0f95c3
(uxn.c) Catch div-by-zero errors
2023-04-15 09:52:08 -07:00
Devine Lu Linvega
25cc4a1329
(screen.tal) Improved screen testing rom
2023-04-14 19:51:05 -07:00
Devine Lu Linvega
c7203de2ea
(uxn.c) Less indirections in uxn core
2023-04-14 10:30:08 -07:00
Devine Lu Linvega
99874908e4
(screen.c) Skip blit when color is 0
2023-04-14 10:19:57 -07:00
Devine Lu Linvega
0f75b123a4
(screen) sprite address wrapping
2023-04-14 10:05:15 -07:00
Devine Lu Linvega
04554dd1d3
(screen.c) Reduced number of variables indirections
2023-04-14 09:51:50 -07:00
Devine Lu Linvega
b6e6839d25
(screen.c) Removed pixel function
2023-04-13 21:57:17 -07:00
Devine Lu Linvega
d0db4f9223
(screen.c) Improved readability of the code
2023-04-13 21:33:16 -07:00
Devine Lu Linvega
891204610a
Fixed issue with screen/fill layer
2023-04-13 09:58:09 -07:00
Devine Lu Linvega
2acc7edb6f
Added comment for blending LUT
2023-04-13 09:53:05 -07:00
Devine Lu Linvega
d043ce633d
(screen.c) Faster drawing of pixel
2023-04-13 09:42:59 -07:00
Devine Lu Linvega
a44dbd9696
(screen.c) Merge all checks
2023-04-12 20:00:17 -07:00
Devine Lu Linvega
8aae16a9d0
(screen) Removed clamp function
2023-04-12 19:20:11 -07:00
Devine Lu Linvega
540847694e
Removed screen_wipe
2023-04-12 14:35:48 -07:00
Devine Lu Linvega
be138f5952
Removed FIXED_SIZE flag
2023-04-12 12:22:17 -07:00
Devine Lu Linvega
11e9b635c8
Removed mono mode to screen
2023-04-12 11:58:32 -07:00
Lior Stern
847b3f2b56
uxnemu: Add dpad support
...
More info about joyhats in SDL2:
https://wiki.libsdl.org/SDL2/SDL_JoyHatEvent
2023-04-12 11:08:48 -07:00
Devine Lu Linvega
344c5c9904
Added flip-x/flip-y to pixel fill mode
2023-04-11 11:31:36 -07:00
Devine Lu Linvega
07e8306616
(screen) Created static fill function
2023-04-11 11:11:12 -07:00
Devine Lu Linvega
24dbc7d5f8
(screen) Rename screen_clear to screen_fill
2023-04-11 10:42:32 -07:00
Devine Lu Linvega
daa421c259
(uxn.c) Cache stack pointer
2023-04-11 10:32:23 -07:00
Devine Lu Linvega
fc8400dcac
(uxn.c) Formatting
2023-04-11 10:24:54 -07:00
Devine Lu Linvega
3973bc2ab8
Made the uxn stacks private again
2023-04-11 10:14:29 -07:00
Devine Lu Linvega
6f55ed496c
(uxncli) Fixed issue with DateTime device mask
2023-04-08 08:53:56 -07:00
Devine Lu Linvega
eaf7d095ec
(system.c) The debug port will always print the stacks, even if empty
2023-04-06 17:50:03 -07:00
Devine Lu Linvega
00ed056e51
(uxnasm) Added support for label sized pads
2023-04-04 20:02:33 -07:00
Devine Lu Linvega
3b10969f9e
Fixed issue where a screen redraw might occur after it has been unset
2023-04-02 20:27:15 -07:00
Devine Lu Linvega
8b43d0d7ae
Removed redundant pixel param from screen routines
2023-03-27 08:38:54 -07:00
Sigrid Solveig Haflínudóttir
8a3c86a879
core: in plan 9 C it does not wrap around, fix the crash
2023-03-20 16:29:46 +00:00
Sigrid Solveig Haflínudóttir
37afbc25fb
file: sprintf → snprintf
2023-03-20 16:58:45 +01:00
Sigrid Solveig Haflínudóttir
562153d09e
fix a few long-standing compilation warnings
2023-03-20 16:58:09 +01:00
Devine Lu Linvega
e386c3aeaa
Fixed issue with Windows builds
2023-03-19 14:12:14 -07:00
Deadly Headshot
05fd9771ca
A more elegant solution to the Windows bugs in filepaths and MinGW compilation
2023-03-19 14:11:42 -07:00
Devine Lu Linvega
7d66d81e63
Fixed issue with datetime mask
2023-03-17 21:45:03 -07:00
Devine Lu Linvega
4f9b375895
Fixed issue with device deo mask in uxnemu
2023-03-14 12:40:31 -07:00
Andrew Alderwick
c701b95541
Detect stack overflows with greater than 255 bytes.
2023-03-13 06:04:33 +00:00
Andrew Alderwick
4464b1ec56
Correct SET values for NIP.
2023-03-13 06:03:44 +00:00
Devine Lu Linvega
b68af3d173
Replaced macros in PUT2/PUSH2
2023-03-12 18:29:08 -07:00
Devine Lu Linvega
1de2cea576
Ordered the SWP writes
2023-03-12 16:15:27 -07:00
Devine Lu Linvega
3ecbfe5e03
Make use of macros in PUT/PUSH
2023-03-12 15:54:20 -07:00
Devine Lu Linvega
4e77d3d5ae
Renamed PEEK16/POKE16 to PEEK2/POKE2
2023-03-12 15:25:52 -07:00
Devine Lu Linvega
43ce262a07
Moved opcodes side-by-side
2023-03-12 15:16:10 -07:00
Devine Lu Linvega
6c068b7774
Removed device page from addressable memory
2023-03-12 14:56:44 -07:00
Devine Lu Linvega
bdd071cab4
Archived old core
2023-03-12 14:49:58 -07:00
Devine Lu Linvega
13ab0e5d95
Temporarily override uxn.c with fast until I can port the devices macros
2023-03-11 23:00:32 -08:00
Sigrid Solveig Haflínudóttir
8420c81d52
system.h: no need to redefine the same macro
2023-03-12 02:39:20 +01:00
Devine Lu Linvega
75af0e3cad
Removed redundant mask in SFT opcode
2023-03-08 09:25:55 -08:00
Devine Lu Linvega
c4856aabf0
Added missing ports in device mask
2023-03-07 19:48:24 -08:00
Devine Lu Linvega
77c8e82419
Moved dei/deo masks into emulators
2023-03-06 10:36:24 -08:00
Devine Lu Linvega
76be67efa0
(uxn-fast.c) Housekeeping
2023-03-06 08:40:00 -08:00
Devine Lu Linvega
d08efece3d
(uxn-fast.c) Removed redundant macro
2023-03-06 08:31:08 -08:00
Devine Lu Linvega
2c20d282a8
(uxn-fast) Standardized STH opcodes
2023-03-05 11:35:53 -08:00
Devine Lu Linvega
9f4231c59a
(uxn-fast) Housekeeping
2023-03-05 11:33:33 -08:00
Devine Lu Linvega
3da461e14d
(uxn-fast) Housekeeping
2023-03-05 11:31:37 -08:00
Devine Lu Linvega
211c4afa2d
(uxn-fast) Use macros for STH
2023-03-05 11:29:58 -08:00
Devine Lu Linvega
8ae1c191d7
(uxn-fast.c) Removed function pointers, instead use exterm
2023-03-05 10:44:23 -08:00
Devine Lu Linvega
3190cf3238
Catch overflow in lit opcodes
2023-03-05 10:02:26 -08:00
Devine Lu Linvega
268ec45780
(Screen) Use fast timer if vector short is set
2023-03-04 11:07:11 -08:00
Devine Lu Linvega
3457f665a7
Use device masks for DEI
2023-03-04 10:51:23 -08:00
Devine Lu Linvega
aeceaf75bf
Removed file dei event
2023-03-03 21:04:26 -08:00
Devine Lu Linvega
9ac7f06fde
(uxn-fast) Housekeeping
2023-03-03 20:47:20 -08:00
Devine Lu Linvega
4cacc0d26b
Removed unused deo param
2023-03-03 20:37:43 -08:00
Devine Lu Linvega
8f979ec0fe
Use uxn-fast in bug until the callback masks are ported
2023-03-03 12:02:42 -08:00
Devine Lu Linvega
32539d02a9
Added file device mask
2023-03-03 11:16:24 -08:00
Devine Lu Linvega
6eac5226e1
(bunnymark) Ported to immediate opcodes
2023-03-03 11:03:38 -08:00
Devine Lu Linvega
895bfc8675
(mandelbrot.tal) Migrated to immediate opcodes
2023-03-02 20:45:19 -08:00
Devine Lu Linvega
617e3d1f41
(uxn-fast) Added overflow error
2023-03-02 19:47:24 -08:00
Devine Lu Linvega
61393d0d83
(uxn-fast) First draft
2023-03-02 16:37:14 -08:00
Devine Lu Linvega
8c4b1b0592
Use switch for console_deo
2023-03-01 12:04:05 -08:00
Devine Lu Linvega
ea0d81a9b1
(uxnasm) Fixed refs limit check
2023-03-01 11:46:44 -08:00
Devine Lu Linvega
96a19b4887
Merge branch 'main' of git.sr.ht:~rabbits/uxn
2023-03-01 11:31:10 -08:00
Devine Lu Linvega
dae025af20
Date and Screen devices DEI do no need device ptr
2023-03-01 11:28:14 -08:00
Andrew Alderwick
075747f2bd
Address compiler warning about switch case falling through.
2023-03-01 19:24:18 +00:00
Andrew Alderwick
d12b948e82
Remove unitialised memory.
2023-03-01 19:23:13 +00:00
Devine Lu Linvega
abd7ab403e
Removed POKDEV
2023-03-01 10:53:44 -08:00
Devine Lu Linvega
486a60b1bd
Removed PEKDEV macro
2023-03-01 10:49:25 -08:00
Devine Lu Linvega
53f3c18dcf
Removed GETVEC macro
2023-03-01 10:42:03 -08:00
Devine Lu Linvega
87de244d37
Replaced some macros
2023-03-01 10:35:42 -08:00
Devine Lu Linvega
18de47cc1c
Fixed issue with out-of-screen painting
2023-02-28 21:54:52 -08:00
Devine Lu Linvega
85df5f2d36
(uxnasm) Fixed issue with makeref()
2023-02-28 21:47:45 -08:00
Devine Lu Linvega
bd01e71c35
Sprite wipe helper
2023-02-28 20:54:32 -08:00
Devine Lu Linvega
5709511c7e
(screen.c) Do not shift a zero in 1bpp
2023-02-28 19:34:13 -08:00
Devine Lu Linvega
3818720eb2
Removed opacity lut
2023-02-28 17:00:21 -08:00
Devine Lu Linvega
91386f4832
(uxn.c) Housekeeping
2023-02-26 14:28:50 -08:00
Devine Lu Linvega
254f0031e5
(uxn.c) Housekeeping
2023-02-26 13:07:48 -08:00
Devine Lu Linvega
c6110a50d5
Removed param in PUSH() macro
2023-02-26 09:55:39 -08:00
Andrew Alderwick
f07775a9a2
(file device) Fix buffer overflow.
2023-02-17 21:39:14 +00:00
Devine Lu Linvega
60080d8fe8
(file device)Add / suffix to folder names
2023-02-17 10:08:00 -08:00
~d6
c61be654d6
Pass through more keysyms when control is pressed.
2023-02-14 18:33:51 -08:00
Devine Lu Linvega
1014229b8c
(uxncli)Use System/halt as exit code
2023-02-13 09:33:57 -08:00
Sigrid Solveig Haflínudóttir
c11dcc3771
remove nonsense return 0
2023-02-07 12:08:17 +00:00
Devine Lu Linvega
9f4e85b1b3
Named arguments in system_cmd
2023-02-02 10:40:47 -08:00
Devine Lu Linvega
36a70ed605
Protect system_cmd from reading out of bounds
2023-02-02 10:20:19 -08:00
Devine Lu Linvega
33d6ef8cd2
Reversed arguments in system loader
2023-02-02 09:35:05 -08:00
Devine Lu Linvega
0dcc3b4c2e
Simplified system_cmd
2023-01-31 09:49:32 -08:00
Devine Lu Linvega
e20b572c20
Moved all system memory functions into system.c
2023-01-31 09:38:06 -08:00
Andrew Alderwick
5538e539d2
Minor optimisation.
2023-01-31 17:11:54 +00:00
Andrew Alderwick
9d9d094e6a
Bare minimum changes to get Windows builds running again.
2023-01-31 17:05:01 +00:00
Devine Lu Linvega
0aa4aeff41
Load rom in chunks of 64kb
2023-01-28 18:38:37 -08:00
Devine Lu Linvega
390ae8138a
Extend loaded rom size
2023-01-28 15:05:24 -08:00
Devine Lu Linvega
fd84ff44d7
Initial draft for MMU
2023-01-28 14:45:31 -08:00
Devine Lu Linvega
22797644b5
Returned to simpler run function
2023-01-28 10:54:54 -08:00
Devine Lu Linvega
b894ba4c57
Fixed issue with screen vector run
2023-01-27 09:36:04 -08:00
Devine Lu Linvega
63108c178a
Tighter run
2023-01-26 10:56:14 -08:00
Devine Lu Linvega
b5fa665cdb
Reduce refresh requests without screen vector
2023-01-26 09:35:56 -08:00
Devine Lu Linvega
e327373950
Increased refs limit
2023-01-21 18:24:11 -08:00
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
Andrew Alderwick
550aceee23
(uxnasm) Allow writing the 0xffff byte of RAM.
2022-02-19 00:29:40 +00:00
Andrew Alderwick
8b84813c6e
(uxnasm) Raise error when memory is overwritten.
2022-02-19 00:27:28 +00:00
Andrew Alderwick
da4f0e70a5
(uxnasm) Allow returning errors from writebyte().
2022-02-19 00:26:55 +00:00
Andrew Alderwick
0ae6992089
(uxnasm) Fix calculation of usage.
2022-02-18 23:02:42 +00:00
Andrew Alderwick
f06498f6a6
Remove unused constants.
2022-02-17 18:17:17 +00:00
Liam Cooke
33940d3b5b
Fix blurry pixels on high-DPI displays
...
Creates the uxnemu window in high-DPI mode when supported. Now it looks
pixel perfect on a display with 2:1 pixel density.
Should have no effect on a 1:1 display, but I don't have access to one
to test this.
2022-02-04 08:52:31 -08:00
Andrew Alderwick
055fa9bcd0
Close some security holes.
2022-01-23 23:17:54 +00:00
Andrew Alderwick
deace3b79a
Remove old debugging support.
2022-01-23 19:35:18 +00:00
Andrew Alderwick
edd05ed1d1
Fix compiler warning.
2022-01-23 11:23:52 +00:00
Andrew Alderwick
6577d3c8a0
Remove jump-based infinite loop detection.
2022-01-23 11:17:07 +00:00
Andrew Alderwick
fbd9c49f84
Fix resize when only width or height are set.
2022-01-20 01:34:44 +00:00
Andrew Alderwick
d186b7a038
Perform resizing of SDL screen during redraw.
2022-01-20 01:24:22 +00:00
Andrew Alderwick
cd0ca2eb17
Move clamp() to screen.c.
2022-01-20 01:24:20 +00:00
Andrew Alderwick
cf84a5d661
Prevent invalid screen sizes.
2022-01-19 18:30:32 +00:00
Andrew Alderwick
2c47425c41
Remove trailing space in stack printing
2022-01-14 07:59:42 +00:00
neauoire
4ea8cc2819
Removed extra specing around bytes in stack printing
2022-01-13 14:52:37 -08:00
neauoire
fc659b9094
Removed devsystem
2022-01-13 10:55:02 -08:00
neauoire
b48db8278f
(monospace.tal) Added a 8x8 label drawing example
2022-01-13 10:25:31 -08:00
neauoire
f1cc022e9b
Uxncli now uses the system_inspect
2022-01-13 08:34:32 -08:00
neauoire
44a7f5ef0e
Removed old debug files
2022-01-13 08:26:35 -08:00
neauoire
031f63a13c
Print stack with DEO on 0x0f
2022-01-13 08:25:59 -08:00
neauoire
ee4308196a
Starting a debugging device
2022-01-12 21:22:33 -08:00
neauoire
6a6a2ec383
Removed external memory bank
2022-01-12 18:56:59 -08:00
neauoire
459855d825
Removed supervisor
2022-01-12 18:40:51 -08:00
Andrew Alderwick
696ef03f12
Remove goto/label for jumps.
2022-01-12 13:09:45 +00:00
Andrew Alderwick
41de322a75
Add support for interrupting Uxn during execution.
2022-01-12 11:33:49 +00:00
Andrew Alderwick
b1ba95336c
Remove unistd.h from uxnemu.c.
2022-01-11 23:50:41 +00:00
neauoire
5e2bb92e4c
Removed unistd from uxncli
2022-01-11 15:13:12 -08:00
neauoire
06b694d406
Removed ram helper in uxn
2022-01-11 14:51:25 -08:00
neauoire
61c7f9f0c1
Removed device globals
2022-01-11 14:38:55 -08:00
neauoire
cd30b48665
Rename memory banks
2022-01-11 14:16:27 -08:00
neauoire
ede186b226
Minor cleanup
2022-01-11 11:07:25 -08:00
neauoire
38d2c7cbd7
(boot.rom) Renamed to launcher.rom
2022-01-10 20:35:34 -08:00
Andrew Alderwick
9fcb0c335b
Remove use of snprintf.
2022-01-10 11:35:45 +00:00
Andrew Alderwick
0d242d704e
Correct cast for snprintf
2022-01-10 09:59:00 +00:00
neauoire
37497060dc
Removed stdlib from screen header
2022-01-08 19:38:53 -08:00
neauoire
5004ee1339
The file device cannot write on the supervisor
2022-01-08 10:03:21 -08:00
neauoire
c866b0938a
Use proper memory size
2022-01-07 16:51:43 -08:00
neauoire
8fdb039926
Merge branch 'main' of git.sr.ht:~rabbits/uxn
2022-01-07 16:47:01 -08:00
neauoire
f5278f3a13
Removed device vector variable
2022-01-07 16:46:50 -08:00
Sigrid Solveig Haflínudóttir
eeb0dc9e45
put back newlines to avoid compilation warnings
2022-01-07 23:46:39 +01:00
neauoire
180984f8fb
Removed device port masks
2022-01-07 11:48:09 -08:00
neauoire
b328a4e87d
Commented the fkey controls temporarily
2022-01-07 11:36:04 -08:00
neauoire
38334a633b
Pass fn keys directly to the supervisor
2022-01-07 10:55:09 -08:00
neauoire
19a8e56cd6
Started device port masking
2022-01-07 10:02:28 -08:00
neauoire
41d0911d13
The supervisor program now uses its own vectors
2022-01-06 19:51:34 -08:00
neauoire
1a7af4d8d0
Supervisor is now watching the device page
2022-01-06 19:20:50 -08:00
neauoire
28b9265042
Let us make a device page in shadow memory
2022-01-06 18:49:54 -08:00
neauoire
a82f7d79f8
Defined the location of stacks in shadow memory
2022-01-06 17:29:34 -08:00
neauoire
4c6821189e
Merge branch 'main' of git.sr.ht:~rabbits/uxn
2022-01-06 14:32:35 -08:00
neauoire
ed1f6e6263
Connected error reporting and the hypervisor
2022-01-06 14:32:28 -08:00
Sigrid Solveig Haflínudóttir
d21bfb20e0
SDL_PIXELFORMAT_XRGB8888 → SDL_PIXELFORMAT_RGB888 (for older SDL2 versions)
2022-01-06 18:24:35 +01:00
neauoire
3cc2ba98f0
First hypervisor
2022-01-05 20:44:33 -08:00
neauoire
b9a37077c3
Started work on the hypervisor
2022-01-05 19:48:51 -08:00
Sigrid Solveig Haflínudóttir
4cd52209ac
make the SDL texture XRGB8888 (no alpha) and remove padding pixels from it
2022-01-05 22:45:49 +01:00
Andrew Alderwick
f48a09c482
Stop LeakSanitizer complaining about Uxn's RAM.
2022-01-05 18:18:13 +00:00
Andrew Alderwick
4cbb661f48
Implement System/vector for debugging.
2022-01-05 17:27:24 +00:00
Andrew Alderwick
0fd288de79
Fix compiler suggestion.
2022-01-05 14:37:37 +00:00
Andrew Alderwick
291cb3d1a2
Simplify stack determination logic.
2022-01-05 14:02:06 +00:00
Andrew Alderwick
646d79fff5
Factor out common parts of system_dei/deo.
2022-01-05 13:29:18 +00:00
Andrew Alderwick
c77799dac2
Just pass an error code to uxn_halt.
2022-01-05 13:07:04 +00:00
Andrew Alderwick
c37831749f
Split uxn_halt into beginnings of System device file.
2022-01-05 13:03:17 +00:00
Andrew Alderwick
c827fdc960
Move errored stack identification to after error handling label.
...
Partial revert of commits 1ce8b9bc27
(and
c296187ea9
).
2022-01-05 01:27:27 +00:00
Andrew Alderwick
c296187ea9
Rename ERROR/err to FAULT/fault
2022-01-04 02:15:38 +00:00
Andrew Alderwick
2a825de2fd
Switch void context increments from pre to post
2022-01-04 02:05:32 +00:00
Andrew Alderwick
1ce8b9bc27
Bring back working/return stack identification on errors
2022-01-04 02:05:32 +00:00
Andrew Alderwick
7e3353ea72
Rename u->ram.dat to u->ram, u->ram.ptr to pc.
2022-01-04 01:40:48 +00:00
Andrew Alderwick
205f63cc43
Clear up SDL_KEYDOWN/SDL_TEXTINPUT logic
2022-01-04 01:12:17 +00:00
neauoire
4789d8ccef
Removed peek16
2022-01-03 13:29:47 -08:00
neauoire
0ee477615b
Removed poke16
2022-01-03 13:23:57 -08:00
cancel
416389bcf4
Improvements to uxn.c
2022-01-03 13:41:20 +00:00
cancel
1cab0dffeb
Removed unused fields in uxn.h
2022-01-02 23:26:13 +00:00
Andrew Alderwick
52598bdad7
Remove uxn-fast.c since new reference core is almost as fast.
2022-01-02 23:05:28 +00:00
cancel
6980abacfc
Refactor uxn.c.
2022-01-02 23:03:06 +00:00
neauoire
ecc2654165
Prefixed helpers in uxn.c
2022-01-02 11:04:13 -08:00
neauoire
cca1253376
Use calloc for memory array
2022-01-01 15:20:48 -08:00
Sigrid Solveig Haflínudóttir
22c6e07fca
emu: make sure to handle key down event if the same key is up at the same frame
2021-12-29 23:32:18 +01:00