1
0
mirror of https://github.com/cc65/cc65.git synced 2024-08-28 18:29:20 +00:00
Commit Graph

2343 Commits

Author SHA1 Message Date
mrdudz
859604407b fixed more flaws found by greg :) 2015-09-19 15:37:39 +02:00
Oliver Schmidt
45313075fe Merge pull request #208 from greg-king5/big-jump
Improve the longjmp() and setjmp() functions.
2015-09-11 21:06:50 +02:00
Greg King
dbf0adcec9 Improved longjmp() and setjmp(). 2015-09-11 14:18:22 -04:00
Greg King
031bd2ebf0 Fixed the random-seed generators for the Commodore targets.
They use a byte from the time counter; but, it is stored in big-endian order.
2015-09-11 10:03:07 -04: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
d0a1dc73b8 Merge remote-tracking branch 'upstream/master' into pcenginetarget 2015-09-04 13:40:52 +02:00
mrdudz
57b8af1adc style fixes 2015-08-29 15:58:57 +02:00
Greg King
9c55bd1c96 Fixed bugs in the interface for C-level interrupt handlers.
* Added an important ".code" directive.

* Import a linker-created zero-page symbol as an absolute address; then, convert it to zero-page when it is used.

Fixes bug report #198.
2015-08-26 19:33:34 -04:00
Oliver Schmidt
657cc003be Merge pull request #184 from greg-king5/fastcall
Update some fastcall info.
2015-07-23 17:11:49 +02:00
Greg King
52eec1f236 Updated the fastcall information in a document and two Assembly files. 2015-07-22 13:31:14 -04:00
Oliver Schmidt
673b27cc1b Added empty IRQ backend.
The driver kernels all require IRQ handling even if the actual drivers don't make use of it. So in order to successfully link a NES program using the joystick and/or TGI driver there has to be at least a "dummy" IRQ backend.
2015-07-22 11:36:54 +02:00
mrdudz
0e29a0993f Merge remote-tracking branch 'upstream/master' into pcenginetarget 2015-07-20 18:42:04 +02:00
mrdudz
313d2dd210 added missing chline, cvline 2015-07-19 18:06:16 +02:00
Greg King
a9982de475 Added _directerrno() to the sim6502/sim65c02 libraries. 2015-07-18 18:23:08 -04:00
Greg King
0b6bcb565e Fixed a hardware-stack leak. 2015-07-17 20:36:56 -04: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
mrdudz
d229d51be5 make sure clocktick starts at zero 2015-07-16 16:54:40 +02:00
mrdudz
21ef6b8510 fixed screensize, timertick, revers mode 2015-07-16 16:00:32 +02:00
mrdudz
1414411bba added waitvblank and fixed get_tv 2015-07-15 19:46:26 +02:00
mrdudz
c3d45e4c47 fixed issues found by gregg 2015-07-15 13:18:12 +02:00
mrdudz
ac27ed301a _tickcount -> tickcount 2015-07-14 19:55:41 +02:00
mrdudz
83391ab67c some more tweaking, added docs page 2015-07-14 17:22:47 +02:00
mrdudz
515a61a302 added imports for conio init to conio functions, so the constructor will get linked and called automatically 2015-07-13 12:10:09 +02:00
mrdudz
9e1d39a409 more cleanup and fixing 2015-07-12 16:40:52 +02:00
mrdudz
891cb97b2f more cleanup, joystick works again 2015-07-12 14:27:24 +02:00
mrdudz
21999b081f simple conio test works again 2015-07-12 10:32:55 +02:00
mrdudz
877fd532c2 Merge remote-tracking branch 'upstream/master' into pcenginetarget 2015-07-11 13:05:26 +02:00
Greg King
146daa1d0a Made some string output functions reject an invalid NULL buffer pointer. 2015-07-09 14:46:28 -04:00
Greg King
219905c6bc Fix two string output functions' handling of their buffer-size parameter.
That parameter's type is unsigned; but, the functions return an int.  If the size is too big for a signed integer, then return an error code.
If the size is zero, then don't write anything into a buffer (the buffer pointer may be NULL).  But, do format and count the arguments.
2015-07-09 10:43:45 -04:00
Greg King
08e18c93c5 Added explicit settings of calling conventions in pointer-to-function declarations in system and library headers. 2015-06-22 00:15:48 -04:00
Oliver Schmidt
fe023a1218 Merge pull request #151 from greg-king5/fastcall
Make __fastcall__ be the default calling convention.
2015-05-26 22:39:33 +02:00
Oliver Schmidt
0f1c3b0181 Fixed comment. 2015-04-27 09:39:50 +02:00
Oliver Schmidt
1748bb1ab6 Use well-known location BLTU2 for "memmove()". 2015-04-26 14:09:21 +02:00
Oliver Schmidt
3c1cd0d867 Added cmdline support to exec().
The starting point is the CALL2051:REM <cmdline> approach. It uses the BASIC input buffer at $200. ProDOS stores the name of the loaded program at $280 (which we want for argv[0]) leaving us with 128 char buffer. If we run the program via exec() we don't need the CALL2051 but only the REM token (which is just one char). So have a maximum cmdline length of 126 (plus a terminating zero).

There's no specification for ProDOS BIN file cmdline parameters so exec() just supports the CALL2051:REM <cmdline> approach. In contrast ProDOS SYS files allow for a 'startup filename'. A ProDOS filename is short than 126 chars so having exec() general cut the cmdline after 126 chars seems reasonable. If the SYS file we exec() allows for less we cut the cmdline further.

Our 'loader.system' SYS file however allows for an unusually 126 char long "startup filename" as it is targeted towards cc65 BIN porgrams with their 126 cmdline length.
2015-04-26 14:09:20 +02:00
Oliver Schmidt
ae4f9336b3 Behave more like BASIC.SYSTEM and allow for argv[0]. 2015-04-19 21:59:05 +02:00
Oliver Schmidt
24e902059c Allow up 127 chars of cmdline for programs started by the loader. 2015-04-19 21:17:46 +02:00
Stephan Mühlstrasser
7fb206e381 Macro-based implementation of screen layout configuration modules. 2015-03-23 19:02:45 +01:00
Stephan Mühlstrasser
8b10534429 Improved fix with suggestions by Greg King. 2015-03-15 00:40:42 +01:00
Stephan Mühlstrasser
4836cf9842 Fix bad tabbing 2015-03-14 00:06:00 +01:00
Stephan Mühlstrasser
72a9e331e3 Fixed uninitialized use of low byte of address "load". 2015-03-14 00:01:12 +01:00
Greg King
38231a5cc6 Made _afailed() and uncompress() be fastcall functions. 2015-03-13 07:35:47 -04:00
Greg King
66d79da3c2 Made cbm_load() be a fastcall function. 2015-03-13 05:46:40 -04:00
Greg King
a798b1d648 Made __fastcall__ be the default calling convention for non-variadic functions. 2015-03-10 05:53:52 -04:00
Greg King
9dbce378fe Described how to change the boot loader's actions. 2015-03-08 10:06:00 -04:00
Greg King
2d50267bd8 Added a second OSI C1P program file format.
Unlike the first format, the new format is already loadable; it doesn't need to be converted.
2015-03-07 16:39:44 -05:00
Stephan Mühlstrasser
981ab10fac Replaced magic numbers with symbolic constants. 2015-03-01 20:53:57 +01:00
Stephan Mühlstrasser
1d6aa84d9a Optimization by replacing absolute with relative jump. 2015-02-28 20:29:08 +01:00
Stephan Mühlstrasser
4737ad93d5 Temporarily undo the 25 line change.
This is not yet consistent with the first visible character on
the screen.
2015-02-25 23:50:02 +01:00
Stephan Mühlstrasser
52865410d2 Fix wrong expression for top of C stack.
Thanks to Greg King for this fix.
2015-02-25 23:48:57 +01:00
Stephan Mühlstrasser
8deeb2c59e Match screen dimensions as in BASIC.
Experiments show that under BASIC by default
25 rows by 24 columns are used. 24 columns is
also the width that is fully displayed on a real
C1P on the monitor. conio now matches that now.
2015-02-23 23:07:00 +01:00
Stephan Mühlstrasser
772a98d1ec Merge branch 'c1p_kbhit' into c1p_scrsize 2015-02-23 19:17:54 +01:00
Stephan Mühlstrasser
83f16425c9 Loading A once before the loop is sufficient. 2015-02-23 19:17:27 +01:00
Stephan Mühlstrasser
cc2dc578fe Merge branch 'c1p_kbhit' into c1p_scrsize 2015-02-23 19:11:50 +01:00
Stephan Mühlstrasser
73ae95bd1c Clear bottom line when scrolling.
Fix provided by Jeff Tranter.
2015-02-23 19:06:22 +01:00
Stephan Mühlstrasser
c3b014560e Consistent naming for screen dimension constants. 2015-02-22 19:55:19 +01:00
Stephan Mühlstrasser
a7dabcda47 Define the screen dimension defines in a more meaningful way. 2015-02-22 16:27:13 +01:00
Stephan Mühlstrasser
965aded1ba Merge branch 'c1p_kbhit' into c1p 2015-02-22 11:45:02 +01:00
Stephan Mühlstrasser
7a975fa182 Mask control keys from first keyboard scan row. 2015-02-21 22:52:01 +01:00
Stephan Mühlstrasser
1b9aa7c6f3 Use character constants where appropriate. 2015-02-21 20:53:16 +01:00
Stephan Mühlstrasser
222668c016 Implemented a one-character buffer for kbhit() and cgetc().
If kbhit() detects that a key is pressed, it fetches and
buffers the character. If cgetc() detects a buffered character,
this one is returned instead of fetching one with the PROM
routine.
2015-02-21 20:24:58 +01:00
Stephan Mühlstrasser
b1969ac16a kbhit() function and scrolling.
Patch provided by Jeff Tranter.
2015-02-19 22:19:21 +01:00
Oliver Schmidt
cbb6f82b99 Merge pull request #146 from smuehlst/c1p
Add target "osic1p" for Ohio Scientific Challenger 1P
2015-02-18 20:17:03 +01:00
Stephan Mühlstrasser
92e75e9df8 Incorporated another round of feedback for pull request.
Adjusted comment formatting in several assembler files.
Removed dummy kbhit() function, as it's better to get a linker
error than an implementation that does the wrong thing.
2015-02-18 18:38:42 +01:00
Oliver Schmidt
3ed3e98ec7 Moved interrupt enabling to the interrupt constructor. 2015-02-16 15:43:08 +01:00
Stephan Mühlstrasser
e178a33d29 Fix high byte of return value, optimized. 2015-02-13 19:53:02 +01:00
Stephan Mühlstrasser
88df129215 Add dummy kbhit(), remove redundant documentation for cgetc(). 2015-02-12 22:54:21 +01:00
Stephan Mühlstrasser
3601c3fb9b Include "extzp.inc" instead of using direct imports of symbols. 2015-02-12 22:12:51 +01:00
Stephan Mühlstrasser
5d2e748bd4 Don't use .byte in BSS segments, as value is lost anyway. 2015-02-12 21:44:00 +01:00
Stephan Mühlstrasser
94f83ea439 Replace zeropage variable with standard tmp variable. 2015-02-12 21:29:19 +01:00
Stephan Mühlstrasser
b1169cbb23 Remove unneeded commented code. 2015-02-12 21:12:24 +01:00
Stephan Mühlstrasser
679f5aa675 Use constants for screen width and height. 2015-02-12 20:54:47 +01:00
Stephan Mühlstrasser
5063e0ecca Incorporated feedback for initial pull request. 2015-02-11 19:21:17 +01:00
Stephan Mühlstrasser
498fbb7ed7 Fix formatting, replace tabs with spaces. 2015-02-08 17:35:40 +01:00
Stephan Mühlstrasser
fc237faba7 Add missing newline 2015-02-08 17:12:54 +01:00
Stephan Mühlstrasser
4e03d7448c Merge branch 'master' of https://github.com/cc65/cc65 into c1p 2015-02-08 15:58:42 +01:00
Stephan Mühlstrasser
7754c573d8 Jump to boot prompt after main program exits. 2015-02-05 23:21:59 +01:00
Stephan Mühlstrasser
072e5e71c2 Video RAM mapping table was off by two bytes.
Fix contributed by Jeff Tranter.
2015-02-05 23:01:19 +01:00
Stephan Mühlstrasser
14c7e9fd16 Rename c1p target to osic1p 2015-02-03 22:42:35 +01:00
Stephan Mühlstrasser
b1f764bdc9 Minor cleanup of unnecessary newlines. 2015-01-11 20:08:39 +01:00
Oliver Schmidt
6b3083053c Merge pull request #143 from greg-king5/basic-stub
Support Atmos command line
2015-01-10 23:46:43 +01:00
Greg King
fccd2bf66a Added more info to a comment. 2015-01-09 22:19:35 -05:00
Greg King
43342366ed Added comments that say why the ZPSAVE1 and ZPSAVE2 segments must be together. 2015-01-08 17:07:28 -05:00
Greg King
22e06c41d1 Fixed a bug that had padded Atmos binaries with 25 bytes too many. 2015-01-08 03:51:20 -05:00
Greg King
d61feae7f8 Added a comment. 2015-01-07 10:51:48 -05:00
Stephan Mühlstrasser
aedefb81ec Adapted to cc65 assembler coding conventions
Assembler statements are written in lowercase.
2015-01-05 21:28:39 +01:00
Stephan Mühlstrasser
91e21ae024 Merge branch 'master' of https://github.com/cc65/cc65 into c1p 2014-12-02 20:42:54 +01:00
Stephan Mühlstrasser
fd5dca08fb Removed unused constants
They were left-overs from early attempts to implement character output.
2014-12-02 18:20:54 +01:00
Stephan Mühlstrasser
e9a90940b1 Dummy implementation for osmapperrno
Copied from atmos implementation
2014-11-30 21:05:36 +01:00
Stephan Mühlstrasser
b47a1d99ec Added scrsize() function. 2014-11-30 16:01:43 +01:00
Stephan Mühlstrasser
945ad167df Undo accidental rename of wrong scrsize.s file. 2014-11-30 16:00:55 +01:00
Stephan Mühlstrasser
fa770bada8 Added scrsize() function. 2014-11-30 15:58:59 +01:00
Stephan Mühlstrasser
3867be7166 Added cclear() and cclearxy() implementations. 2014-11-30 14:25:16 +01:00
mrdudz
1365afa845 more hacking 2014-11-30 11:20:57 +01:00
Stephan Mühlstrasser
9b9622d09a Added chline and cvline implementation from CBM implementation. 2014-11-29 22:13:07 +01:00
Stephan Mühlstrasser
6dc8621fa5 Set cursor in top left corner in clrscr()
as documented in conio.h
2014-11-29 20:50:48 +01:00
Stephan Mühlstrasser
ac88639f4a Implemented cursor functionality. 2014-11-29 20:07:30 +01:00
Stephan Mühlstrasser
7dac57f60d Added gotox() and gotoy() implementations. 2014-11-29 15:52:42 +01:00