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
mrdudz
4275b82117
added compiler/assembler target, lib compiles
2014-11-29 15:35:20 +01:00
mrdudz
86e6abfcd9
added compiler/assembler target, lib compiles
2014-11-29 15:13:40 +01:00
mrdudz
faccc5a3d6
initial import, completely untested, does not compile yet
2014-11-29 14:18:48 +01:00
peterferrie
bbd419f365
assert parm count
2014-11-24 10:07:16 -08:00
Stephan Mühlstrasser
1e88032608
Copied wherex, wherey and ctype implementations from CBM
2014-11-23 15:56:38 +01:00
Stephan Mühlstrasser
0c62ddf123
Enhancements for cursor calculation
...
Fix handling of newlines.
Wrap around to top of screen when newline occurs
in last line.
Initialize screen width in crt0.s.
2014-11-23 15:32:48 +01:00
Stephan Mühlstrasser
12ca22c265
Remove unnecessary commented code.
2014-11-22 18:14:52 +01:00
Stephan Mühlstrasser
0a6afb59c0
Switch to assembler for cputc implementation.
2014-11-22 01:07:55 +01:00
peterferrie
0c204725bc
implement ProDOS seek
2014-11-21 16:04:11 -08:00
Stephan Mühlstrasser
5c8cd00dd5
Started cputc and related functions implementation.
2014-11-18 23:18:51 +01:00
Stephan Mühlstrasser
a20bba0f1e
Adapt to assembler coding conventions.
2014-11-16 21:57:59 +01:00
Stephan Mühlstrasser
14958949c2
Direct use of monitor function instead of subroutine call.
2014-11-16 21:13:18 +01:00
Greg King
09e50d433d
* Changed the way that Atmos programs are started.
...
- Put a BASIC-language stub at the beginning.
- Removed the Autostart flag.
Those changes make it easy to give command-line arguments to a program.
* Made the Atmos configure file accept a special symbol definition on ld65's command line. We can use "__RAMEND__" to increase the amount of RAM that's available to programs.
2014-11-09 06:32:11 -05:00
Stephan Mühlstrasser
4c46287928
Begin to implement C1P conio features.
2014-11-09 00:58:32 +01:00
Stephan Mühlstrasser
5d7a24241c
Implemented clrscr routine for C1P
2014-11-08 01:14:46 +01:00
Stephan Mühlstrasser
0b186407f1
Merge https://github.com/cc65/cc65 into c1p
2014-11-02 16:17:16 +01:00
Greg King
74c2415795
Changed literal zeroes of the style "#>0" into the style "#>$0000".
2014-09-10 19:15:07 -04:00
Oliver Schmidt
e702832e80
Merge pull request #130 from greg-king5/caps-lock
...
Disable the Atmos keyboard's CAPS LOCK for stdio too.
2014-09-09 12:55:30 +02:00
Greg King
970af0cdb2
Swapped the locations of a constructor and a destructor in a source file.
...
The constructor now is first.
Used a more expressive literal zero.
2014-09-04 17:37:41 -04:00
Greg King
c7969a78b0
Refined the comments in the target start-up files.
...
Fixed typo errors. Made the comments consistent across all those files.
2014-08-24 10:10:20 -04:00
Greg King
145a010e59
Moved the CAPS LOCK code out of the startup file, and into its own file.
2014-08-24 10:05:45 -04:00
Greg King
58b73a2842
Disable the Atmos keyboard's CAPS LOCK for both conio and stdio.
2014-08-21 11:04:23 -04:00
Greg King
8324221360
Improved some multiplication code.
2014-07-17 07:11:14 -04:00
Greg King
c6e7d835ef
Fixed a buffer overrun bug.
2014-07-17 07:05:10 -04:00
Greg King
0390c34e88
Changed multi-line C comments into another style.
...
The left side doesn't look unbalanced.
2014-06-30 16:51:07 -04:00
Oliver Schmidt
2c975d3642
Create static drivers directly from source files.
...
Up to now static drivers were created via co65 from dynamic drivers. However there was an issue with that approach:
The dynamic drivers are "o65 simple files" which obligates that they start with the 'code' segment. However dynamic drivers need to start with the module header - which is written to. For dynamic drivers this isn't more than a conceptual issue because they are always contain a 'data' segment and may therefore only be loaded into writable memory.
However when dynamic drivers are converted to static drivers using co65 then that issue becomes a real problem as then the 'code' segment may end up in non-writable memory - and thus writing to the module header fails.
Instead of changing the way dynamic drivers work I opted to rather make static driver creation totally independent from dynamic drivers. This allows to place the module header in the 'data' segment (see 'module.mac').
2014-06-04 23:50:18 +02:00
Oliver Schmidt
2bc4634860
Normalized style.
...
We don't use .ifndef .else .endif
2014-06-03 18:30:11 +02:00
Oliver Schmidt
99f0a56f63
Merge pull request #122 from groessler/a5200
...
new target: Atari 5200 console
2014-05-30 22:52:51 +02:00
Christian Groessler
a4fda71510
move atari5200 behind atari and atarixl in TARGETS list
2014-05-30 13:39:09 +02:00
Christian Groessler
fa7cdf0214
remove atari5200.mac
2014-05-30 13:38:29 +02:00
Christian Groessler
f54ef4efe4
provide CLK_TCK and CLOCKS_PER_SEC values for atari5200
2014-05-29 13:23:45 +02:00
Greg King
b8e65aca5a
Used longer error text.
...
Added more codes and messages.
2014-05-28 23:01:48 -04:00
Christian Groessler
4286e55453
fix build error
2014-05-29 01:50:41 +02:00
Christian Groessler
245a69a043
don't use scrcode for numbers
2014-05-29 00:18:22 +02:00
Christian Groessler
0bcb615d33
remove TABs
2014-05-28 23:39:31 +02:00
Christian Groessler
8c5aebef81
cleanups and add comments
2014-05-28 23:38:22 +02:00
Christian Groessler
98195a516e
check trigger button (TRIGx); correctly report joystick count depending
...
on 5200 console version
2014-05-28 00:35:49 +02:00
Christian Groessler
ef1e96aff0
small optimization
2014-05-27 01:50:22 +02:00
Christian Groessler
b6f712ef58
not a dummy implementation anymore...
2014-05-27 01:47:37 +02:00
Greg King
3d6f54b7a6
Updated the CBM error tables.
...
* Added more mappings between DOS and C codes.
* Changed generic error messages into specific ones.
2014-05-26 09:03:43 -04:00
Greg King
2cc26e6e23
More conforming to the cc65 project's apparent writing style.
2014-05-23 16:52:02 -04:00
Greg King
a92f51fea5
Conformed to the cc65 project's coding style.
2014-05-23 00:35:19 -04:00
Greg King
0ec8c8cea7
Added a quoted-token parsing function.
2014-05-20 16:33:16 -04:00
Christian Groessler
0f2f19ef5b
some CONIO fixes
2014-05-16 02:10:19 +02:00
Christian Groessler
8cb68071cd
clrscr for Atari 5200 default conio screen
2014-05-12 03:05:21 +02:00
Christian Groessler
82544b8678
add joystick driver -- trigger buttons are not queried yet
2014-05-12 03:03:44 +02:00
Christian Groessler
1532ad6792
add dummy irq.s
2014-05-12 03:02:17 +02:00
Greg King
f82a43b98d
Fixed the comments to say where the actual Left-Hand Side and Right-Hand Side are put.
...
A description of positions [left, right] is appropriate more for C code than for Assembly code. (A description of timing [first argument, second argument] is more appropriate for the way that Assembly code is written.)
2014-05-11 10:43:06 -04:00
Greg King
228b9d1718
Added a fast subroutine to multiply two signed 8-bit numbers.
2014-05-11 01:08:27 -04:00
Oliver Schmidt
63b5f75a7f
Merge pull request #114 from greg-king5/phantom
...
Added the phantom-key exorcism code to the other C128 mouse drivers.
2014-05-09 19:30:51 +02:00
Greg King
a27e7562fd
Added comments that explain why some instructions are implied.
2014-05-05 13:55:14 -04:00
Greg King
7d512ca238
Back-migrated some phantom-key rejection optimizations.
2014-05-05 06:28:19 -04:00
Greg King
667f8229c0
Migrated the phantom-key exorcism code to the other C128 mouse drivers.
2014-05-05 05:30:31 -04:00
Greg King
047d9abc68
Added the long-missing driver-flags byte to the potentiometer (mouse) drivers.
2014-05-05 04:16:04 -04:00
Oliver Schmidt
d6c3bd29ac
Renamed JUMPTABLE and cleaned up module.cfg.
...
This change was suppsed to fix the issue that the former JUMPTABLE is merked as 'ro' while it is actually written to in several scenarios. When drivers are converted using co65 and then compiled into ROMs the JUMPTABLE isn't copied to RAM and therefore the write operations in question fail.
However unfortunately I didn't succeed in changing that :-( Just setting the former JUMPTABLE to 'rw' broke the drivers. So I placed the DATA segment directly after the former JUMPTABLE segment. This made the drivers converted with co65 work again - obviously after changing libsrc/Makefile:235 from '--code-label' to '--data-label'. But the actual dynamic drivers still didn't work as the former JUMPTABLE wasn't placed as the beginning of the loaded file anymore. That effect could be changed by exchanging src/ld65/o65.c:1391 with src/ld65/o65.c:1394 but doing so broke the drivers again :-((
2014-05-01 21:44:39 +02:00
Oliver Schmidt
2a3fbc6e36
Merge pull request #109 from groessler/something_to_pull2
...
Proposal: workaround for "phantom" key presses in the C128 "joystick" mouse driver...
2014-04-28 22:18:11 +02:00
Christian Groessler
6307815ada
Correctly map out ROM when needed in the "phantom keys" workaround.
2014-04-26 11:58:13 +02:00
Christian Groessler
f290c1aa28
remove build warning
2014-04-25 13:21:54 +02:00
Christian Groessler
92b32d7d0e
atari5200 update: simple conio "hello world" works now
2014-04-25 03:02:44 +02:00
Christian Groessler
ec417c0dc5
Merge remote-tracking branch 'upstream/master' into a5200
2014-04-25 02:07:44 +02:00
Christian Groessler
54be6de9bc
Workaround for "phantom" key presses in the C128 "1351" mouse driver.
2014-04-25 00:22:23 +02:00
Christian Groessler
401e18d982
Put mouse cursor shape definition into .rodata.
2014-04-24 02:04:08 +02:00
Christian Groessler
4406307c2f
Make the hooking and unhooking of the interrupt interrupt safe.
2014-04-24 00:28:33 +02:00
Oliver Schmidt
9e3154220c
Merge pull request #106 from groessler/something_to_pull
...
add P/M (aka 'Sprite') mouse callback for Atari
2014-04-22 20:01:43 +02:00
Christian Groessler
608dbc2cec
Workaround for "phantom" key presses in the C128 "joystick" mouse driver.
2014-04-22 15:49:48 +02:00
Christian Groessler
2059e34114
rename ser_libref.s to serref.s in order to be consistent with other targets
2014-04-22 13:42:17 +02:00
Christian Groessler
eefd33d309
Split libref.s into multiple files to prevent inclusion of unnecessary code.
2014-04-22 12:50:07 +02:00
Christian Groessler
7eaf721e7c
Selection whether to use page 6 for mouse P/M data is not done in
...
Makefile.inc, like the other compile-time options. Small fix in the
P/M mouse "show" routine: adapt mouse cursor colors to current
screen colors.
2014-04-21 11:41:37 +02:00
Christian Groessler
88e3e60550
address issue raised in the pull request; add support to not use page 6
...
again
2014-04-15 11:37:34 +02:00
Christian Groessler
526b440b24
- always use page 6 for P/M mouse cursor
...
- make cursor character of text mode callback configurable
- change default cursor character of text mode callback from 'plus' to 'diamond'
- set P/M callback as default
2014-04-11 23:51:49 +02:00
Christian Groessler
661203a89a
initial version of a P/M mouse callback
2014-04-11 23:51:49 +02:00