From: Maciej Witkowiak (ytm_at_elysium.pl)
Date: 2003-01-07 10:53:38
Ullrich von Bassewitz dnia 07 sty 2003 o 07:58 +0100 napisał: > this code. When I added __bzero() to the compiler for example, I forgot that > GEOS has a separate implementation for memset(), so GEOS didn't have __bzero. > Together with another change that caused the compiler to replace calls to > memset with a fill value of zero with calls to __bzero, this meaned that > programs would no longer compile for GEOS. More machine specific code means a > greater chance for things like this to happen. I sent this information to cc65-dev only, because my changes will be in the next release (or next major release? I can't remember the policy) but during last weeks GEOS target have been getting more and more similar and compatible to other targets: - there is module support - there are modules for ext. memory (VDC on C128), joystick (digital joystick, not GEOS input device) and graphics (one driver for both 40/80 columns modes) - GEOS has zeropage segment now (I really don't remember why it seems important for me) - below module loader there is some support for low-level I/O: open(), read() and close(), currently only on one file at a time. It will not be hard to extend it to some 8 files, write() will need more work as there is no equivalent of WriteByte() in GEOS Kernal and the library will have to keep record of allocated sectors, fixing t/s pointers in each sector etc. - memory/heap functions finally have been tested - and to not leave it without a comment - there is __bzero and _bzero too in GEOS library The only major difference between GEOS and console programs is that GEOS requires explicit exit() to leave the program, return from main() will drop you into GEOS MainLoop. This is because the usual way of doing things in GEOS is to setup the screen, menus and icons in the main program (executed after loading) and then pass the control to the OS via MainLoop. The system will call functions when clicking on a icon, selecting menu etc. Now I'm considering removing this difference too. Opinions? I'm sorry that I can't spent now equal time on LUnix target :). Maybe next week. Only some comments now: - o65 loader in LUnix does not relocate ZP because a task has to have access to whole ZP anyway (it is assumed that the base of ZP is 0) - exported 'main' is supposed to mark the entry point of the program, but it is unused now; that name is obviously confusing and I will probably change it to 'start' or 'exec' or sth like that - and the thing that still confuses me and I will resolve it in the first place: if imported symbol is 'LUNIXKERNEL' or 'LUNIXKERNAL' :) ytm -- Our task is to dramatically enable markets as the first step in our scheme to distance us from the market. Miss Latoya Henry ---------------------------------------------------------------------- To unsubscribe from the list send mail to majordomo_at_musoftware.de with the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.3 : 2003-01-07 10:53:50 CET