[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A few technical q's from an apple newbie



Michael J. Mahon wrote:

IRQ for the 6502 is a level.  There is no acknowledgement.

OK.

From the //e onward, the cursor is generated by software, based
upon timing loops as the keyboard is polled (the cursor only appears
when the machine is waiting for input).

Interesting.

This capability began with the //e, as well.  (There was another technique
for locking processing to the video generator on earlier machines, which
involved reading I/O addresses which were not driven by anything, so as
to sample residual video data on the data bus.  Check out this URL:
http://rich12345.tripod.com/aiivideo/softalk.html  ;-)

Thanks for the link! I noticed this sort of supprt in MESS, but didn't really know what it was all about. I'll have to read thru your link...

The high bit of $C019 goes low during the VBL period, which starts
at line 192 and continues to line 261.  (Each line is approximately
64 cycles.)

Since all the video timing on the prototype is linked to the VGA output, I've generated a 'fake' 60Hz vsync/vblank (nominally 1460us since that's what Centipede uses). But looks like it's not required for ][+...

3. Memory. Are the jumpers that set the installed memory size purely for memory decide logic, or are they something that can be read from s/w? i.e. does the apple know how much memory is installed via these jumpers, or does s/w have to do a memory test to find out?
They are purely for hardware decoding.
Software must do an "experiment" to discover the amount of RAM
installed.

OK.

Good luck, and keep having fun!

Thanks!

FWIW I've got the 1st hires page showing correctly now, which I pre-initialise with a snapshot of Lode Runner running in MESS for development/debugging. I've implemented a crude 'softswitch' at C05X for supporting the various text/graphics modes.

The problem that remains is this mysterious 'crash' that has, incidently, gotten to the point where nothing runs properly now. Each time I build a new image, the behaviour is different. At best, I could run a simple BASIC program. Yesterday I could use HGR and HPLOT, but co-ordinates >9 caused an 'out of range?/bad parameter?' error. Today, I can't even exit the monitor.

One of the strangest symtpoms was a 2-line BASIC program, originally with lines 10 and 20, which ran properly but when listed, showed lines numbers like 22.475543 and 47.252344 (not the real numbers).

Since I've shadowed every write access within 64K with SRAM, and areas within that 64K that don't do something 'special' (ROM, vram, C0XX etc) return the SRAM contents, the ROM should think I have the max available memory. I'm guessing my problem lies with some unimplemented function within CXXX - maybe a softswitch that makes it think there are aux memory banks, or other roms? or occupied slots? I tried to work out what this INTCXROM business was about but I'm still in the dark. Anyway, it's all WIP atm...

It may come down to crippling the MESS driver until I see similar behaviour, then work backwards to find the offending functionality. That technique worked well for Centipede.

Unless there's any Apple ][ emu authors reading this that had similar experiences and can give me any tips?

Thanks for the info Michael & everyone else who has replied!
Regards,

--
|              Mark McDougall                | "Electrical Engineers do it
|         <http://to be announced>           |   with less resistance!"