diff --git a/ASM b/ASM deleted file mode 100644 index df502013..00000000 --- a/ASM +++ /dev/null @@ -1,14 +0,0 @@ -Begin3 -Title: Apple //ix -Author: alexb@csd.uu.se (Alexander Jean-Claude Bottema) - sl14@cornell.edu (Stephen Lee) - michael@talamasca.ocis.net (Michael Deutschmann) - ASC _at_ BITR0T (Aaron Culliney) -Version: 0.8 -Entered-date: 2014-02-27 -Description: Apple //e emulator for POSIX systems -Keywords: emulator, linux, posix -Uploader: ASC _at_ BITR0T (Aaron Culliney) -Primary-site: https://github.com/mauiaaron/apple2 -Platform: Linux i386 -End diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index 444d4ea0..00000000 --- a/ChangeLog +++ /dev/null @@ -1,1253 +0,0 @@ -Thu Feb 27, 2014 : Aaron Culliney @ bitr0t.com - * Rebranded as "apple2ix" with a 0.8 revision - * X11 now uses true color and can dynamically resize window between 1x - and 2x. - * Better emulation fidelity by counting 6502 CPU cycles. This is - necessary for proper generation of digital audio. - * Use OpenAL backend for all sound (some soundcode/speaker source - derived/shimmed from AppleWin source). - * Preliminary support for Mockingboard (again sourced from AppleWin) - * Fixes for Linux Joystick (both PC Joystick and Emulated Keypad/Arrows) - * Simplifications to interface modes and preferences - * Interfaces are now 80columns - * Removed support for console SVGAlib - * Use zlib for inflating/deflating disk images - * Deprecated support for ][+ and ][+ undocumented modes - -Thu Mar 23, 2000 : Michael Deutschmann - - * configure.in: set revision to 0.7.4, final release - -Thu Mar 2, 2000 : Michael Deutschmann - - * src/svideo.c (c_initialize_colors): Minor comment fix - - * src/xvideo.c (getshm): Fix handling of shmat() failure. (It - returns -1, not 0) - - * src/xvideo.c (getshm): When probing for preexisting shared - memory, use size of 0. - -Fri Feb 18, 2000 : Michael Deutschmann - - * configure.in: bump revision to 0.7.3q - - * src/memory.S (iie_altzp_main,iie_altzp_aux): Fix handling - of language-card-off case. - - * src/svideo.c (c_initialize_colors): Reset lores colors to match - dhires colors. - * src/xvideo.c (c_initialize_colors): Follow svideo change. - - * src/memory.S (iie_altzp_aux): Removed redundant ret instruction - - * src/memory.S (lc_c083): fix handling of SS_LCSEC and SS_LCWRT. - -Fri Feb 4, 2000 : Michael Deutschmann - - * src/svideo.c (c_initialize_colors): Correct arguments to - vga_setpallete to be in proper range. Swap light-gray and - dark-gray to match Apple documentation. - - * src/xvideo.c (c_initialize_colors): Synchronize colors with svideo.S - - * src/debugger.c: Make "opcodes" pointer-to-const. - * src/debug.h: reflect above. - -Thu Feb 3, 2000 : Michael Deutschmann - - * src/memory.S (iie_ramwrt_aux,iie_ramwrt_main): minor comment fix - - * src/memory.S (iie_ramwrt_aux): fix erroneus handling of - 80store/hires - - * src/cpu.S (Continue): move ZeroOp to after exception branch. - - * src/cpu.S (ReplaceState): correctly restore stack pointer in - ALTZP mode. - -Wed Feb 2, 2000 : Michael Deutschmann - - * src/memory.S (iie_c3rom_peripheral, iie_c3rom_internal, - iie_check_c3rom): Invert sense of SS_C3ROM, to match rest of code. - -Tue Feb 1, 2000 : Michael Deutschmann - - * Updated copyright headers on all source files. - - * src/debugger.c (disasm): Removed printf (was left in from - debugging the debugger.) - -Mon Jan 31, 2000 : Michael Deutschmann - - * configure.in: bump revision to 0.7.3p - - * Makefile.am: no longer distribute README-alpha - - * src/xvideo.c (video_init): Gracefully exit if XCreateImage or - XShmCreateImage fails. - - * src/compact.c (pre_compact, compact): Handle mkstemp and/or - mmap failure. - - * src/cpu.h: documentation update. (comment said cpu65__signal still - used by other modules, not true anymore.) - -Mon Nov 1, 1999 : Michael Deutschmann - - * src/prefs.c (color_table): match `INTERP' to "interpolated", - not "color" - - * src/display.S (video__write_even0_mixed,video__write_odd0_mixed): - added missing branch. - -Fri Oct 29, 1999 : Tom Lear - - * configure.in: bump revision to 0.7.3o - - * Removed two extra memset calls from the joystick code - - src/joystick.c: c_calibrate_joystick - - * Added bounds checking on temp, system_path, & disk_path - this - blocks several buffer overflows - - src/debugger.c: bload - - src/disk.c: disk_install - - src/interface.c: c_interface_disk_select, - c_interface_select_diskette, c_interface_parameters - - src/misc.c: c_initialize_apple_ii_memory - - src/mics.h: declaration of temp - - src/prefs.c: declaration of {system,disk}_path, load_settings - - src/prefs.h: declaration of {system,disk}_path - - * Fixed problem with giving up group permissions - - src/xvideo.c: video_init - -Sat Oct 28, 1999 : Michael Deutschmann - - * configure.in: bump revision to 0.7.3n - - * src/Makefile.am: Distribute prefs.h - -Mon Aug 23, 1999 : Michael Deutschmann - - * src/misc.h: correct declaration of glyph arrays to be constant - - * src/opcodes.c: Made all items constant - * src/debugger.h: update declarations - -Sun Aug 22, 1999 : Michael Deutschmann - - * configure.in: bump revision to 0.7.3m - - * src/prefs.c: made `clean_string' static - - * src/prefs.c: made match tables constant - - * src/prefs.h: new file, contains all declarations for configurable - parameters. - * src/prefs.c: added in definitions of above - - * src/misc.h: eliminated sound_mode, color_mode, apple_mode, and - system_path, and definitions of their values, since they are - now in prefs.c/prefs.h. Also removed prototypes for - load_settings and save_settings. - * src/keys.h: eliminated joy_mode, joy_step, joy_center_x, - joy_center_y, joy_range, half_joy_range, js_center_x, - js_center_y, js_timelimit, js_max_x, js_max_y, js_min_x, - js_min_y & definitions of joy_mode - values for same reason. - * src/interface.h: eliminated disk_path. - - * src/joystick.c: eliminated definitions of js_center_x, - js_center_y, js_max_x, js_max_y, js_min_x, js_min_y, js_timelimit. - - * src/interface.c, src/keys.c, src/misc.c, src/vidsup.c, - src/disk.c, src/debugger.c, src/joystick.c, src/prefs.c: - include prefs.h. - - * src/debugger.c (c_do_debugging): don't reset sound hooks on exit. - - -Sat Aug 14, 1999 : Michael Deutschmann - - * src/interface.c (c_interface_keyboard_layout): applied - Culliney's patch to text. Button numbering is changed. - -Thu Aug 12, 1999 : Michael Deutschmann - - * src/misc.c (c_set_altchar): Bug-fix - lowercase inverse chars - were shown as normal. - -Wed Aug 11, 1999 : Michael Deutschmann - - * src/font.txt: reorganized. Now includes interface box-drawing chars. - * src/genfont.c: changes to font-file format - now allows - multiple arrays. - * src/misc.h: - Replace "char_rom" declaration with "lcase_glyphs", "ucase_glyphs", - "mousetext_glyphs" and "interface_glyphs", which are now in font.c - * src/misc.c (c_initialize_font,c_set_primary_char,c_set_altchar): - Use new font arrangement. - * src/interface.c (c_load_interface_font): use new font arrangement. - -Tue Aug 10, 1999 : Michael Deutschmann - - * src/vidsup.c (video_loadfont): add new argument "mode" - * src/video.h: revise prototype and documentation. - * src/misc.c: revise callers. - -Sun Aug 8, 1999 : Michael Deutschmann - - * src/gluepro.h, src/cpu.S, src/display.S: correct assembler - errors revealed by new version of binutils. - - * src/debug.h, src/debug.l-cpp, src/debugger.c: Define opcodes as - "*opcodes", not brain-damaged "*opcodes[256]". Also changed - references. - - * src/debugger.c (get_current_rambank): correct typo. - - * src/opcodes.c: completely new (incompatible) table format, with - redundant data removed. - * src/debug.h: changed declarations of opcodes.c items. - * src/debugger.c (disasm): use new opcodes table - * src/debug.l-cpp: use new opcodes table - - -Sat Aug 7, 1999 : Michael Deutschmann - - * configure.in: bump revision to 0.7.3l - - * src/prefs.l-cpp: removed - * src/misc.h: removed declarations of prefs.l-cpp items. - * src/misc.h: removed c_system_defaults and c_save_settings - - equivalent functions are now in prefs.c - * src/prefs.c: new file. - * src/Makefile.am: reflect above - - * src/misc.h: replace prototype for c_save_settings with - prototypes for load_settings and save_settings. - * src/misc.c (main): call load_settings, not c_system_defaults. - * src/misc.c (main): don't use lowercase_string. - - * src/interface.c (c_interface_parameters): - call save_settings, not c_save_settings. - * src/interface.c (pad_string): added as a static function, replacing - reference to old prefs.l-cpp. - - * src/keys.h: include joystick.c declarations - * src/misc.c, src/interface.c: remove declarations now in keys.h - -Fri Jun 23, 1999 : Michael Deutschmann - - * src/xvideo.c (keysym_to_scancode): add support for Break key. - -Sat Jul 16, 1999 : Michael Deutschmann - - * src/keys.c (c_periodic_update) : fix keys so that "next_key" is - reset before menu actions are executed. - - * src/keys.c: rebind PrintScreen and Pause keys. - -Thu Jul 7, 1999 : Michael Deutschmann - - * src/memory.S: use base_stackzp rather than zp_offset. Remove - iie_read_ram_zpage_and_stack and iie_write_ram_zpage_and_stack. - * src/misc.c: use base_stackzp rather than zp_offset. add glue - functions to replace ones removed from memory.S - * src/misc.h: declare base_stackzp, remove zp_offset. - - * src/memory.S (lc functions,altzp): set base_[de]000_{rd|wrt}, add - iie_versions. Remove lc-area accessor functions and lc_offset - * src/misc.c: implement lc-area accessors with glue system. Initialize - lc base variables, not lc_offset. No longer use seperate - accessors for iie. Use seperate lc_c08x hooks for iie. - * src/misc.h: declare lc base variables, remove lc_offset. Also - change prototypes to reflect added/removed function. - - * src/gluepro.h: bug fixes for GLUE_BANK_MAYBEWRITE - - * src/misc.h: remove iie_read_slot6 prototype, which was removed - earlier. - - * src/disk.c (c_write_normal_6): remove references to wr_trk_6 - and wr_sec_6. (they weren't used) - - * src/disk.c (c_read_normal_6, c_write_normal_6): replace references - to old_value_6 with old_value, a stack variable. - - * src/disk.c: removed old_value_6, wr_trk_6, wr_sec_6 - -Wed Jul 7, 1999 : Michael Deutschmann - - * configure.in: bump revision to 0.7.3k - - * src/misc.c: use glue system to generate read_ram_default, - write_ram_default. - * src/memory.S: remove manual definitions of these hooks. - - * src/memory.S: placed SN() around declaration of softswitches - - * src/memory.S: corrected C3ROM/CXROM softswitches. Also - converted Cx00 hooks to use bases rather than offsets. - * src/memory.S: removed iie_read_c3rom, iie_read_cxrom - * src/misc.c: replace with glue system - * src/misc.h: added base_c3rom,base_cxrom; removed offset_c3rom, - offset_cxrom - - * src/genglue: modified to include all '#if' directives, etc. - from files. This makes glue.S ugly, but it's needed to so that - GLUE_ lines will respect conditionals. - - * src/display.S: removed unused macro offset_RAMRD_RAMWRT - - * src/memory.S: use bases, not offsets, for normal, text0, and hires0 - memory. Remove iie_read_ram_default, iie_write_ram_default, - iie_read_ram_text0, iie_write_screen_hole_text0, iie_read_ram_hires0, - iie_write_screen_hole_hires0 - * src/misc.c: replace functions with glue, use bases not offsets - * src/display.S: use bases, not offsets. - * src/misc.h: remove offset declarations, add base declarations - -Tue Jul 6, 1999 : Michael Deutschmann - - * src/disk.h: replace many _6 definitions with a single structure, - "disk6". Also includes some former static definitions from disk.c - * src/disk.c, src/debugger.c, src/interface.c: follow through - - * src/display.S (video__write_odd1_mixed): bug fix - - check SS_TEXT|SS_MIXED, not SS_TEXT|SS_HIRES. - - * src/memory.S (iie_80store_off): rewrote to properly set - SS_TEXTWRT/SS_TEXTRD/SS_HGRWRT/SS_HGRRD. Removed - offset_RAMRD_RAMWRT macro - -Mon Jul 5, 1999 : Michael Deutschmann - - * src/disk.c (disk_write_latch): bug fix -- disk_byte_6 not set. - - * configure.in: bump revision to 0.7.3j - - * src/memory.S: bug fix - typo in read_switch_secondary_page - - * src/display.S: remove "updating_screen" variable -- instead - temporarily clear some softswitches, restoring them from stack at - end. - - * src/display.S: remove "iie_mixed_lores0" and "iie_mixed_lores1" - -- they were identical to "iie_write_lores?" - - * src/display.S (iie_write_lores0, iie_write_lores1): properly - check if in auxillary bank - - * src/disk.c (disk_install): new function, handles insertion of - disk-related ROM and softswitches. - * src/misc.c (c_initialize_apple_ii_memory): don't load slot6.rom - - leave it to disk.c - * src/misc.c (c_initialize_tables): call disk_install instead of - inserting softswitches manually. - -Sun Jul 4, 1999 : Michael Deutschmann - - * src/configure.in: bump revision to 0.7.3i - - * src/disk.c (disk_read_phase): bug fix - set phase_change when stepping tracks. - - * src/display.S: (video__write_2e_text0): bug fix - check SS_TEXT|SS_MIXED, not SS_TEXT|SS_HIRES. - -Sat Jul 3, 1999 : Michael Deutschmann - - * src/Makefile.am: add glue.h, gluepro.h to headers - - * src/configure.in: up default MAX_APPLE_DELAY to 1000 - - * src/Makefile.am: invoke genglue from $(srcdir)/, not ./ - * src/Makefile.am: add glue.S to CLEANFILES - * src/Makefile.am: remove glue.S from distribution - - * src/Makefile.am: distribute genglue - -Fri Jul 2, 1999 : Michael Deutschmann - - * src/memory.S: bug fix: language card BANK2 was reversed. - * src/memory.S: bug fix: CXROM check was reading C3ROM. - - * src/Makefile.am: added './' to genfont/genglue invocations. - - * src/memory.S: redraw screen on change of 80col switch if DHIRES is - active. (formerly only TEXT and MIXED were checked). - -Wed Jun 30, 1999 : Michael Deutschmann - - * configure.in: bump revision to 0.7.3h - - * src/genglue, src/glue.h, src/gluepro.h : new files - * src/Makefile.am: generate and include "glue.S" - - * src/disk.c: removed c_read_byte, c_write_byte. Added (using - glue facility) implementations of diskio.S functions, except - disk_read_nop - * src/diskio.S: removed - * src/Makefile.am: remove diskio.S from all builds - - * src/misc.c: install ram_nop on C0E0/2/4/6 instead of - disk_read_nop, which was removed. - -Tue Jun 29, 1999 : Michael Deutschmann - - * src/misc.h: added new "softswitches" bitmask variable and - supporting defines, removed old softswitch variables. - * src/debugger.c, src/interface.c, src/misc.c, src/xvideo.c, - src/memory.S, src/memory.S: change to new system. - * src/memory.S: declare "softswitches" - * src/display.S: corrected problem where wrong offset was used in - //e hires page #2. - * src/memory.S: some corrections to language-card semantics - (set bank on first write to C081/3/9/B, not second. - set bank on writes to C082/C08A) - -Mon Jun 28, 1999 : Michael Deutschmann - - * src/apple2.h: move virtual memory hooks... - * src/misc.h: ...to here (also fixed read_character declaration) - - * src/apple2.h: move SCANSTEP,SCANWIDTH,SCANHEIGHT definitions - * src/video.h: ... to here - - * src/video.h: added conditionals so header may be included in assembly - - * src/apple2.h: move _Flag and register definitions... - * src/cpu.h: ... to here - - * src/cpu.h: added conditionals so header may be included in assembly - - * src/cpu.S, src/display.S, src/memory.S: include "cpu.h" - - * src/cpu-supp.c, src/debug.l-cpp, src/debugger.c, src/disk.c, - src/interface.c, src/keys.c, src/misc.c, src/svideo.c, src/vidsup.c - src/xvideo.c: do not include "apple2.h" - - * src/cpu.S, src/display.S, src/memory.S, src/diskio.S: don't - define __ASSEMBLY__ -- we now use __ASSEMBLER__ which is preset - by the compiler. - - * src/diskio.h: changed to "apple2.h" - - * src/cpu.S: fixed bug re: NVZ_Flag - - * src/vidsup.c, src/video.h, src/display.c: introduce variable - video__strictcolors, replacing `strict_color'. - - * src/interface.c (c_interface_parameters), src/prefs.l-cpp: - remove references to strict_color. - * src/misc.h: remove strict_color. - - * src/memory.S: removed iie_read_slot6 -- identical with slotx - * src/misc.c: revised `caller' - -Sun Jun 27, 1999 : Michael Deutschmann - - * configure.in: bump revision to 0.7.3g - - * src/apple2.h: remove FLAG() kludge - assembler code now must - place $ explicitly - * src/cpu.S, src/memory.S, src/display.S: change to reflect this - - * src/cpu.S: used complement operator instead of Flag_Not definitions - * src/apple2.h: added missing NVZ_Flag define. - - * src/cpu.S: used OR operator instead of NVZC_Flag, BX_Flag, etc. - * src/apple2.h: removed unneeded _Flag and _Flag_Not defines - - -Thu Jun 24, 1999 : Michael Deutschmann - - * src/xvideo.c, src/svideo.c (c_initialize_keyboard, video_init): - Do not attach video_shutdown to signal handlers (there are no - safety issues with X, and svgalib handles this itself.) - - * src/sapple.c (video_init): remove unneeded save of keyboard - modes/termios. Also removed static variables. - - * src/xvideo.c, src/svideo.c (video_shutdown): Remove exit() call - * src/interface.c: removed "shouldn't get here" comment as it is no - longer accurate - - * src/video.h: reorganized, added documentation. - - * src/misc.c: removed unused variable vmode_active - - * src/keys.c: added dummy argument to c_periodic_update, so it is - a correct signal handler - * src/keys.h: updated prototype. - -Wed Jun 23, 1999 : Michael Deutschmann - - * src/svideo.c (video_init): bug fix. video__fb1 should be - initialized to vga_mem_page_1, not 0. - - * src/keys.c (c_periodic_update): bug fix. Clear `next_key' - before pausing. - - * src/keys.c (c_mygetch, c_read_raw_key) : added new variable - `in_mygetch' -- used to keep keyboard in //e mode in interface - even if ][+ selected. - - * src/xvideo.c (keycode_to_keysym): Removed "doRaw" argument, simplified. - * src/xvideo.c (video_sync): update caller - - * src/xvideo.c (keycode_to_keysym): Return correct scancodes for - PgUp,Home & End. Added support for Alt keys. - - * src/keys.c: Reassigned keys. Joystick buttons are now Alt keys - and Ins, rather than Del, End, PgDN - - * src/keys.h: Made kEND, kPGDN seperate from JB0 and JB1. Removed - kDELETE. - -Tue Jun 22, 1999 : Michael Deutschmann - - * src/joystick.c: Replace calls to `c_video_refresh' with `video_sync' - - * src/svideo.c, src/xvideo.c (c_video_refresh): remove - - * src/svideo.c, src/xvideo.c (c_flash_cursor): make static - * src/svideo.c, src/xvideo.c (video_sync): add call to c_flash_cursor - * src/keys.c (c_periodic_update): remove calls to c_flash_cursor, - and flash_cnt variable - * src/xvideo.c (c_flash_cursor): Move function above video_sync - in file (avoid forward reference) - - * src/video.h: remove prototypes for c_flash_cursor and - c_video_refresh - - * src/svideo.c, src/xvideo.c (c_initialize_video): rename to `video_init' - * src/misc.c: update caller - * src/video.h: update prototype, move to new interface section - - * src/debug.l-cpp: add #include of "keys.h" - - * src/svideo.c, src/xvideo.c (c_shutdown_video): rename to - `video_init' - * src/interface.c, src/debug.l-cpp: update caller - * src/video.h: update prototype, move to new interface section - -Mon Jun 21, 1999 : Michael Deutschmann - - * src/keys.c: rename static variable `menu_key' to `next_key' - - * src/keys.c (c_periodic_update,c_read_raw_key): Shift all - actions from c_read_raw_key to c_periodic_update. - c_read_raw_key now only manipulates `next_key' and `key_pressed' - - * src/keys.c (c_mygetch): new implementation, doesn't require - keyboard_off() - * src/svideo.c (c_mygetch, c_keyboard_off, c_keyboard_on, _mygetch): - remove - * src/svideo.c (c_initialize_keyboard) incorpate code from - removed c_keyboard_on - * src/xvideo.c (c_mygetch, c_keyboard_off, c_keyboard_on, - c_initalize_keyboard): remove, and remove calls to them - - * src/svideo.c (video_sync): Don't use keyboard_waitforupdate -- - it crashes -- use kludge instead. - - * src/keys.h: Changed kLEFT,kRIGHT,kUP,kDOWN,kESC to be - compatible with new mygetch. - - * src/keys.h: corrected prototype for c_periodic_update - - * src/keys.h: removed prototype for dead c_set_rubout_key - - * src/keys.h: added prototype for c_mygetch - - * src/video.h: removed prototypes for c_mygetch, c_keyboard_on, - c_keyboard_off - -Sun Jun 20, 1999 : Michael Deutschmann - - * src/misc.c: add constants timer_on and timer_off - * src/misc.h: add declarations. - - * src/svideo.c: add function video_sync() - * src/svideo.c: remove function c_poll_keyboard_input() - * src/svideo.c (c_initialize_keyboard,c_keyboard_on, c_keyboard_off): - remove all references to timer signal handler.) - - * src/misc.c (c_initialize_firsttime): set up timer signal hander - - * src/keys.c (c_periodic_update): add call to video_sync - - * src/keys.c (enter_debugger): add calls to disable/reenable timer - signal - - * src/video.h: added prototype for video_sync - - * src/xvideo.c (c_initialize_keyboard,c_keyboard_on, - c_keyboard_off, c_poll_keyboard_input): - remove all references to timer signal handler.) - - * src/xvideo.c (c_poll_keyboard_input): Rename to video_sync. - Remove call to c_periodic_update. - - -Sat Jun 19, 1999 : Michael Deutschmann - - * src/Makefile.am: no longer create seperate interface-80 module. - -Fri Jun 18, 1999 : Michael Deutschmann - - * src/vidsup.c (video_wider_int_font, video_int_font, - video_loadfont_int ): added - * src/vidsup.c (c_interface_print_char40_line): copied from interface.c - * src/vidsup.c (video_plotchar): added (adapted - from c_interface_print_char40) - - * src/video.h: added prototypes for video_plotchar and - video_loadfont_int - - * src/interface.c (c_load_interface_font): completely redone - * src/interface.c (c_load_character,c_interface_textcolor): removed - * src/interface.c (c_interface_print_char40_line, - c_interface_print_char40, c_interface_print_char): removed - (some code now in vidsup.c) - * src/interface.c (c_interface_print, c_interface_print40): - changed to one function `c_interface_print', added - colorscheme argument, and changed to use `video_plotchar' - * src/interface.c, src/debug.c, src/joystick.c: Changed callers to - c_interface_print, c_interface_print_char, and - c_interface_textcolor to new interface. - * src/interface.h: remove/modify prototypes for changed functions - - * src/interface.c: removed intermediate_font/interface_font decls. - -Tue Jun 15, 1999 : Michael Deutschmann - - * Changelog: bump revision to 0.3.7f - - * src/debugger.c, src/interface.c, src/memory.S, src/misc.c, - src/svideo.c, src/video.h, src/xvideo.c: Renamed c_setscreen to - video_setpage. - * src/video.h: moved video_setpage prototype to "new interface" - section of file (purely aesthetic). - - * src/video.h: removed spurious prototypes of write_ram_default, - write_unmapped_softswitch - -Sat Jun 12, 1999 : Michael Deutschmann - - * src/keys.c (c_periodic_update) : removed kluge surronding debugger - entry, creating new function `enter_debugger' - * src/keys.h: added prototype for `enter_debugger' - * src/cpu.S (ex_enter): call `enter_debugger', not `c_periodic_update' - * src/cpu.S (ex_enter): clear cpu65_signal when entering - - * src/cpu.S (do_step): rename to cpu65_step - * src/debugger.c, src/debug.l-cpp: revise callers - * src/cpu.h: add prototype for cpu65_step - - * src/cpu.S (cpu65_step, ex_enter): Handle setting DebugStepSig - internally - * src/debugger.c, src/debug.l-cpp: Remove all DebugStepSig references - - * src/cpu.S (ReplaceState): explicitly clear all registers - (preventing junk in high parts from tripping us up.) - - * src/apple2.h: removed prototypes for removed/renamed functions - do_step, do_write_memory, and do_write_lc. - - * src/display.S: Made "updating_screen" variable internal, and - managed it within video_redraw. - * src/interface.c (c_exit_interface): Removed references to - updating_screen - * src/interface.c (updating_screen): Removed declaration of - updating_screen. - - * src/interface.c (c_exit_interface): Removed second call to - video_redraw for nonvisual page - it was unnecessary. - -Fri Jun 11, 1999 : Michael Deutschmann - - * src/apple2.h: removed `prototype' for read_screen_hole - functions, which were removed earlier. - - * src/apple2.h: moved `prototypes' for write hooks in - `display.S', and update_video_screen... - * src/video.h: ... to here. - - * src/display.S, src/vidsup.c, src/svideo.c, src/xvideo.c, - src/video.h: mass rename of many functions - * src/memory.S, src/misc.c, src/interface.c: - update callers of update_video_screen, now video_redraw. - * src/interface.c (c_interface_print_char40): - update GM1 reference to video__fb1. - - * src/display.S: fixed up UpdateRows/UpdateHiresRows/iie_soft_write_* - system, which was disrupted in rename. - - -Thu Jun 10, 1999 : Michael Deutschmann - - * configure.in: Bump revision to 0.7.3e - - * src/misc.h: removed declarations that were moved to video.h - - * src/misc.h: Made "char_rom" extern - - * src/video.h, src/vidsup.c: removed crnt_active_svga_page, oldpage, - oldscreen (weren't used) - - * src/vidsup.c: moved even_colors, odd_colors from svideo.c/xvideo.c - * src/video.h: added extern declarations for above - - * src/debugger.c: copied declarations for global data from debug.c - to here. - * src/debug.h: changed declarations to extern. - - * src/vidsup.c: changed expanded_font and intermediate_font to - video__font and video__wider_font. - Also removed use of #define to rename intermediate_font in - 40-col mode. - * src/display.S: - Changed use of "expanded_font" and "intermediate_font" to two - defines, Font and Font80, which are connected as appropriate to - new variables - * src/video.h: added declaration of video__font and video__wider_font - - * src/vidsup.c (c_initialize_tables_video): made static. - - - * src/vidsup.c: routines expanded_col_* and expanded_col8_* renamed - to video__hires_* and video_wider_hires_*. The loop to generate - wider_hires was also revised. - * src/display.S: carry through change. #defines were removed - * src/video.h: carry through change. - - * src/display.S: replace references to text_row_offset with - hires_row_offset (which is just an extension of the latter - * src/vidsup.c (text_row_offset): remove - * src/vidsup.c (c_initialize_row_col_tables): remove - initialization of text_row_offset - * src/video.h (text_row_offset): remove declaration - - * src/vidsup.c (dhires_aux_page_offset): remove, as it is unused - * src/vidsup.c (c_initialize_row_col_tables): remove initialization - of dhires_aux_page_offset - * src/video.h (dhires_aux_page_offset): remove declaration - -Wed Jun 9, 1999 : Michael Deutschmann - - * configure.in: Bump revision to 0.7.3d - - * src/vidsup.c: new file - * src/video.h: added prototype for video_loadfont - * src/Makefile.am: added vidsup.c for apple2 (not complete for xapple) - - * src/misc.c (c_set_primary_char): now conditionalized for APPLE_IIE - * src/misc.c (c_initialize_font): no longer nulls 0xff char in - ][+ mode - * src/misc.c (c_set_primary_char,c_set_altchar,c_initialize_font): - rewritten to use video_loadfont. - * src/misc.c: intermediate_font decl/define removed. - - * src/vidsup.c (video_line_offset,dhires_colors1,dhires_colors2): - moved from misc.c - * src/vidsup.c (c_initialize_dhires_values, - c_initialize_hires_values, - c_initialize_row_col_tables): - moved from misc.c , prototypes corrected, made static - * src/vidsup.c (c_initialize_tables_video): - new function, based on c_initalize_tables from misc.c - * src/vidsup.c (video_set): - new function, based on c_initalize_vm from misc.c - * src/misc.c: removed things to appear in vidsup.c - * src/misc.c (c_initalize_table): - removed video-memory references, replaced with call to - video_set() - * src/misc.c: (c_initalize_vm): - removed calls to video-related stuff - - * src/misc.h: - removed decl of c_initialize_hires_values - removed decl of expanded_font - - * src/interface.c (c_initialize_parameters): - replaced call to c_initialize_hires_values with video_set. - - * src/vidsup.c (text_row_offset, - text_page_cols,hires_row_offset,hires_col_offset, - dhires_aux_page_offset) : copied from misc.h - * src/vidsup.c (expanded_col*, dhires_colors?, crnt_*_svga_page, - oldpage, oldscreen): copied from video.h - - * src/video.h (text_row_offset, - text_page_cols,hires_row_offset,hires_col_offset, - dhires_aux_page_offset) : moved from misc.h - - - * src/video.h: converted all declarations to extern - - * src/video.h: added prototype for video_set. - - * src/display.S: (iie_read_screen_hole_*): removed (identical to - iie_read_ram_*) - * src/misc.S (c_initialize_table): changed to reflect above - - * src/display.S: (iie_read_*, iie_write_screen_hole_*): moved to - memory.S - - * src/vidsup.c (c_initialize_table_video): set of read - functions removed. - - * src/memory.S, src/display.S: Corrected title in banner - * src/Makefile.am: Removed misc-80.o, added vidsup.o to xapple2 builds - -Sun Jun 7, 1999 : Michael Deutschmann - - * src/cpu.S, src/debugger.c : Removed debug_* variables, everything - is done to cpu65_current and cpu65_debug. - * src/cpu.h: revised/renamed cpu65_current and cpu65_debug - - * src/cpu.S, src/debugger.c : elided do_write_lc routine - - * src/apple2.h, src/*.S: renamed SYMBOL_NAME and ENTRY to SN and E - - * src/cpu.S, src/debugger.c : Watchpoint system changed. - - * src/cpu.S, src/cpu.h: new function cpu65_direct_write - * src/debugger.c: use it instead of do_memory_write - * src/cpu.S: removed do_memory_write - - * src/debug.h, src/debugger.c, src/misc.c: removed watch_* and - debug_scratch - - * src/Makefile.am: added "cpu.h" to noinst_HEADERS - - * src/misc.c (reinitialize): New function - * src/misc.c (c_initialize): Call reinitialize rather than repeat it - * src/misc.c (main): stuff moved out of loop into above functions. - -Sat Jun 6, 1999 - - * Changed interface to CPU subsystem: - * src/cpu-supp.c, src/cpu.h: added files - * src/compact.c, src/cpu.S, src/debug.l-cpp, src/debugger.c, - src/interface.c, src/keys.c: change to new interface. - - * src/apple2.h, src/cpu.h: Removed declarations for things now in cpu.h - (under different names) - - * src/misc.c (main): initialized watch_addrs to -2, not -1. - - * configure.in: Bump revision to 0.3.7c - -Fri Feb 26, 1999 : Michael Deutschmann - - * acinclude.m4: created, with macro A2_ASM_UNDERSCORES - * configure.in: Use this macro. - - * src/apple2.h: added definitions to replace - * src/cpu.S, src/memory.S, src/display.S, src/diskio.S: - Remove - - * src/svideo.c: Replace with - - * src/cpu.S (cpu65x02): Removed cruft, added proper save of registers - * src/cpu.S (ex_reboot): Restore registers before returning to program - * src/cpu.S (ex_reset): Instated label (no code change) to - non-debugger handler so cpu65x02 may branch to it. - * src/misc.c (main): Removed "exception_flag = ResetSig" lines, made - unnecessary by above. - -Wed Feb 24, 1999 : Michael Deutschmann - - * src/compact.c: New file, manipulates VM on memory table - * src/misc.h: specified aggressive alignment on table_memory - * src/misc.c: Inserted hooks to compact.c - - * src/configure.in: Inserted AC_FUNC_MMAP - * src/compact.c: Supply dummy functions if mmap() not available. - -Thu Feb 11, 1999 : Michael Deutschmann - - * src/misc.h: Changed memory table so that read and write tables - are interleaved. - * src/misc.c, src/cpu.S, src/debugger.S: Revise to use new tables - - * src/cpu.S: Fixed exception handler. (jz ex_reboot, not reboot) - -Mon Feb 8, 1999 : Michael Deutschmann - - * src/cpu.S: Optimized addressing-mode macros - -Sat Feb 6, 1999 : Michael Deutschmann - - * Begun version 0.7.3b - - * src/cpu.S: Removed exception-handling stuff from "Continue" - macro, placed it in a subroutine (exception) - - * src/cpu.S: Optimized GetFromPC_B and GetFromPC_W - * src/cpu.S: compensated in exception handler for fact that - GetFromPC_B no longer zeros %ah. - - * src/cpu.S: Optimized GetFromEA_W and GetFromMem_W - - * src/cpu.S: Made ADC and SBC use single decimal versions instead - of one for each addressing mode. - -Thu Feb 4, 1999 : Michael Deutschmann - - * src/cpu.S: Corrected BRK, RTI, PLP, PHP - - * src/cpu.S: Removed "65c02" versions of BRK, RTI, CLI. - - * src/memory.S, src/display.S: New files, split from (and - replacing) apple2.S - * src/Makefile.am: Reflect above change. - - -Tue Feb 2, 1999 : Michael Deutschmann - - * src/cpu.S: optimized ASL, ROL, ROR, LAN, LOR, SBC, DCP, AXM, ISB - - * src/cpu.S: Globally replaced many uses of bt with - testb, which is shorter and faster. - -Mon Feb 1, 1999 : Michael Deutschmann - - * src/apple2.h: Comment update - - * src/cpu.S: Corrected TSB, TRB - * src/cpu.S: Removed FlagNV - - * src/cpu.S: Optimized FlagNVZC - (486 cycle count is the same, but code is more compact) - - * src/cpu.S: Optimized BIT - -Sun Jan 31, 1999 : Michael Deutschmann - - * Makefile.am: Distribute `README-alpha' - - * src/cpu.S: Optimized ROL, ROR, ANA and LAN instructions - - * src/cpu.S: Removed read_memory,read_memory_word,write_memory. - Added more macros for accessing memory, changed code - to use them. - In a few places, debugger hooks are no longer set, - but they weren't necessary (I think) - -Wed Jan 27, 1999 : Michael Deutschmann - - * Begun Version 0.7.3a - - * src/video.h: removed c_setpage and vmode_active - , replaced GM with GM1 and GM2 - * src/svideo.c: removed c_setpage - * src/svideo.c (c_setscreen): rewritten - * src/xvideo.c: removed c_setpage - * src/xvideo.c (c_setscreen): rewritten - * src/xvideo.c (c_initialize_video): added code to preset buffer - pointers - * src/apple2.S: removed setpage, and references to c_setpage and - vmode_active - * src/apple2.S: (PlotTextPagePre,CalcHiresGM,PlotDHires,PlotByte, - Plot80Character) - inserted extra GM arg to select GM1 or GM2. - updated callers - * src/debugger.c,src/interface.c,src/misc.c: - removed references to c_setpage - * src/interface.c: changed GM to GM1 - * src/misc.c: removed references to vmode_active. - - * src/video.h, src/svideo.c, src/xvideo.c: - Removed c_clear_video - now integrated into - c_initialize_video - * src/misc.c: - Removed reference to c_clear_video - -Sun Jan 24, 1999 : Michael Deutschmann - - * src/Makefile.am: Distribute "ASM" file. - -Fri Jan 22, 1999 : Michael Deutschmann - - * Begun Version 0.7.3 - - * src/Makefile.am: Added warning about genfont and cross compilation. - - * src/Makefile.am: Added dist-hook hack. - - * Makefile.am: Renamed `apple2.lsm' to `LSM' - - * src/Makefile.am: Removed -80.o files from BUILT_SOURCES - it - wasn't needed. - - * disks/Makefile.am: Added several more files to distribute - -Thu Jan 7, 1999 : Michael Deutschmann - - * src/*.[Sch]: Replaced copyright banners on all files. - -Wed Jan 6, 1999 : Michael Deutschmann - - * src/Makefile.am: add debug.c, prefs.c to CLEANFILES - (they depend on configuration) - - * src/opcodes.c: new file, derived from 6502.h,65c02.h,undocumented.h - * src/debug.h: added definitions for opcodes.c - * src/debugger.c: use opcodes.c rather than including headers - * src/Makefile.am: add opcodes.c to extra-source-file lists - * src/ChangeLog: add opcodes.o to @DEBUGGER_O@ when debugging - is enabled. - - * src/Makefile.am: fixed xapple_80col_DEPENDENCIES - - * src/cpu.S: new file, derived from - 6502.h,65c02.h,undocumented.h,defs.h,apple2.S - * src/apple2.h, src/misc.c: Changed method of reassigning opcode table - * src/apple2.S: removed code now duplicated in cpu.S - * src/apple2.S: inserted most of defs.h - * src/6502.h,src/65c02.h,src/undocumented.h,src/defs.h: removed - - * src/cpu.S (cpu65x02): removed call to set_page - * src/misc.c: moved some initialization commands to compensate. - - * src/configure.in,src/Makefile.am: added code so that svgalib - version can be compiled without X, and vice versa. - - * src/interface.c(c_interface_parameters): don't mess with the - emulator font. - - -1999-01-06 : - - * Merged old CHANGES stuff into this file. Reformatted the - comments, but the content remains the same. - - (Michael: Revision 0.7.2 begins here) - -Mon Dec 21, 1998 : Michael Deutschmann - - * src/Makefile.am: distribute `debug.l-cpp', `prefs.l-cpp' files - - * src/Makefile.am: specified `font.c' to be removed by make clean - -Sun Dec 20, 1998 : Michael Deutschmann - - * src/misc.c: - (c_set_altchar,c_set_primary_char): added call to - update_video_screen(). - (c_initialize_charset): Replaced call to c_set_primary_char with - copy of most of its code (since update_video_screen is unsafe - to call here) - - (c_initialize_charset): fixed conditional so that 0xff char is - still removed if APPLE_IIE not defined. - - (c_initialize_charset): Removed "if (!altchar_flag)" - it is - always true here. - - * src/keys.c: - (c_set_rubout_key) Removed. - -Fri Dec 18, 1998 : Michael Deutschmann - - * Started revision 0.7.1 - - * configure.in: set version - - * Makefile.am: distribute '.apple2' - - * src/Makefile.am: Changed filename of SVGA apple2 back to just - `apple2' (from `sapple'). - - * src/Makefile.am: Fixed bug - seperate apple2-80.o was not being - made. - - * src/apple2.h: comments added regarding flag bits. - - - -Changes in 0.06 (Aug 98) : Aaron Culliney - - * Separated SVGAlib specific stuff into svideo.c. Added X - Windows frontend support in xvideo.c. The X frontend works - by doing an X(Shm)PutImage() of the emulator's framebuffer - around 30 times a second. This saves us from changing the - internal video routines (they assume direct access to an - 8bit framebuffer), and it's a heck of a lot faster than - trying to do an XPutPixels() on each change. The X frontend - only currently works for 8bit displays. Make sure you run - it using a mode (specified in XF86Config) that has a bit - depth of 8 (not 16 or greater). - - * We now build three versions of the emulator: svideo_320x200, - xvideo_320x200, xvideo_640x400. The last one really isn't - 640x400 for optimization reasons (568x384) although it - probably should be... Sorry, but there's no support for - switching resolutions on the fly, we ifdef it in with a new - define "_640x400". - - * Provided 80column support for the 640x400 X version. Now - you can PR#3 (running as //e) and get 80 columns. This - change required a resolution of at least 560 horizontal - pixels (Apple //e specs). - - * Both SVGA and X versions need to be suid root (for PC - speaker port access and SVGA stuff). But both versions now - give up root access during video initialization. This means - that disk access is now done as *you* (not root) even when - g(un)zipping images for loading. Before images would be - g(un)zipped as root. There was something about this that - made me uneasy... Now it's up to you to give the - appropriate user/group permissions to your disk image - repository. I make no claim about the security fitness of - this emulator. See the other READMEs and files for more - information/disclaimers. - - * Did a 180 on the disk image selection menu. now tries - to open disk images as read-only, 'W' for both read-write. - Of course this will only work if you have the correct file - permissions set (see above). I find this more convenient - b/c I play alot of the arcade games where you don't ever - save game state. - - * Removed the disk "Information" submenu. I never use it. Do - you? - -Changes in 0.05 (Feb 98) : Aaron Culliney - - * Added support for 65c02 instructions. The programs that - I've tested which use them work just fine. - - * Added support for 128k //e EXCEPT 80 column mode, B/W - DHIRES mode, and MouseText character set. The two - unimplemented video modes require major changes to current - video routines, thus a next version... New supported images - are copy ii+ 9.0, diagnostics //e, marble madness, airheart, - legend of blacksilver, pirates!... - - * Fixed some old problems with HIRES colors being off around - byte edges in interpolated/color modes. but we still give - you the option to use these "lazy" modes since emulation is - faster with them enabled... - - * You now have several new options in your .apple2 file. I - suggest either copying the distributed one over your - existing one, or merging the changes in. - - * Fixed some potential security bugs where a user could - traverse into sensitive directories by using the disk - selection interface. The current emulator version is not - guaranteed to be foolproof since it has to be installed suid - root for normal users to use it. Sysadmins should take - extra precautions as they see fit. - - * Added and deprecated some options in the debugger interface - to support the new 128k //e. see the DEBUGGER file for more - info. DEBUGGER support is not default compiled in. - - * Added some extra options to the .config file that you build - into the emulator. One big one: a way to set the max delay - count in the emulator to bring Apple ][ emulation rates down - to normal on high end pentiums!... 100 is the default delay - rate (which works just fine for low end 386-Pentium100's). - -Changes in 0.04 (June 97) : Aaron Culliney - - * Added PC Joystick Support. You must have the joystick - kernel loadable module 0.8.0 correctly configured and - installed to use this feature. - - * Changed the way the emulator handles the language card - memory space. We no longer patch rom/ram on lc_c08x - functions. I did this because under certain conditions the - previous versions of the emulator would run a lot slower. - Now you may notice the emulator running a tad slower in - general (because of the range checking), but Ultima 4 and - Arctic Fox (formerly unplayable) should now be just fine. - - * Changed the way the .apple2 preferences file is handled. I - Did this mainly to support saving of PC Joystick parameters, - and I'd rather let flex do the dirty work of regexp - matching. - - * Changed the disk interface and main interface menu. In the - disk interface, you can now see which disk is in the drive, - and with what permission for read/write drive 1. You - can eject this disk or force it to be write-protected. In - the main menu screen, you have more parameters to play - around with (associated with the pc joystick add-on). - - * Disk image files are now opened with user privileges, not - root privileges, even though the program is suid root. - gzip'ed disks are still handled as root, but we no longer - call the unsecure system() to do the dirty work. Instead we - fork and directly exec "/bin/gzip". - - * General bug fixes and enhancements. - -Changes in 0.03: (Jan-Feb 97) : Aaron Culliney - - * Fixed language card initialization bug. - - * Improved colors. Seems that Greens and purples we're - switched around. The colors are still slightly off, and - color interpolation seems screwy (TODO). - - * Added apple II debugger interface. This requires flex - version 2.5.2. (You can compile this into the program or - leave it out.) Type F7 to get into the debugger and type a - '?' to see a command summary. Check out the file DEBUGGER - for more info. - - * Added support for standard 232960 .nib disks. - - * Added a more intuitive interface to selecting disks. You - can now traverse forward and backward in a directory - hierarchy with the base directory set by your .apple2 config - file. - - * changed keymap: shift-p = @ and shift-N = ^, just like my - old II+ keyboard. - -Changes in 0.02: (8 Dec 1995) ------------------------------ - - * Ctrl-C will not kill the emulator with newer SVGAlib. Please - use SVGAlib > 1.2.9 for best results. - - * Rudimentory REPT key handling. It's too fast though. - - * The assembler files now compiles under ELF. - - * Not every SVGA card can do page-flipping. The emulator now - checks for this and fall back to VGA if it can't. - - * Keymap has changed a bit. Backspace and ']' is now <-, '[' is - REPT. - - * Disk extension changed to the more common .dsk (and a2d.info to - dsk.info). - - -Changes in 0.01: (9 Oct 1994) ------------------------------ - - * Standard VGA support with some performance degradation. - (When page flipping occurs, 64K memory banks are swapped; - hence the performance degradation.) - - * -vga flag switch added, e.g. "apple2 -vga"; forces standard - VGA detection. - - * (Trident) TVGA8900 page flipping bug fixed. - - * File names may now contain any character codes. (The previous - version had some problems with compressing/uncompressing file - names with extraordinary characters.) - - * Diskette selection retains last cursor position. diff --git a/NEWS b/NEWS deleted file mode 100644 index 0cf5dc8b..00000000 --- a/NEWS +++ /dev/null @@ -1,277 +0,0 @@ -Changed in 0.8: - -Upgraded to modern-ish times...X11 now uses 32bit color! - -Audio is now OpenAL instead of raw PC speaker access. We are indebted to -AppleWin for much of the sound code including preliminary suport for -Mockingboard emulation. - -Bugfix and simplification for PC Joystick. Joystick emulation is now -bug-for-bug compatible with original Apple ][. Better calibration routines and -better "feel" for emulation of joystick on keypad/arrow-keys. - -Better emulation fidelity overall by counting 6502 CPU cycles. This was -necessary for proper output of stream digital audio in OpenAL. - -Significant interface and preferences changes and simplifications. - -Changed in 0.7.4: - -Many bugs have been fixed, including a calling-convention mistake that -could cause unpredictable behavior on reboot. Potential buffer overflows -have also been corrected. - -Some key assignments have changed. Joystick buttons are now Left-Alt, -Right-Alt & Insert. Delete, formerly a joystick button, now produces the -DEL ascii code. Reboot is now Break (Ctrl-Pause), and Reset is now -Ctrl-Printscreen. (This is reversed from 0.7.3) - -Some significant optimizations were also made in the assembly code. The -large memory-access indirection table is now compressed using virtual -memory tricks, to slightly reduce cache load and swap requirements. - -Also many cleanups have been made in the internal code. This is -user-invisible, and far from complete. When done, it will become easier to -add new interface cards, video drivers, and other stuff, as well as port -to other unixes. - -Changed in 0.7.3: - -More makefile/configuration bugs were fixed. - -The `Mystery House' sample disk, which was accidently omitted from my -distributions, has been reinstated. Also, I've added a new sample -disk image - William Night's emulator performance tests. - -Changed in 0.7.2: - -The configure script will now react to absence of X Windows or SVGAlib by -only building an emulator for the remaining graphics system. - -A makefile bug that caused xapple-80col not to depend on -all it's source files was fixed. Also, the alternate character set is now -correctly restored on exit from the menu. - -Some major cleanups were done to the assembly-language files. This is -invisible to the user, but should make further enhancement a little saner. - -The banners on the source code have been synchronized. - -Changed in 0.7.1: - -1. Fixed a makefile bug that caused xapple-80col to be miscompiled. - -2. Put sample .apple2 (config file) back in. It was accidentally excluded -from 0.7. - -3. The SVGA emulator is again named `apple2', not `sapple2'. - -Changed in 0.7: (Sep 98) - -Version 0.7 - Michael Deutschmann - -1. Replaced "character.rom" and Aaron's MouseText table in misc.c with -a single file, font.txt, which is converted into a packed c table by a -generator utility. - -2. Overhauled Makefile system. We now use GNU autoconf/automake. - -Note: This hasn't been tested extensively. Also, there are a few automake -tricks I haven't bothered with - I added them to TODO. - -Changed is 0.06: (Aug 98) -------------------------- - -Version 0.06 - Aaron Culliney -My code changes have nothing to do with my employer, GTE -Internetworking, BBN Technologies. They were written completely on my -own time and on my own machine. - - 1) Separated SVGAlib specific stuff into svideo.c. Added X Windows - frontend support in xvideo.c. The X frontend works by doing an - X(Shm)PutImage() of the emulator's framebuffer around 30 times a - second. This saves us from changing the internal video routines (they - assume direct access to an 8bit framebuffer), and it's a heck of a lot - faster than trying to do an XPutPixels() on each change. The X - frontend only currently works for 8bit displays. Make sure you run it - using a mode (specified in XF86Config) that has a bit depth of 8 (not - 16 or greater). - - 2) We now build three versions of the emulator: svideo_320x200, - xvideo_320x200, xvideo_640x400. The last one really isn't 640x400 for - optimization reasons (568x384) although it probably should be... - Sorry, but there's no support for switching resolutions on the fly, we - ifdef it in with a new define "_640x400". - - 3) Provided 80column support for the 640x400 X version. Now you - can PR#3 (running as //e) and get 80 columns. This change required - a resolution of at least 560 horizontal pixels (Apple //e specs). - - 4) Both SVGA and X versions need to be suid root (for PC speaker port - access and SVGA stuff). But both versions now give up root access - during video initialization. This means that disk access is now done - as *you* (not root) even when g(un)zipping images for loading. - Before images would be g(un)zipped as root. There was something about - this that made me uneasy... Now it's up to you to give the - appropriate user/group permissions to your disk image repository. - I make no claim about the security fitness of this emulator. See the - other READMEs and files for more information/disclaimers. - - 5) Did a 180 on the disk image selection menu. now tries - to open disk images as read-only, 'W' for both read-write. - Of course this will only work if you have the correct - file permissions set (see 5 above). I find this more convenient b/c - I play alot of the arcade games where you don't ever save game state. - - 6) Removed the disk "Information" submenu. I never use it. Do you? - - - -Changes in 0.05: (Feb 98) -------------------------- - -Version 0.05 - Aaron Culliney -My code changes have nothing to do with my employer, GTE -Internetworking, BBN Technologies. They were written completely on my -own time and on my own machine. - - 1) Added support for 65c02 instructions. The programs that -I've tested which use them work just fine. - - 2) Added support for 128k //e EXCEPT 80 column mode, B/W -DHIRES mode, and MouseText character set. The two unimplemented video -modes require major changes to current video routines, thus a next -version... New supported images are copy ii+ 9.0, diagnostics //e, -marble madness, airheart, legend of blacksilver, pirates!... - - 3) Fixed some old problems with HIRES colors being off around -byte edges in interpolated/color modes. but we still give you the -option to use these "lazy" modes since emulation is faster with them -enabled... - - 4) You now have several new options in your .apple2 file. I -suggest either copying the distributed one over your existing one, or -merging the changes in. - - 5) Fixed some potential security bugs where a user could -traverse into sensitive directories by using the disk selection -interface. The current emulator version is not guaranteed to be -foolproof since it has to be installed suid root for normal users to -use it. Sysadmins should take extra precautions as they see fit. - - 6) Added and deprecated some options in the debugger interface -to support the new 128k //e. see the DEBUGGER file for more info. -DEBUGGER support is not default compiled in. - - 7) added some extra options to the .config file that you build -into the emulator. One big one: a way to set the max delay count in -the emulator to bring Apple ][ emulation rates down to normal on high -end pentiums!... 100 is the default delay rate (which works just fine -for low end 386-Pentium100's). - - - -Changes in 0.04: (June 97) ------------------------------ - -Version 0.04 - Aaron Culliney -My code changes have nothing to do with my employer, BBN. They were -written completely on my own time and on my own machine. - - 1) Added PC Joystick Support. You must have the joystick -kernel loadable module 0.8.0 correctly configured and installed to use -this feature. - - 2) Changed the way the emulator handles the language card -memory space. We no longer patch rom/ram on lc_c08x functions. I did -this because under certain conditions the previous versions of the -emulator would run a lot slower. Now you may notice the emulator -running a tad slower in general (because of the range checking), but -Ultima 4 and Arctic Fox (formerly unplayable) should now be just fine. - - 3) Changed the way the .apple2 preferences file is handled. I -Did this mainly to support saving of PC Joystick parameters, and I'd -rather let flex do the dirty work of regexp matching. - - 4) Changed the disk interface and main interface menu. In the -disk interface, you can now see which disk is in the drive, and with -what permission for read/write drive 1. You can eject this disk -or force it to be write-protected. In the main menu screen, you have -more parameters to play around with (associated with the pc joystick -add-on). - - 5) Disk image files are now opened with user privileges, not -root privileges, even though the program is suid root. gzip'ed disks -are still handled as root, but we no longer call the unsecure system() -to do the dirty work. Instead we fork and directly exec "/bin/gzip". - - 5) General bug fixes and enhancements. - - -Changes in 0.03: (Jan-Feb 97) ------------------------------ - -Version 0.03 - Aaron Culliney -My code changes have nothing to do with my employer, BBN. They were -written completely on my own time and on my own machine. - - 1) Fixed language card initialization bug. - - 2) Improved colors. Seems that Greens and purples we're -switched around. The colors are still slightly off, and color -interpolation seems screwy (TODO). - - 3) Added apple II debugger interface. This requires flex -version 2.5.2. (You can compile this into the program or leave it -out.) Type F7 to get into the debugger and type a '?' to see a -command summary. Check out the file DEBUGGER for more info. - - 4) Added support for standard 232960 .nib disks. - - 5) Added a more intuitive interface to selecting disks. You -can now traverse forward and backward in a directory hierarchy with -the base directory set by your .apple2 config file. - - 6) changed keymap: shift-p = @ and shift-N = ^, just like my -old II+ keyboard. - -Changes in 0.02: (8 Dec 1995) ------------------------------ - - * Ctrl-C will not kill the emulator with newer SVGAlib. Please - use SVGAlib > 1.2.9 for best results. - - * Rudimentory REPT key handling. It's too fast though. - - * The assembler files now compiles under ELF. - - * Not every SVGA card can do page-flipping. The emulator now - checks for this and fall back to VGA if it can't. - - * Keymap has changed a bit. Backspace and ']' is now <-, '[' is - REPT. - - * Disk extension changed to the more common .dsk (and a2d.info to - dsk.info). - - -Changes in 0.01: (9 Oct 1994) ------------------------------ - - * Standard VGA support with some performance degradation. - (When page flipping occurs, 64K memory banks are swapped; - hence the performance degradation.) - - * -vga flag switch added, e.g. "apple2 -vga"; forces standard - VGA detection. - - * (Trident) TVGA8900 page flipping bug fixed. - - * File names may now contain any character codes. (The previous - version had some problems with compressing/uncompressing file - names with extraordinary characters.) - - * Diskette selection retains last cursor position. diff --git a/PROBLEMS b/PROBLEMS deleted file mode 100644 index 728acc2d..00000000 --- a/PROBLEMS +++ /dev/null @@ -1,58 +0,0 @@ -Known issues with the emulator: - -Emulation Fidelity: - -- Disk emulation. The emulator is not very realistic. It handles almost -all non-copyprotected disk access okay, but copyprotected or diagnostic -programs may be confused by our drive, which magically spins at precisely -the optimal speed. (see Specific Programs, below). - -- Medium Resolution graphics. This is a rarely used //e mode that is to -Low-Res what 80 Column text is to 40 column text. We don't support it as -yet, although it should be relatively simple. - -- We don't emulate the //e's vertical blanking interval detection feature. - This is on the TODO list. - -Graphics: - -- Composite graphics artifacts are not emulated. This is on the TODO list. - -- B/W color setting does not apply to lores or double hires. This -generally is not an issue in practice though, as it's really only needed -to avoid color fringing in b/w hires images. - -- Double Hires mode is always 140x192 color. Some applications use it as -a 560x192 b/w display however. Note that most applications indicate -which mode they want using the high bit of the dhires data bytes, so it -wouldn't need to be a preferences setting. - -- If an 80-column mode is selected in the low-res emulator, nothing will -be written to the display -- the image from the last video mode will -remain on the screen. If a menu is brought up it will `stick'. This may -make people think the emulator crashed, although it will recover if the -application returns to 40-column mode. - -Keyboard: - -- Presently, the Backspace key is interpreted as Left-Arrow (Code 0x88). -It could be argued that it should be interpreted as Delete (Code 0xff) -instead. Real Apples had no seperate Backspace key, but the //e's Delete -key was in an analogous position to the PC's Backspace). The PC -keyboard's Delete is assigned to 0xff (in //e mode). - -Specific Programs: - -- Some programs (Computist's Nibbler, Sword of Kadash Master copy for -example) lock up. It appears (in debugger) that they are reading the disk -with the motor off. Perhaps they pulsed the real Apple's drive motor to make -it turn slower? - -- ProDOS will refuse to format disks, claiming that the disk is too slow. - -- ``Alternate Reality: The City'' seems to get jammed, rapidly changing -the video mode. I'm not sure if this is a real failure, or just a special -effect that takes longer than I'm willing to wait to finish (mode switches -would be much faster on a real Apple.) I can get into the program -with some nontrivial debugger manipulation to `short out' the offending loops. - diff --git a/README b/README deleted file mode 100644 index 0aafdb4f..00000000 --- a/README +++ /dev/null @@ -1,408 +0,0 @@ -************************************************************************** -* Apple II+ Emulator version 0.7 for Linux * -* * -* Original Author: Alexander Jean-Claude Bottema * -* Email : d91a1bo@meryl.csd.uu.se * -* * -* This program is free software; you can redistribute it and/or modify * -* it under the terms of the GNU General Public License as published by * -* the Free Software Foundation; either version 2 of the License, or * -* (at your option) any later version. * -* * -* This program is distributed in the hope that it will be useful, * -* but WITHOUT ANY WARRANTY; without even the implied warranty of * -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -* GNU General Public License for more details. * -* * -* You should have received a copy of the GNU General Public License * -* along with this program; if not, write to the Free Software * -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * -* * -* Modified: Dec 8 1995 by Stephen Lee * -* Modified: Jan 97 by Aaron Culliney * -* * -* Modified: Jun 97 by Aaron Culliney * -* * -* Modified: Feb 98 by Aaron Culliney * -* * -* Modified: Aug 98 by Aaron Culliney * -* * -* * -* Modified: Sep 98, Dec 98, Jan 98, Jun 99 * -* by Michael Deutschmann * -* * -* * -************************************************************************** - -NOTE: - This is basically the original README. See the CHANGES file -first for information on this specific version of the emulator. Then -read section 0 (installation) in this file for cookbook compilation / -installation instructions. Other information in this file may be -outdated, so read the manpage for up-to-date runtime instructions. - -Contents -======== - -0. Installation issues (briefly) -1. Why did I make an Apple II+ Emulator when there are so many available? -2. System Files -3. Keyboard & keys -4. Diskette database -5. Future plans -6. Status of the current emulator -7. Can you port this to DOS? -8. Availability -9. Known problems -10. Changes since the last -11. Final words - - -0. Installation issues (briefly) -================================ - -Requirements: SVGA lib version 1.2.9 (or later, see 9.) Tested under 1.2.13. - Kernel 2.0.X. Tested under 2.0.36pre12. - libc 4.4.4 (or later). Tested under glibc-2.0.6 - joystick 0.8.0 kernel module for PC Joystick support. - flex 2.5.2 (for compiling lex files) - - -1) Unpack this distribution in a temporary directory. - -2) Run "configure" for a normal build, or "configure --enable-debugger" -to add debugger support. (Other GNU autoconf options, such as --prefix, -may of course be used.) You may provide optimizations in the enviroment -variable CFLAGS. - -3) Type "make" to make the program. As root, type "make install" to -install the programs in $(BINDIR) and the man page in $(MANDIR), (both -configurable at the configure line). The sysadmin should enable the -setuser bit on "apple2" in order for it to use the VGA. Enabling setuser -on "xapple2" will allow use of the PC speaker, but is not essential. - -4) Copy the .apple2 configuration file to your home directory, and -read the manpage that was installed for further information on how to -configure this file. You can configure most of the settings from -within the emulator, (F10 for the menu screen), but you need the -system path correctly set to point to the rom files before you start -the emulator. The emulator won't run without the correct rom files -(see the manpage). - -5) After you're done configuring, type "xapple2" to run the -emulator under X or "apple2" to run using svgalib. There are two X11 -versions for different resolutions. Once running, F1 selects disk -drive #1, F2 selects disk drive #2, F10 gives you the main menu of -runtime parameters, and F5 shows you the keyboard lay out. - - -1. Why did I make an Apple II+ Emulator when there are so many available? -========================================================================= - -For three reasons. The first is that there are no Apple II emulators -especially written for Linux; hence they do not take advantages that -are commonly provided in Linux systems, e.g. the SVGA library -distribution. However, there is an Apple II emulator for X-Windows -that easily can be compiled on most UN*X architectures, but the major -disadvantage is slow emulation. You cannot obtain a fast emulator by -writing it in C, despite the elegant optimizations provided by GNU-C, -but of course it becomes more portable if you do that. - -By contrast, this Apple II emulator is partly written in 386 (AT&T) -assembler; partly in C. Only those issues that were not time critical -were written in C. Especially the CPU emulation was written in -optimized assembler to achieve optimum performance. The emulator -approximately runs twice as fast as an ordinary Apple II+ computer if -it is running on a 486 DX-50. - -The second reason is that there is no Apple II emulator which is 100% -usable. Either it is too slow or it is simply too fast (= there is no -option to trim the speed of the emulator). Furthermore, many -implementors happily avoid implementing mixed text/graphics in high -resolution mode; mostly because it complicates the programming. I have -never seen an Apple II+ emulator that is entirely complete. I think -most emulators fail on implementing the undocumented 6502 instructions -(those that are listed as ???), hence some games (or applications) may -not work despite they should. - -The third reason is that no emulator support an easy way to switch -diskettes given a database of diskettes. With this emulator you can -easily switch diskettes through an intuitive interface. You can also -add additional information for each diskette (in your database), e.g. -which keys to use for a particular game program. The information is -kept in a plain text file that can be edited with an ordinary text -editor, preferbly GNU-Emacs. -(Aaron removed the above feature) - - -2. System files -=============== - -Before you can run the emulator, three vital system files must be -available. These are: - -apple_II.rom (12k) This file contains the ROM of your Apple II+. - It is not distributed due to copyright issues. - You have to get this file on your own. If you - have been running another emulator, you can - probably use its ROM files directly. Technically - speaking, this file is a memory dump of the - consecutive addresses from D000 to FFFF. This - file may also be called by other names such as - apple.rom or apple2.rom, but is referenced - internally as apple_II.rom. - -appple_IIe.rom Likewise for IIe emulation. - -slot6.rom (256 bytes) Memory dump of the consecutive addresses from - C600 to C6FF. This file is not distributed - either due to the same reasons as above. This - file may also be called by other names such as - controller.rom, but is referenced internally - as slot6.rom. - -Other important files ---------------------- - -.apple2 This file is distributed. The file contains default - parameter settings. The most important parameter is - the setting of the system path, i.e. the directory - where the three vital system (ROM) files are - stored. Most of the other parameters can be - changed during run time via the interface - (activated by pressing F10). - - Parameters (that can be set in .apple2): - - speed = % Speed of the emulator - path = Diskette database directory - color = off Monochrome mode - on Plain color mode - interpolated Interpolated color mode - sound = off Silent mode - pc speaker Sound through PC speaker - joystick = off Joystick disabled - linear Linear joystick mode - pc joystick PC Joystick (see CHANGES) - digital (Atari) digital joystick mode - not yet supported - joystick range 1-256 range of joystick - origin_x = 0-255 Origin of the joystick (X) - origin_y = 0-255 Origin of the joystick (Y) - sensitivity % Joystick sensitivity - system_path = Directory where the system - ROM files are stored. - pc joystick parms You don't want to fool - around with these, you - generate these parms from - F10 screen "Calibrate" menu - item. - -dsk.info An example is distributed. This file contains - information for various diskettes kept in the database. - - Syntax: - {} i.e. the name is written - within curly braces. - - - {} ... etc. - -3. Keyboard & keys -================== - -F1 To switch diskettes in Drive A, Slot 6 -F2 To switch diskettes in Drive B, Slot 6 -F4, also Pause key Pause -F5 Keyboard layout -F8 Words from the author (removed) -F9 Toggle between maximum speed and configured speed. -F10 General parameter settings -Break (ctrl-Pause) Apple II Reset key -Ctrl Printscreen Reboot Apple II emulator - -The numeric keypad is used for joystick emulation. - -Left Alt Joystick button 0 -Right Alt Joystick button 1 -Insert Joystick button 2 - -F7 Debugger - (if it's compiled into the source). - Edit the Makefile if you don't want the - debugger. The emulator will run slightly - faster without the debugger. - - -4. Diskette database -==================== - -The diskettes are provided as plain binary files. These are actually -raw dumps, containing the tracks from 0 to 34. For the standard -143360 byte .dsk format each track is partitioned into sectors -numbered from 0 to 15. Each sector is 256 bytes. Hence, the data is -organized as the following: - -File offset (in bytes) Sector Track ----------------------- ------ ----- -0 0 0 -256 1 0 -512 2 0 -. . . -. . . -. . . -3840 15 0 -4096 0 1 -4352 1 1 -. . . -. . . -. . . -143104 15 34 - -To transfer Apple II diskettes into this format requires that you own -an original Apple II. Since the drives provided by the IBM PC's are -not compatible with the original Apple II drives there are no -conversion programs directly available. If you have used other Apple -II emulators it is most likely that the files will work with this -emulator too. It seems to be a common standard to structure the -diskettes in the above described way, e.g. the ApplePC and Apl2em -emulators for DOS uses the same structure. - -Emulated diskettes MUST have the .dsk or .nib extension (143360 bytes -or 232960 bytes respectively), otherwise the emulator will not -recognize the file as a valid diskette. However, it is valid to -compress them by using gnu-zip (then the extension becomes .dsk.gz or -.nib.gz). The emulator will automatically decompress/compress them -whenever required (note that it assumes /bin/gzip exists). - -Note that you can add information/documentation for the dsk-diskettes -by using an ordinary text editor and edit the file "dsk.info". The -name of the diskette is written in curly braces (without the .dsk -extension) followed by any information. - - -5. Future plans -=============== - -I intend to improve the emulator. Actually, for the next major release -(i.e. version 1.00) the emulator will be entirely rewritten. For minor -changes, see file CHANGES. - -[Note from Stephen Lee: since this hasn't happened yet, I took to - improving the existing emulator until Alexander release a new one.] - -[Note from Aaron Culliney: since this still hasn't happened, I also -took the liberty to fix a few things and add some functionality.] - -[v004 note: decided to add in some more features, and fix problems as -they've arisen.] - -6. Status of the current emulator -================================= - -Works in standard VGA Y -Works in SVGA (then using SVGA facilities) Y -Disk drive emulation (slot 6) (.dsk & .nib) Y -Disk drive emulation (slot 5) N (release 1.00) -High resolution emulation Y -Low resolution emulation Y -Mixed mode (in all resolution modes) Y -Correct color emulation (both Low and Hi-res) Y -Interpolated color emulation Y -Configurable speed Y -Diskette switching Y -Diskette database Y -Interface for parameter settings, etc. Y -Sound emulation (PC speaker) Y -Flashing text Y -Joystick emulation through numeric keypad Y -Virtual console switching Y (only when emu. is paused) -Raw keyboard mode (reading scancodes) Y -Undocumented 6502 instructions Y -Language card (i.e. additonal 16k RAM) Y -Serial card N (maybe release 1.00) -Works on DOS N (AND NEVER WILL) -Apple II Debugger Y -PC Joystick kernel module support Y - -7. Can you port this to DOS? -============================ - -No, for two reasons. The first, and probably the most important, is -that the current emulator use kernel specific issues that are not, and -never will be, available in DOS. Future emulators will be based on the -same principles, so the emulator will never run in DOS. The second -reason is that DOS is a bad operating system. It is a pain in the neck -to write and debug programs in DOS and there is no usable memory -management provided by the kernel (if the DOS "interrupts" can be -called a "kernel" at all). - -With this free software I hope that more users will switch to Linux -(which is a great operating system) and I have a dream that one day, -DOS will become a minority. - -8. Availability -=============== - -This distribution is available at ftp.apple.asimov.net, and -tsx-11.mit.edu, and sites mirroring these. - -9. Known problems -================= - -Problem: SVGAlib version 1.2.8 and below has a bug in - keyboard-handling that makes the '-' key (in the emulator) - unusable. - -Solution: Please use SVGAlib version 1.2.9 or above. - -Problem: The REPT (repeat) key repeats too fast. - -Answer: The current implementation is a kludge by me [Stephen]. I - might fix it later, but again, I might not. - -Problem: I can't switch virtual consoles while running the program - under gdb [Aaron]. - -Answer: Actually you do, it's just that the graphic mode stays valid. - If you have the svgalib utility "textmode", try a "shell - textmode" reset. I haven't played around enough to figure out - how/if you can get back to graphic mode after this. - -Problem: Compiling with optimization causes the debugger to choke - [Aaron]. - -Answer: I'm playing fast and loose with the debugger's assembly hooks. - I think it's something to do with -fomit-frame-pointer. And - since I don't see much speed gain, I'm ignoring the problem - for now. - -10. Changes -=========== - -see file CHANGES - - -11. Final words -=============== - -Note that albeit you can switch between digital and linear joystick -emulation, only linear mode is presently supported. I still haven't -figured out how the atari (digital) joystick emulation works, so I'll -save it to the next release (as I said in the previous release :-) ) - -[PC Joystick mode is just another linear mode. In general linear mode -seems to work fine for most games. If a game seems to be having -trouble with it, change the range from $100 (256) to $80 (128) with -center points at $80 and $40 respectively. Switching around ranges -often seems to do the trick for most games, but I bet I'm not handling -the joystick softswich values correctly. documentation on this is -scant. -Aaron] - -I hope you will enjoy this emulator. I do. Many games (that I have -ported) works perfectly, even those that use undocumented 6502 -instructions. Suggestions to improvements are welcome. My email -address will be valid at least one more year, i.e. as long as I am a -computer science student at the University of Uppsala in Sweden. - - / Alexander Jean-Claude Bottema (Email: d91a1bo@meryl.csd.uu.se) - Oct. 9 1994 15:44:21 diff --git a/README.debugger b/README.debugger deleted file mode 100644 index 9e182aa9..00000000 --- a/README.debugger +++ /dev/null @@ -1,154 +0,0 @@ -************************************************************************* -* * -* Apple II debugger routines for the Linux-x86 Apple II emulator. * -* by Aaron Culliney - chernabog@baldmountain.bbn.com - (C) 1998 * -* * -* My code changes have nothing to do with my employer, GTE * -* Internetworking, BBN Technologies. They were written completely on my* -* own time and on my own machine. * -* * -************************************************************************* - -The debugger console is a mid-size hack onto the main emulator code. -I did it b/c I wanted to fool around with some of my old games while -they were running and to debug the emulator itself. -The code is kinda ugly in some areas, but seems robust enough; (I've -used flex to handle most of the dangerous UI stuff). It runs a bit -slower than when you're in unrestricted emulation mode because it's -doing a lot of switching between C code and asm, copying state, and -checking breakpoints/watchpoints. - - -KNOWN PROBLEMS: --------------- - -When you hit a watchpoint or breakpoint, you have to step over it -before you can use the g{o}, f{inish}, or u{ntil} commands again. - ----------------------------------------------------------------------------- - -Usage: ------ - -F7 - enters the debugger. (actually we wait until we've finished with -the current 6502 instruction before we enter the debugger so we're all -synched up if/when we start stepping the machine). - -ESC - exits the debugger console. - -General Command format: - - command {optional part} (this | that) - ----------------------------------------------------------------------------- -Disassembling Apple II main memory and language card memory: - - d{is} {language card bank} {/bank/}{addrs} {+}{len} - - Examples: - "d" - disassemble from current location - "dis +5" - disassemble from current location +5 - "dis /01/2000" - (128k (//e) specific) - "dis lc1 d000 5" - disassemble memory +5 at lang card 1 0xd000 - -Note: {addrs} can be (d000 <-> ffff) or (0 <-> 2fff) for the language -card. - ----------------------------------------------------------------------------- -Dumping memory: - - m{em} {lc1|lc2} {addrs} {+}{len} - a{scii} {lc1|lc2} {addrs} {+}{len} - - Examples: - - "mem" - dump memory at current location - "m dead" - dump memory at 0xDEAD - "m lc2 2fff 1" - dump memory at lang card 2 0x2FFF +1 - "ascii /01/400" - (128k (//e) specific) - -Note: {addrs} can be (d000 <-> ffff) or (0 <-> 2fff) for the language -card. Also you need to specify the {addrs} if you're examining lc -memory. - ----------------------------------------------------------------------------- -Setting memory: - {lc1|lc2} : - - "4000:deadc0de" - set memory at 0x4000 to 0xDEADC0DE - "50lc2:def" - set memory at lang bank 2 0x50 to 0xDE0F - -Note: {addrs} can be (d000 <-> ffff) or (0 <-> 2fff) for the language -card. - ----------------------------------------------------------------------------- -Displaying machine state (registers, language card, drive, softswitches): - - r{egs} - registers - l{ang} - language card settings - dr{ive} - disk drive settings - vm - other virtual machine settings - ----------------------------------------------------------------------------- -Stepping the machine: - - (s{tep} | n{ext}) {len} - f{inish} - u{ntil} - g{o} {addr} - --*step* or *next* 0-255 instructions. - --*finish* current stack-frame (stop at RTS). - --step *until* PC == next instruction (good for finishing loops). - --*go* or jump to {addr} and continue executing until user hits a key. - ----------------------------------------------------------------------------- -Searching and setting/unsetting memory breakpoints and watchpoints: - - sea{rch} {lc1|lc2} - - "se deadc0de" - search for 0xDEADC0DE - "search lc2 def" - search lang bank2 (and lang card) for 0xDEF - - (b{reak} | w{atch}) {addr} - br{eak} op - (c{lear} | i{gnore}) {num} - c{lear} op - sta{tus} - show status of memory watch/breakpoints - op{codes} - show opcodes that we're stopping at - - "w c0e9" - watch memory at C0E9 - "br" - break at current PC - "br op 20" - break on opcode 20 - "clear 1" - clear breakpoint 1 - "ig" - ignore all watchpoints - "cl op 20" - clear break on opcode 20 - --break or watch addrs. (use in conjunction with g{o}) - --clear breakpoints, ignore watchpoints. - --show break and watchpoint status. - -Note: breakpoints and watchpoints persist even when you exit the -debugger console. They are only reset if you clear/ignore them or -virtually reboot. - - ----------------------------------------------------------------------------- -Loading and saving state: - - bload - bsave // - - bload binary 8000 - load file into memory - bsave pic /0/2000 2000 - save memory to file - - ----------------------------------------------------------------------------- -Miscellaneous: - - fr{esh} - clear screen of graphics diff --git a/TODO b/TODO deleted file mode 100644 index 4ba59bb5..00000000 --- a/TODO +++ /dev/null @@ -1,12 +0,0 @@ -Obviously this emulator could use extension. We could do with support -for more disk-image formats, additional interface cards, memory-image -save/restore, and other things. - -However, most of these things would require hooking into parts of the code -that are likely going to change radically in later versions of the -emulator, due to badly needed cleanups. Thus, I do not recommend trying -to extend this version alone. - -If you want to work on the emulator, contact us first. We can give you alpha -versions of the emulator to work on, and coordinate your efforts with -other contributors.