Commit Graph

63 Commits

Author SHA1 Message Date
mrdudz ffa83c32a4 clean-up of driver return codes 2023-02-26 20:03:41 +01:00
mrdudz 5bda57de87 add extra underscore to _bzero, add a test for bzero/memset 2022-08-29 23:20:48 +02:00
mrdudz f8f901b05e remove dangling spaces 2022-04-17 16:06:22 +02:00
Greg King 216bb22b20 Added a special version of a function which uses an absolute addressing mode to access the zero page.
The PCEngine needs such operands to be redirected to RAM page $20 explicitly.  Fixes #1482; fixes #1483.
2021-05-04 12:10:43 -04:00
Greg King ba0ef5938d Moved the font into a separate module in the library.
The font can be replaced, at link-time, by a custom file.
2020-07-15 04:58:32 -04:00
mrdudz 6035f1cb75 added missing gotox/gotoy functions 2020-07-15 00:17:11 +02:00
mrdudz 1f2fdbd9b1 implemented conio peek functions for PCE target 2020-07-14 14:23:58 +02:00
IrgendwerA8 08705a3fdc Changes resulting from 2nd code review 2020-02-03 20:45:09 +01:00
IrgendwerA8 ce80624f62 ctype size optimization 2020-02-03 20:45:09 +01:00
Greg King 39694d0aaa Fixed bugs; and, improved the efficiency of some pce library functions. 2018-08-30 11:48:46 +02:00
Greg King 959eff34a3 Fixed and improved some pce comments. 2018-08-30 11:48:46 +02:00
Greg King 2cc822b44e Fixed some mistakes (mostly in the documentation). 2018-08-30 11:48:46 +02:00
Greg King b5d939c858 Style changes. 2018-08-30 11:48:46 +02:00
Greg King 203200e259 Used I/O mirror locations that avoid (redirected) zero-page accesses. 2018-08-30 11:48:46 +02:00
Stefan f3ef819b43 Update crt0.s 2018-08-21 12:21:56 +02:00
Stefan 3ae5161636 CMOS optimisation 3rd
"The decimal flag D is cleared" [...]
http://shu.emuunlim.com/download/pcedocs/pce_cpu.html
2018-08-21 12:21:56 +02:00
Irgendwer 32bbacbb78
Merge branch 'master' into popptr1 2018-05-21 13:33:14 +02:00
IrgendwerA8 c95ed4b8b5 Added "popptr1" which is of common use to save some bytes. 2018-05-20 15:30:18 +02:00
Oliver Schmidt 316d8e9d37
Merge pull request #609 from polluks/master
Added missing PCE conio functions.
2018-03-11 08:58:23 +00:00
Stefan 789ce59fb5 Added missing PCE conio functions. 2018-03-11 00:49:40 +01:00
Greg King 549f09db9c Made two indirect jumps through the zero-page go through page $20 on the PC-Engine. 2018-02-28 14:59:52 -05:00
Greg King 3a0506ccb3 Changed the PC-Engine's configuration file, so that the command line can build 8K, 16K, and 32K carts.
Adjusted the PCE's document, the start-up code, and the PCE library test makefile.  That makefile shows how to post-process the linker's output file.
2018-02-23 16:06:49 -05:00
Oliver Schmidt 1976d6cd32 Removed IRQ support from joystick drivers.
All but one joystick drivers didn't use IRQs. Espsecially when the joystick driver kernel was the only .interruptor this meant quite some unnecessary overhead because it pulled in the whole IRQ infrastructure.

I was told that the one driver using IRQs (the DXS/HIT-4 Player joystick driver for the C64) can be reworked to not do it. Until this is done that driver is defunct.
2018-02-01 22:38:36 +01:00
Oliver Schmidt 7f52a770d9 Removed joy_masks array.
So far the joy_masks array allowed several joystick drivers for a single target to each have different joy_read return values. However this meant that every call to joy_read implied an additional joy_masks lookup to post-process the return value.

Given that almost all targets only come with a single joystick driver this seems an inappropriate overhead. Therefore now the target header files contain constants matching the return value of the joy_read of the joystick driver(s) on that target.

If there indeed are several joystick drivers for a single target they must agree on a common return value for joy_read. In some cases this was alredy the case as there's a "natural" return value for joy_read. However a few joystick drivers need to be adjusted. This may cause some overhead inside the driver. But that is for sure smaller than the overhead introduced by the joy_masks lookup before.

!!! ToDo !!!

The following three joystick drivers become broken with this commit and need to be adjusted:
- atrmj8.s
- c64-numpad.s
- vic20-stdjoy.s
2017-08-19 19:11:28 +02:00
Oliver Schmidt 6002e59c28 Merge pull request #453 from mrdudz/waitvsync
waitvblank for cbm targets
2017-07-18 15:38:27 +02:00
mrdudz 8eee51913a add headers/fix formatting 2017-07-18 01:04:53 +02:00
mrdudz 1abce3a2a1 rename all waitvblank() to waitvsync() 2017-07-17 23:15:05 +02:00
Christian Groessler 39a1a142e3 gamate, lynx, nes, pce: remove joy_stddrv.s
These targets don't support dynamically loaded joystick drivers.
2017-02-06 19:26:12 +01:00
Christian Groessler 034c668b15 pce/memcpy.s: remove superfluous comma in comment 2017-02-01 17:52:30 +01:00
Oliver Schmidt 13482984ca Introduced internal gotoxy that pops both parameters.
About all CONIO functions offering a <...>xy variant call
  popa
  _gotoxy

By providing an internal gotoxy variant that starts with a popa all those CONIO function can be shortened by 3 bytes. As soon as program calls more than one CONIO function this means an overall code size reduction.
2016-06-05 14:58:38 +02:00
Oliver Schmidt 69fbcb30fd Use AX paradigm for stack initalization. 2016-03-07 01:44:19 +01:00
Oliver Schmidt 419eb700b5 Renamed INITBSS to INIT and INIT to ONCE.
The way we want to use the INITBSS segment - and especially the fact that it won't have the type bss on all ROM based targets - means that the name INITBSS is misleading. After all INIT is the best name from my perspective as it serves several purposes and therefore needs a rather generic name.

Unfortunately this means that the current INIT segment needs to be renamed too. Looking for a short (ideally 4 letter) name I came up with ONCE as it contains all code (and data) accessed only once during initialization.
2016-03-06 21:27:19 +01:00
Greg King 5e36315d05 Style changes. 2015-11-07 00:29:07 -05:00
Greg King 999d57401c Added a version of memset() that uses the HuC6280's TII instruction to get more speed. 2015-11-06 23:59:19 -05:00
Greg King 8180ac20d3 Added code to handle the special case of a zero-length move.
Added more tests of memcpy() and memmove().
2015-11-02 17:09:45 -05:00
Greg King 8e8d112029 Added pce-specific substitutes for memcpy() and memmove().
They are smaller and faster because they take advantage of the pce CPU's block-copy instructions.

Also, made a small improvement to the common memmove(), so that it is similar to the pce version.
2015-10-23 18:02:21 -04:00
mrdudz 8f8f12ceab use tii instead of copy loop to copy data section to ram 2015-10-22 19:48:21 +02:00
Oliver Schmidt 023b461bb8 According to the contributor the VGA data is accessed only by the constructor. 2015-10-14 11:50:54 +02:00
Oliver Schmidt 326da85145 Consistently place constructors (and their exclusive subroutines) in "INIT". 2015-10-09 21:44:20 +02:00
Oliver Schmidt f21e3ae895 According to the contributor the prio wasn't intentionally set. 2015-10-09 13:42:25 +02:00
mrdudz 7d453a72fb use 'plot' instead of 'PLOT' 2015-09-20 12:18:41 +02:00
mrdudz 296489ba6c added interruptor support 2015-09-19 15:55:43 +02:00
mrdudz 859604407b fixed more flaws found by greg :) 2015-09-19 15:37:39 +02:00
mrdudz 088a25437d fixed VDC register assignments 2015-09-07 12:55:36 +02:00
mrdudz af2ba26c62 fix gregs complaints :) 2015-09-04 14:14:17 +02:00
mrdudz 57b8af1adc style fixes 2015-08-29 15:58:57 +02:00
mrdudz 313d2dd210 added missing chline, cvline 2015-07-19 18:06:16 +02:00
mrdudz 996c7b493e moved all notes into regular documentation 2015-07-16 21:39:13 +02:00
mrdudz e77060458a fixed joypad bits 2015-07-16 20:15:05 +02:00
mrdudz 3119be2a1e added some cbm-like gfx chars to draw lines and boxes 2015-07-16 17:33:00 +02:00