Catakig/Notes/To-do-LibAppleII.txt

101 lines
3.5 KiB
Plaintext

==== Non-functioning Apple II Software (that should work) ====
* Rescue Raiders? Usually launches, but sometimes re-boots mysteriously.
(Could just be the disk image I'm using.)
* Stellar 7? Seems okay now, but wasn't working earlier.
* Apple Panic, GraForth. Something wrong with our keypress buffering?
==== CPU ====
* Find quicker Z-flag query expression? (Rethink ZF flag.)
* Use rotated opcodes: op<<6 | op>>2 ?
* Keep A in a local variable?
* Implement old 6502 ADC & SBC behavior (different flags than 65c02)
* Video floater bytes not correct yet.
* On ][ and ][+, RESET should not affect the language card state.
* Keep 'scanLine' in upper bits of 't', instead of extra variable.
* Peripheral expansion ROMs not being swapped in correctly.
==== Video ====
* Review D/HGR rendering. Glitches still apparent?
* Support European screen glyphs.
* Support European (PAL) color palette.
* Implement the "bizarre" (and useless) GR video mode?
* Simulate color burst for text in graphics mode.
* Implement Videx 80-column card for IIo and IIp models?
* Eliminate need to scale array index by 4 when using 'vpix' tables?
==== Audio ====
* Add Mockingboard emulation.
* Add sound effects to printer and disk drive activity.
* Support cassette tape input? Probably not worth it.
* There are occasional pops in the audio output.
==== Disk Drives & Image Files ====
* Support BZ- and GZ-compressed disk image files.
* Use track size of 6384-6400 bytes instead of 6656?
* Infer DO/PO format of 140K disks by examining their contents.
* On computer Reset, does the IWM mode register revert to 0?
* Update checksum on modified DiskCopy 4 images.
* Does IWM mode register change after RESET?
* Support FDI disk images? NB2?
* Forbid Disk II drives accepting 2IMG-PO disks > 140 KB.
* On real Apple II with IWM, verify IWM status register value under all
possible drive contents: none, read-only, read-write.
* Failure to load a drive should _not_ empty it?
* Need to regularize NIB tracks when loading?
==== Printer ====
* Not processing rubout characters ($7F) yet.
* The Flex scanner is not re-entrant, and not thread-safe. Use 're2c'?
* Output PS should be friendly to A4 paper sizes, and PDF distilling.
* Use PDF-lib library for printing to PDF?
* Preferences:
LF after CR, yes or no
7 or 8 bit data path
card DIP switch states
page size US Letter or A4
line width 40 or 80
* Epson emulation:
Ibsen font bounding boxes needed
Tab stops are not always a constant width.
Graphics character set; European character sets.
Handle rubout and backspace characters properly.
Vertical tabs not handled.
==== Model-specific Features ====
* The IIc+ doesn't work yet. Worth bothering with?
* IIc: provide a 40/80 column switch?
* IIc: detect various ROM versions, an act appropriately. In particular,
the mouse firmware can be in slot 4 or 7, the number of ROM banks can
be either 1 or 2, and expansion RAM might or might not be available.
* IIc: reading $C048 should reset the X0/Y0 interrupt flags.
==== Miscellany ====
* State saving and restoring!
* The Apple ][ and ][+ are wasting 64KB for aux. RAM that's never used.
* Add Z80 and CP/M support?
* Emulate RAMWorks card? ThunderClock?
* Use ObjC exceptions instead of error codes? (Requires MacOS 10.3+)
How about using NSError?
* Use NSFileHandles or NSStreams instead of Unix FDs and FILE pointers?
* Add Apple II mouse support.
* Implement the Parallel Interface Card? It's much simpler than the SSC.
* Eliminate non-POSIX calls?
* Have different models inherit from a base class?
* Save and restore NSUserDefaults for the library.