problemkaputt.github.io/msxhist.htm
2021-01-14 23:48:20 -08:00

274 lines
18 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!----------------->
<BODY bgcolor="#ffffff" text="#000000" link="#0033cc" vlink="#0033cc" alink="#0033cc">
<FONT SIZE=+3>NO$MSX HISTORY</FONT>
<HR>
<B>Summary</B><BR>
<FONT SIZE=-1>
First, here's the summary of all public updates - for more detailed release
notes for each update read on below. It's been started as a
quick hack, and then ended up to become a bigger project.<BR>
</FONT>
<PRE>
Date Ver Description
05/03 1.5 Debugger/GUI improvements (symbolics, arezip preview, etc.)
03/01 1.4 Digital sound, Z80 trueflags, gmb-gui, fixes, carts, snaps, kanji..
03/00 1.3 MSX2 support, bugfixes, RTC, disk memio, interseg, etc.
01/00 1.2 Win32 version, 256K RAM, fullscr 256x200, IO map, updated A22i
04/99 1.1 Bugfixes, caps LED, F6-10 keys, pmode, video speedup, DSX tool
03/99 1.0 First version, written within only 5 days, basic features supported
09/95 --- Programmed Z80 CPU and PSG sound engines for my CPC emulator
12/94 --- Programmed 80x86 HACK debugger, the basement for the no$-debuggers
0?/85? --- Got hold of my first MSX computer, and started learning programming
</PRE>
<HR>
<PRE>
<B>1st May 2003 - no$msx version 1.5</B>
vram viewer: user scr, bgmap, tiles, oam (for now screen 2 only, windows only)
fileloader: arj/zipped ROM-file decompression working, arjzip preview
bugfix: fixed place_getold_charset (sometimes crashed before loading bios rom)
a22i: merges cont. dta lines into single dzone (saves ass/sym/dis mem) 11/2002
debugger: various news from my other emus (gui, hack, a22i, xed, arjzip, sym)
screen 0/40+80: supports name table base addrs other than zero (thanks luis)
autostart: forces blank boot screen when autostarting games (as from no$cpc)
debugger: basic de-compreter function view/list to file 11/2001 (from no$zx81)
emulation: added still rather trashy sprite collision detection 11/2001
<B>21st March 2001 - a BIG update - no$msx version 1.4</B>
shareware: it's now declared as shareware rather than freeware, need help!
flat32/carts: manually alloc. cart.mem (any size, faster loading / deUPXing)
debugger: i/o map screen shows name of last issued VDP DMA command
webpage: turned over to using important looking white background "#ffffff"
flat32: fixed double-linked DOS-stub (wasted 200h bytes) (same for cpc/gmb)
video: also freezes colors when using the freeze-disabled-display trick
msx2/video: vdp cmd log_move (9Xh) truncates xlen to width-dstx (barbarian)
icon: new "Zilog - Z80 in memory" icon
cartridges: mapper detection lookahead trick (fixes 'bounder' detection bug)
cartridges: allows bloaded cartridges (such like royal blooad: 1024 kbytes)
speedup: updates keyboard LEDs (if changed) only once per drawn frame
dos/memory: always allocated adlib periodes table (uploaded to xms like bios)
help: Z80 specs: described interrupt timings/modes, trueflags, memptr, mirrors
performance: excluded portar/z80 docs in optimized versions (saves 42KB)
performance: fast fake screen split in fast/optimized versions (zanac-ex)
performance: excluded new trueflags/hblank timing in fast/optimized versions
setup: memorizes last active setup screen (emu/debug/controls) for next F11
setup: selectable MSX BIOS charsets: european, russian, japanese, or korean
cpu: fixed short-distance-LDIR (not using MOVSD if DE=HL+2..3), same for LDDR
keyboard: emulates MSX numeric keypad (instead using normal number keys on it)
roms: included MSX 2.1 ROM as overlay, plus packed 2.0 and 1.0 ROMs (cpc-pack)
setup/ram: optionally emulates 8K, 16K, 32K, 64K, 128K, or 256K main RAM
setup/msx1: option disables MSX2 V9938 features, loads newly included MSX1 ROM
debugger: i/o map separately shows VBL/HBL-IRQ flags, show current scanline
cpu/ei: does not execute old interrupt if DI/ACK/DIS follows directly after EI
cpu/ei: if already IFF=1 executes like NOP (real t4,r1 instead dummy t0,r0)
disk: supports 7F80-4 I/O addresses (arabic) additionally to 7FBX and 7FFX
disk: accepts memory I/O only if lower adr byte exactly 80-87, B8-BF or F8-FF
disk: supports 7FB8-C I/O addresses (SVI/Technoahead) additionally to 7FF8-F
disk: supports reading from Port D4h (Brazilian DISK ROMs v.30 and newer)
disk: fixed force interrupt command D0h (instead F0h amazing bug but worked)
disk: recognizes LD A,(DE) as disk I/O ("Sharp" and "Technoahead" disk roms)
keyboard: suppresses automatic keytranslation on non-standard roms (japanese)
z80: IM 0 and illegal IM X behave like IM 1 as (with good luck) on real MSX2
z80: interrupts executed like opcodes, ie. counting real clock/refresh cycles
disk: no$cpc-style fast_disk_in trick (allows bios to read 200h bytes at once)
msx2: fixed VDP command D0h highspeed copy: xlen=0 -> maxlen ("Usas" sprites)
msx2: screen 5 display split scrolling (zanac-ex status bar)
interrupts: keeps requesting IRQs even if disabled, new int_mask for execution
keyboard: emulated "keyboard switch" using PGUP key (PGDN still = SELECT key)
keyboard: emulated kana/code LED using num lock LED (dos version only)
detail: correct memory mapper port FC-FF readback (unused upper bits set)
msx2: emulated accurate hblank IRQ and accurate vblank/hblank flag timings
video/hgc: fixed hercules/monochrome video option when enabled before emu run
setup: initializes bios config byte according to selected keyboard/country
setup/video: var. 256-pix vmode centering (mostly for my own bugged monitor)
setup: option to change date-format DD-MM-YY etc. (for MSX-DOS "dir" command)
video/msx2vdp: variable frame rate (setup option now only sets default in ROM)
.... trueflags, memptr
z80/trueflags: BIT N,OP: emulated UNDOC28 flags, verified correct P,S flags
z80/trueflags: CPL undocumented flags F=(F AND (FF-28)) OR (A AND 28)
z80/trueflags: SCF/CCF: documented H/N flags, and undocumented F=F|(A&28h)
z80/trueflags: undoc flags for RLD/RRD, undoc flags for RLCA/RLA/RRCA/RRA
a22i: produces error messages on "LD IXL,(rr)", and "LD (rr),IYH" etc.
a22i: error messages on "LD (rr),(rr)", and on "LD H,IXL" or "LD IXL,IYL" etc.
a22i: produces errors on "EX DE,IX/IY", and any CB-Opcodes with IXL,IYH etc.
z80: correct DDXX/FDXX timing/refresh for stupid XX command without HL/L/H
help/z80: verified all IXL/IXH/IYL/IYH commands & described in a22i/z80 doco
z80: emulates & disassembles undoc DDCB and FDCB opcodes, RRC A,(IX+D) etc.
a22i: fixed unrecognized "iyl" register (that's been lastmost in operand list)
help/dos: unloads temp-memory before allocating help-mem (prevent out of mem)
video: screen0/width80: emulated color attribute - static only yet (compass)
video: screen0/width80: 26.5 lines mode additionally to normal 24 lines mode
help/portar: added note about Lost-IRQ bug (reading IRQ while change from 0-1)
z80/vdp: interrupts not automatically acknowledged anymore (must read status)
z80/vdp: changed cycles per 50Hz from 71592 to 71328 - closer to reality
z80/msx: uses no$cpc-style 'prevv' value to bypass lost cycles at interrupts
z80: correct DD/FD-NOP timing emulation (even though doesn't make much sense)
z80: tested & fixed undocumented "IN 0,(C)" and "OUT (C),0" opcodes
z80/msx: measured & adjusted opcode timings from raw CLK to CLK+REFRESH
help/flat32: menubar includes help context links for z80, portar, dataformats
help: imported (and updated) Z80 specifications from a22i.txt
a22i: new .8080 directive that allows 8080/8085-compatible Z80 code only
help/portar: new chapters about kanji, rs232, cassette format, V9958 registers
help/portar: re-arranged VDP, FDC, PPI descriptions, new SSLOT description
help/flat32: always uses fontsize /fs18 instead sometimes buggy /fs20
video/flat32: more stable StretchDIBits (old memory DC did often kill colors)
video/flat32: draws blank screen border at left/right sides of background
video/flat32: vertically centers 192 pix background in 212 pix window
video/flat32: screen may be maximized and zoomed to any size (step 50%)
video: basically supports screen 4 (unless when bank switched/scrolled)
video: supports screen 7 (no sprites yet), fixed video "AND-command" (tetris)
dsx: DSX.COM includes new 'record image' option (for 1:1 copy of real floppy)
kanji: supports class 1 and 2 kanji (japanese character set ROM)
kanji: file KANJI.ROM may be in current "." directory, ".\ROM" or ".\ROMS" dir
kanji: 256KB KANJI.ROM file only loaded/allocated when actually accessed/used
kanji: in DOS versions EMS memory is required for kanji
filemenu/dos: shows only files with correct extension, "*" shows all files
internal/dos: moved screen redisp to separate segment to free mem in emu-core
debugger/dos: data/code window can be resized by mouse (as in windows version)
cartridges: supports ROM carts (currently windows only, and uncompressed only)
cartridges: autodetects Raw ROM, Konami 8K, Ascii 8K and Ascii 16K types
xed/flat32: fixed lost last character of not-existing filenames
snapshots/flat32: open-dialog with 'autostart' checkbox (new for cpc/gmb also)
snapshots: supports snapshots now (saves/loads state of CPU,IO-MAP,RAM,VRAM)
setup/flat32: setup screen layout, more sound options, fixed options colors
setup: separate boot/disk/logo/drive options instead general 'optimize' option
imported DSX.COM into emulator (for xed/a22i interaction) (and DOS edit file)
debugger: automatically shows IO address comments for IN and OUT instructions
debugger/flat32: modeless I/O map dialog (can show I/O map during debugging)
debugger/flat32: saves last screen position of I/O map in setup file
debugger/flat32: blank padded MSX font to 6x12 pix, also used in XED editor
emustop/flat32: right mouse button pause/context menu
emustop/flat32: activating debug-menubar during emulation stops emulator
lfn/spaces: allowed in filemenu, and in files.lst & commandline (quoted)
disks/flat32: file sharing allows same disk in both drives (use with care)
debugger: datawindow statusbar, flat32: statusbar DI/EI (all from no$gmb)
flat32/disassembler: fixed "ld (nnnn),<rr>" and "ld (ix+nn),<r>" (no$cpc 1.8a)
flat32: imported gmb GUI (flg-checkboxes, fast-text, debug splitter) (cpc1.8a)
flat32: replaced emulation menubar by context menu (r_mouse button) (cpc1.8a)
windows files.lst: 12x12 pix disk-icons in list (cpc1.8a) cart-icon if *.ROM
flat32: doesn't treat SPC in "C:\Program Files\Msx" as cmdline-param (cpc1.8a)
internal: recomb.cpc/msx and gmb DOS fileselect boxes (enables LFNs) (cpc1.8a)
internal: recomb.cpc/msx and gmb FILES.LST (cpc/msx-layout,gmb-code) (cpc1.8a)
internal: recomb.some cpc/msx and gmb HACK functions (codecenter) (cpc1.8a)
internal: recombined cpc/msx and gmb diskxxx and getmem (dos/flat) (cpc1.8a)
a22i: xed/a22i interaction (lineno, autostart from editor, autoedit errors)
a22i: copies assembled BIN files to BOOTDISK.DSK and autoloads/starts it
(autostart currently requires <name>.BAS that redirects to BLOAD"<name>.BIN",R
a22i: fixed indirect 16bit ix/iy load commands like LD IX,(NNNN) (no$cpc 1.8)
file popup menu: added eject disk a/b, and eject cart function (as no$cpc 1.8)
printer: supported under windows, and defaults to new setting (none) (cpc 1.8)
filemenu: allows more than 3 extensions/filetypes (DSK,ZIP,ARJ, and new ROM)
about: aboutbox in dos version, changed windows aboutbox layput (no$cpc 1.8)
emudetail: DAA instruction returns 100% correct AF for all 65536 AF (cpc 1.8)
calmdown: unlimted mhz disaster 100% and 50% frames working now (no$cpc 1.8)
internal: no$gmb shared init_path_sub,disksethomedir (as no$cpc 1.8)
keyb: DOS version supports AUTOMATIC keyboard translation (from no$cpc 1.7)
help: xed-based source, 128K size, windows .HLP format (as in no$cpc 1.7)
help: imported my updated portar hardware specs, connectors, etc. into help
sound: digital sound engine (optionally old adlib sound) (as in no$cpc 1.7)
alternate name for FILES.LST could be also NO$MSX.LST (as in no$cpc 1.7)
recombined MSX and CPC sources: Z80, HACK, PSG, SETup, other GUI/System things
internal: re-comb. cpc and msx source (debugger,GUI,setup screens,etc) (7/00)
internal: re-comb. cpc and msx source (DOS/windows filesystem, Z80 core)(7/00)
internal: re-comb. cpc and msx source (PSG sound core, etc.) (7/00)
setup/flat32: imported windows setup structure from no$gmb to cpc/msx (7/00)
digital sound: programmed digital PSG sound generator for cpc and msx (7/00)
digital sound: imported/shared digital sound player from no$gmb (7/00)
dos version: uses no$msx.inp file with old inputs also (10th July 00)
<B>25th March 2000 - one year no$msx - first MSX2 release - no$msx version 1.3</B>
y=208 hides all following sprites (thanx www.msxnet.org/tech/tms9918a.txt)
msx2 roms working (in screen 0,1,2 only), eggerland 1 works now
256kbyte ram works with beamrider (BFFF..C000 boundary), flat32:kb256
supported silly memory mapped disk IO, but at least it's an english diskrom
rtc emulated (uses dos system time/date, and saves MSX 'CMOS' in no$msx.rtc)
started with msx2 support, memory mapper in protected mode version
emulated VDP interrupt disable (zanac, thexder), keypad"*" reset clears RAM
made halts on illegal/buggy IO optional (thexder)
added automatic BOOST on reset and disk access in optional optimized mode
mapped RAM to pslot 3, disk to pslot 2 (instead portar map) (for buggy games)
disk memio via addresses DISKSLOT:BFFX supported (barbarian msx-dos loader)
128K vram emulation (cracked disk versions of MGalious and R-Type work now)
MSX2 background emulation & VDP commands mostly completed
removed mmm_spr_backup buffer for hiding, new code uses vram_flags instead,
possibly even faster and less complicated. changed vga-width to physically
256 pixels. vertically part-offscreen sprites displayed (hero)
particulary colored MSX2 sprites, even/odd vram discovered & emulated
interseg reljumps/opcodefetch for flat32 software ram 'banking' (mem mapper)
particulary supported zoomed 16x16 -> 32x32 pix sprites (sorcery,boulder dash)
screen 0 color changes, screen 3 support
flat32: AnimatePalette for fast hardware based color changes (8bit VGA mode)
<B>2nd January 2000 - first public windows version - no$msx version 1.2</B>
DSX 24K read ahead buffer for faster add files
added performance indicator
DSX replaced INT29 by INT21/06 for redirected output >SCRIPT.TXT
zoomed 8x8 sprites (maus, schnelle 15)
256K RAM emulation (penguin adventure) only real mode, eats up all conv mem
fast movsw instead movsb for draw/hide/copy sprites, and other video speedup
debugger follow jump works on djnz, too
tested 386 pmode version on 386-33 whew, hero runs at 150% without frameskip
two color display mode support for screen 0 and very nice dithered screen 1/2
two color mode on 'real' hercules, hgc with variable color 0 (beamrider)
256x200 pixels full screen video mode (requires expensive SVGA monitor)
forced screen width to 40 chars (instead 37 chars) in 'optimized' mode
assembled lite version (pklited exefile only 29K)
playable win32 version with graphics, filemenu, menubar, basic debug and huhs
blackscreen delay on 256x200 mode switch
unzoomed 8x8 sprites (Zauberschloss)
uploaded first win32 beta version (non-public, 15 August 99)
flat32: added adlib sound (uses direct IO though)
flat32: filemenu/setup disable (and keep in bg) 2nd active mainwindow (if any)
implemented newest no$gmb a22i version, flat32: online assembler works now
changed files.lst format to "Description>DskName RunName" without so many spcs
beside for the above listed news, all DOS functions are fully ported to
the windows version now. The F10-screen shows the complete MSX IO state,
no cpc-relicts left.
<B>27th April 99 - second public update - version 1.1</B>
fixed more variable vram addresses (zaxxon), null-mem emulation (zaxxon/bios)
pio ctrl (bit set/reset) and caps led emulation, direct F6-F10-key emulation
reset (keypad-*) de-installs autorun (from F12 menues)
uploaded bugfixes for version 1.0 (1 April 99)
adjusted some colors according to real msx, exchanged left/right ALT keys
variable vram address bit in screen 2 (konami games), rom seg fixes
fixed 'fatal/unexpected' error that crashed if DISC directory didn't exist
displayed disk type 360/720 in hwinfo screen, some other small hwinfo things
made protected mode version (10% faster), fast vram ss access
forced high frameskip only by whoosh button
partical screen redraws (display redraws in hero 10 times faster)
started DSX disktool (basically add, list, extract and delete works)
DSX commandline interface, renamed DISC directory to DSK
<B>30th March 99 - first public release - version 1.0</B>
loaded ROMs into mem, could read startup message in Hexdump debug window
keyboard support, text mode output in text mode (trashy)
charcter readback from vram, could write programs in basic
disk emulation, read only, works only with port-based (D0..D4) disk rom
got the keystone kapers demo running, in heavily corrupted graphic
german keymap with altgr
screen2/hero backgound okay, curse MAYER (pixelbyte would be at fixed xy)
colors, joystick and adlib sound support, hero playable
video and sound quality define a new form of terror!
disk writes emulated, double sided 720K supported, drive b: emulated
transparent BG color emulated (lines in beamrider, game works now)
fast optimize nodelays startup rom pokes, various country-keymaps
autostart via commandline 'no$msx diskname runname' and filemenu
emulated keyboard-joysticks, stick2, interrupt timing cleaned up
transp bg color changes recognized while emu running, various options
offscreen/EC emulation, buffered video output (no flickering sprites)
reversed sprite priority
fixed major sound bugs, public release, downloaded some more games
fixed screen 1 variable vram addresses (sorcery), 48K RAM (sorcery)
BUG: this version didn't work if the DISC directory didn't exist :-)
<B>25th March 99 - Project started</B>
one million thanks to the 'Portar.doc' for solid info about msx hardware
</PRE><HR><P>
<TABLE>
<TR><TD><A HREF="msx.htm"> <IMG SRC="nope.gif" WIDTH=36 ALT="BACK"></A></TD><TD><FONT SIZE=+1>Back to NO$MSX page</TD><TR>
</TABLE>
</BODY>