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.