Re: [cc65] Joystick support

Date view Thread view Subject view

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.


Date view Thread view Subject view

This archive was generated by hypermail 2.1.3 : 2003-01-07 10:53:50 CET