apple2ix/ChangeLog

1254 lines
46 KiB
Plaintext

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 <michael@talamasca.ocis.net>
* configure.in: set revision to 0.7.4, final release
Thu Mar 2, 2000 : Michael Deutschmann <michael@talamasca.ocis.net>
* 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 <michael@talamasca.ocis.net>
* 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 <michael@talamasca.ocis.net>
* 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 <michael@talamasca.ocis.net>
* 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 <michael@talamasca.ocis.net>
* 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 <michael@talamasca.ocis.net>
* 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 <michael@talamasca.ocis.net>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <tom@trap.mtview.ca.us>
* 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 <michael@talamasca.wkpowerlink.com>
* configure.in: bump revision to 0.7.3n
* src/Makefile.am: Distribute prefs.h
Mon Aug 23, 1999 : Michael Deutschmann <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* src/interface.c (c_interface_keyboard_layout): applied
Culliney's patch to text. Button numbering is changed.
Thu Aug 12, 1999 : Michael Deutschmann <michael@talamasca.wkpowerlink.com>
* src/misc.c (c_set_altchar): Bug-fix - lowercase inverse chars
were shown as normal.
Wed Aug 11, 1999 : Michael Deutschmann <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* src/xvideo.c (keysym_to_scancode): add support for Break key.
Sat Jul 16, 1999 : Michael Deutschmann <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <apple2.h> 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* src/Makefile.am: no longer create seperate interface-80 module.
Fri Jun 18, 1999 : Michael Deutschmann <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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
<actually wasn't removed from misc.h until 0.3.7e>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* acinclude.m4: created, with macro A2_ASM_UNDERSCORES
* configure.in: Use this macro.
* src/apple2.h: added definitions to replace <linux/linkage.h>
* src/cpu.S, src/memory.S, src/display.S, src/diskio.S:
Remove <linux/linkage.h>
* src/svideo.c: Replace <linux/kd.h> with <sys/kd.h>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* src/cpu.S: Optimized addressing-mode macros
Sat Feb 6, 1999 : Michael Deutschmann <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* src/Makefile.am: Distribute "ASM" file.
Fri Jan 22, 1999 : Michael Deutschmann <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* src/*.[Sch]: Replaced copyright banners on all files.
Wed Jan 6, 1999 : Michael Deutschmann <michael@talamasca.wkpowerlink.com>
* 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 : <culliney@bohemia>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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 <michael@talamasca.wkpowerlink.com>
* 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.
<Lotsa changes occured between 0.06 and 0.7, but they were
not recorded.>
Changes in 0.06 (Aug 98) : Aaron Culliney <aculline@bbn.com>
* 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. <RET> 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 <aculline@bbn.com>
* 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 <aculline@bbn.com>
* 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 <rw1> 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 <aculline@bbn.com>
* 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.