QPC2 version history

More changes that might affect QPC can be seen in the SMSQ/E version history.

5.02  Fixed direct loading of screens from WIN/FLP to screen memory
Mark DOS devices as "QDOS" style so QD doesn't do strange things to the line endings
Fixed CD-ROM media type (DMEDIUM_TYPE) to 3
5.01 Fixed tracing of TRAPs (thanks to Jan Bredenbeek) TCP driver returns EOF when IP connection has been closed Only convert DOS filename extension if it doesn't become ambiguous Fixed some further DOS device path problems Extended QPC_HOSTOS to detect more different operating systems Added support for byte-swapped QubIDE images (automatic detection) *** Needs at least SMSQ/E V3.38 5.00 Converted most parts from assembler to C, except the emulation core First version that is not compatible with Windows 95 anymore :-o XP or later is needed now Finally a new DirectX11 based screen driver! Much more compatible and faster Old screen driver still included for WINE or other situations QPC_QLSCREMU emulation now goes both ways, making it compatible with basically all old software Improved FLP driver including a new write cache for very fast disc writes DOS driver can now save QL header information like QemuLator DOS driver translates file extension separator "_" vs. "." (configurable) DOS driver transparently translates illegal Windows filenames like "con" into "con_" DOS driver moves files when creating directories like the SMSQ/E drivers DOS driver returns the correct size of sub-directory entries within directories DOS driver returns all filenames in correct upper/lowercase spelling DOS driver RENAME now also works on XP WIN/DOS/FLP configuration now has auto-complete edit fields Some improvement to power management Improved BEEP emulation for short beeps (too late for requester Lee Privett, RIP) Implemented 68000 STOP instruction Scan all monitors for biggest resolution, not just primary Added some missing CTRL+key keyboard combinations WIN/DOS/FLP_DRIVE commands now support environment variables, too Fixed IP_SENDTO/IP_RECVFM in IP driver (thanks to Martin Head) Implemented (mostly) QSOUND compatible AY interface, but with 2 AY chips First digitally signed QPC. This costs actual money, let's see if I can keep it up *** Needs at least SMSQ/E V3.37 4.05 Implemented IOF.LOAD and IOF.SAVE in IP driver Fixed some errors in IP driver (thanks to Wolfang Lenerz) Fixed setting of file dates in DOS device Fixed KEYROW value of left Ctrl key (Windows keyboard driver) 4.04 Completely rewrote DOS device in C Fixed a problem in the DOS device in conjunction with filenames with a space at the end Finally implemented RENAME support for DOS devices on Windows Vista and above! Respect "Keep aspect ratio" when going into fullscreen mode. This prevents double pixels on screens that are not divisible by 8 in x direction (e.g. 1366x768) Workaround for Windows problems with COM10 and higher Fixed SER_GETPORT$ for COM10 and higher Fixed formating DD floppy images Changed KEYROW to return 0 when QPC is not active (Windows driver) *** Needs at least SMSQ/E V3.26 4.03 Fixed zero flag handling in ADDX.L, SUBX.L and NEGX.L (thanks to Wolfgang Lenerz). Fixed zero flag handling in NBCD and memory variants of ABCD and SBCD. Fixed edge cases in flag handling of ASR, LSL. Changed SBCD to also conform to a real CPU when one or both operands are not BCD. 4.02 Fixed QPC_VER$. Added workaround for CTRL+ALT+SHIFT+TAB soft reset to work on Windows Vista and above. 4.01 Fixed configuration when config dialog is suppressed on startup. 4.00 Added new keyboard driver that uses the Windows Keyboard layout. Old driver is still available for compatibility reasons. Added new fullscreen mode that doesn't allow to change the screen resolution anymore but should behave much better. New QPC.INI configuration file that overrules the SMSQE.BIN settings. Position of QPC window is now remembered for next start (in QPC.INI). New energy mode "suspend" which disables the emulation when QPC is minimized. Added support for floppy disc image files. Vista/Windows 7 compatibility fix. Small terminal server (remote desktop) tweaks. Printer filter not called anymore when no data has actually been printed. Fixed stereo sound in SMSQ/E sound system. Crash in DOS device with unusual file dates (e.g. year 2087) fixed. DOS device can now list filenames with exactly 36 characters. Fixed potential crash in QPC_WINDOWSIZE. Fixed problem with "X"-close button not working sometimes. New command line option "-stretch" to force enabling of window stretching. Some re-design of the screen driver to improve stability. Trace and address exceptions now use 68020+ stack frames. Fixed problem in ADDX command, thanks to George Gwilt. Small bug in ABCD, SBCD and NBCD fixed (again thanks to George Gwilt). 3.34 Vista compatibility fix (re-implemented inet_network TCP/IP function). Small terminal server (remote desktop) tweaks. Printer filter not called anymore when no data has actually been printed. Fixed stereo sound in SMSQ/E sound system. Fixed problem in ADDX command, thanks to George Gwilt. Crash in screen driver fixed. Crash in DOS device with unusual file dates (e.g. year 2087) fixed. Trace and address exceptions now use 68020+ stack frames. 3.33 New emulation core! All 68020+ addressing modes and common instructions supported! Many thanks to George Gwilt, who did the initial work, it wouldn't have happened without him. Also thanks to François Van Emelen who once gave me a QXL card which was very useful for this development. Fixed closing fullscreen QPC through system menu. Implemented proper Numlock behaviour. Fixed used/free disc space display on DOS drives. Works around 2GB used/free space display limitation on Win95OSR2,98,ME. 3.32 QPC's task button can be transferred to the notification area ("system tray"), either permanently or temporarily when QPC is minimized. Option can only be changed by directly configuring SMSQE.BIN. Fixed problem with keyboard entries when QPC was minimized by clicking the task bar button. Bug in CHK command fixed, thanks to George Gwilt. Doesn't seem to be a very popular command, this bug has existed for over 9 years without anybody noticing! Increased maximum .WIN-filename length to 255 characters. Increased maximum DOS-base path length to 199 characters. Restrictions for DOS-base path names lifted. Windows file attributes now returned in DOS device file headers. SMSQ/E version is shown in configuration dialog title. Holding CTRL while using the mouse wheel stuffs ALT+left/right. *** Needs at least SMSQ/E V3.12 3.31 Some cosmetic fixes in the dialogs. The "browse directory" dialog in the DOS device preferences now defaults to the current setting. Fixed recently introduced bug in ABCD command. 3.30 Full IP (TCP/UDP) support! Mostly compatible to uQLx TCP/IP interface. 3 little words: Fastest! QPC! Ever! Up to 40% faster than 3.20! Yet another fix in the PAR dialog. Hope that was it now. Partially re-designed QPC<->SMSQ/E interface. Old SMSQ/E version are therefore completely incompatible! Raised number of PAR ports to 8. Still only 4 are configurable through the config dialog though, power users with more than 4 printers need to use PAR_SETPRINTER or directly configure the SMSQE.BIN file. Ignores all keys while one of the Windows keys is pressed. New command QPC_WINDOWSIZE x,y to set the size of the QPC window. New commands x=PAR_GETFILTER(port) and PAR_SETFILTER port,x to read/write the "use printer filter" flag of a PAR port. Fixed some repaint problems (black screen). Does not crash anymore when sound is set to "disabled". Fixed problem with volume control sliders. Fixed bug in 8-bit accelerated screen routines. Fixed problem with screen accesses that crossed the VRAM border. *** Needs at least SMSQ/E V3.09 3.23 PAR dialog sometimes didn't show the actual settings. Changed printer enumerations so that unavailable network printers don't delay everything. Slightly improved compatibility with Wine (/Cedega) Windows emulator. Removed small bug in new implementation of MOVEM 68k command. If "Keep aspect ratio" is selected window size snaps to exact multiples of SMSQ/E resolution when near that size. Umlauts in registration information are now handled correctly. SMSQ/E time could be wrong in the first second QPC is run. 3.22 Fixed QPC_EXIT command (bug introduced in 3.21). Restored compatibility with older Windows versions (also broken in 3.21). 3.21 Fixed automatic saving of the "Don't show config dialog on next start" option. Added "Default printer" option to PAR configuration dialog. New command PAR_DEFAULTPRINTER$ to get the name of the default printer. New commands SER_GETPORT$, SER_SETPORT to get/set the COM port. Cleaned up internal exception handling. Windows XP SP2 compatible. Emulation 10-15% faster on a P3 (mileage on other processors may differ). *** Needs at least SMSQ/E V3.08 3.20 Completely revised screen driver for improved stability (rock stable!). Support for the SMSQ/E Sampled Sound System! Changed BEEP system to work around problems with some sound drivers. Unified WIN and DOS configuration dialog. New sound configuration dialog. Switching Windows jobs using ALT+TAB doesn't send a TAB to SMSQ/E. Now also ignores some extended keys of multimedia keyboards. Fixed handling of SYS_CAPS capslock system variable. Changed MOVEM command to reflect behaviour of pre-68020 CPUs. For simplicity now also supports MOVEC VBR,x 68k command. Many code changes due to change of built tools (compiler+assembler). *** Needs at least SMSQ/E V3.07 3.12 Small fix in DOS device to make it even more compatible with WIN. SER ports can now be connected to COM ports higher than COM8. New command QPC_WINDOWTITLE to amend the title of the QPC window. Fixed a problem with relative WIN path names. *** Needs at least SMSQ/E V3.05 3.11 Improved free/total disc space calculation on DOS device. Name of DOS drive now reflects the real path. If it points to a drive this is directly returned (e.g. "C:\"), if it points to a path the last directory name is returned (e.g. "DIR" for "C:\QPC\DIR"). OS command line option now also accepts SMSQE.BIN files in directories other than the one QPC2.EXE is in. Fixed slightly unnormalised floating point representation of negative powers of 2. *** Needs at least SMSQ/E V3.01 3.10 Screen driver: - Added Aurora compatible 8 bit display mode! - Minor changes that may solve some stability problems. DOS device: - Fixed bug in iob.flin trap when the buffer is too small (file pointer was off by one afterwards). - Fixed bug with file names that had a space as last character. - It couldn't go into some directories. Fixed. - Added Win<>SMSQ character translation to DOS_DRIVE and DOS_DRIVE$. - Converted most code to C for easier enhancements/maintenance. - OPEN_DIR on a file now opens the directory the file is in (like WIN). Improved mouse handling when window is zoomed. New commands: PAR_PRINTERCOUNT, PAR_PRINTERNAME$, PAR_GETPRINTER$ and PAR_SETPRINTER. Introduced command line options: -? or -h: Show available options -os file: Load operating system from given file instead of SMSQE.BIN -cmdline "Text": Pass a text string to new SMSQ/E function QPC_CMDLINE$ Fixed switching to background priority when getting minimized. Fixed sound volume configuration option *** Needs at least SMSQ/E V3.00 3.03 DOS device: files that have too long names and are thus unaccessible anyway are now suppresed in directory listings. This way QPAC2's "whole tree" option works reliably again. DOS directory functions now a bit more compatible to the other drivers. DOS_DRIVE and DOS_DRIVE$ commands added. They work like the WIN_ functions. Implemented DOS commands (USE, DRIVE, DRIVE$) as thing ("DOS Control"). Fixed free/total sectors information of STAT and DIR for large drives. Beep emulation can now be configured to on/off/automatic. Furthermore the volume can be set. Both options are only accessible by directly configuring the SMSQE.BIN file (using MenuConfig for example). Fixed problem on some systems where QPC halted on screen output when minimized. *** Needs at least SMSQ/E V2d99 3.02 Fixed bug in DOS device iob.smul routine. Fixed bug in direct DOS-device to screen loads. Completely rewritten filename translation mechanism in DOS device. SER close problem fixed. Number of key presses for one mouse wheel tick now depends on the global Windows setting (lines per tick). iof.xinf now correctly returns the ioi_remv flag for WIN drives. Fixed bug in accelerated screen move function in conjunction with very small areas. Exchanged the old beeper emulation (which used the PC speaker) with a new one that uses Windows' DirectSound interface. This way NT/2000/XP have now full beeper support, too! I've decided to use a square waveform but with rounder edges which is a good compromise between the original "hard" sound and "save the loadspeakers" ambitions. The exact frequencies and timings were measured using a Hermes fitted QL. The algorithm is based on tests and on an original 8049 disassembly. All parameters including "fuzzy" and "random" are now supported. *** Needs at least SMSQ/E V2c99 3.01 The set clock routine could be one hour off on NT/2000/XP. Fixed WIN_DRIVE and WIN_DRIVE$ in combination with too long filenames. Fixed WIN_WP. Write accesses to read-only WIN drives now immediately return an error. Fixed problems with QPC_EXEC under Win9x. *** Needs at least SMSQ/E V2b99 3.00 New main config dialog reflecting the following changes: - "Keep aspect ratio": if set the window is always in the correct X/Y ratio for the current resolution. Can also be changed on runtime using the system menu. - X and Y size of the window can now be given. The values specify the client area (= SMSQ screen), excluding border and title bar. - Power management mode: if selected QPC does only use as much processor power as really needed. Especially useful for battery powered laptops, but I strongly advise to keep it selected on desktops, too (this way other processes can get more processor power)! The feature is still sort of experimental, tell me your experiences. The configuration dialog now has a button in the task bar. The SMSQ config block has been restructured. When running QPC in a window it's now always placed at the centre on startup. Disappearing cursor when starting in fullscreen mode and later switching to windowed mode fixed. This is a quite delicate matter, I just hope this doesn't make old problems reappear (mouse trails and similar stuff). Revised SER and PAR driver, they should be much more reliable now. Added PAR2-PAR4. SER/PAR config dialog extended accordingly. Added new "use filter" option to PAR ports. This will allow 3rd party filters to be incorporated into the print process. The check boxes will automatically get enabled when a filter is detected on the system. The option is only available when "printer" is selected for output. Bugs in SER_CDEOF fixed. Another small bug fix in floating point routines. One can now supply a base directory for the DOS device drives. This then acts as the root directory for the drive. Valid entries are normal directory and UNC names, e.g. "C:\WINDOWS\" or "\\MARCEL\SHARE\". Using the latter variant you can even access drives of other PCs over a network! It's also useful to get around the SMSQ/E filename size limit. There's a new dialog available to adjust the paths. DOS device now converts characters which are illegal on PC file systems ("*/:<>?\| and some more stuff) to some other characters and vice versa. DOS device's make_dir command now correctly returns err_fex if the directory already exists. Return code of DOS device's set date function fixed. OPEN_IN on DOS device files fixed. Support for wheel mice added. 3 Alt+up/down get stuffed into the keyboard queue for every wheel tick, thus enabling many PE applications to immediately profit from it. Windows 95 implements the wheel differently from all other versions and is not supported. Furthermore, some cheap no-name wheel mice might not generate the necessary messages either. QPC_MINIMIZE/QPC_MAXIMIZE/QPC_RESTORE SBASIC procedures added to control the QPC window. QPC_NETNAME$ SBASIC function added to get the network name of the current PC. Can be used to distinguish between several PCs in a boot program etc. QPC_EXEC filename [,parameters] SBASIC procedure added to start external Windows programs or files, e.g. "QPC_EXEC 'notepad','c:\text.txt'" or "QPC_EXEC 'c:\text.txt'" to start the default viewer for txt-files. QPC can now emulate the original 512x256-QL screen at $20000 in all resolutions and colour depths. This feature can be controlled using the QPC_QLSCREMU command. -1 as parameters enables the automatic mode (emulation depends on the last MODE call), 0 disables the emulation (this is the default), 4 and 8 force the emulation to the specified colour mode. In QL colour modes (4/8) the emulation always uses the same mode, only the 16bit mode can emulate both independently. With this feature some older applications do work quite seamlessly again. Fixed bug that caused the BGCOLOUR command to crash under Win9x. Removed QPC_PEEK[B,W], QPC_POKE[B,W], QPC_IN[B,W] and QPC_OUT[B,W] commands. Added shadows to PE windows in 16bit mode. CD_INIT didn't return a proper exit code when called for the 2nd time. *** Needs at least SMSQ/E V2a99 2.03 Fixed problem with 0x0 sized windows in 16bit mode. 2.02 Fixed bug which limited the range of SMSQ/E's floating point functions. DOS-Device: Open routine (bug introduced in 2.01) fixed. Date conversion routine fixed for dates in the far future. Improved mirror memory emulation for Win9x. This should solve some QLib problems. WIN_DRIVE with empty string doesn't crash the machine anymore. Printer port now remains open until all data is printed, even if PAR was already closed. *** Needs at least SMSQ/E V2b98 2.01 DOS-Device: Small bug in conjunction with DATA_USE etc. fixed. Increased filename limit to 36 characters. It was accidentally set to 32. Fixed EOF command. Can now open read-only files. SER-Device: Now there are 8(!) fully functional serial ports (ser1-ser8). Small but quite serious bug fixed. Could crash the emulation. Parity handling fixed. New config option "Disallow closing QPC through the system menu" (only available through menuconfig, NOT the startup config dialog). If set to "Yes", QPC can only be closed through "CTRL+SHIFT+SCROLL LOCK" and the QPC_EXIT command. 3rd mouse button works again. *** Needs at least SMSQ/E V2a98 2.00 (Final!) Fixed windowed mode for 24-bit desktops. Fixed behaviour of capslock LED. Fixed small bug in FPU-code. Re-implemented serial ports. CDEOF works now. Ignore-handshake on OPEN-call works, too, but a SER_FLOW call afterwards has no effect in this respect. Much more complete character translation in scrap<->clipboard function. Added DOS-device for native access to PC drives. Currently DOS1_ corresponds to C:\, DOS2_ D:\ etc. This version does not support the renaming of files. Fixed small problem in illegal address handler. 2.00 (Prerelease 3) Redesigned screen driver "kernel". Much cleaner code, much more reliable, smoother and faster. 2.00 (Prerelease 2) FLP format works again. Screen stretching is prohibited on PCs whose hardware are not capable of doing the job. Many fixes and improvements in the screen driver. Fixed AltGr-key behaviour when configured to Alt/Ctrl. Fixed saving-bug in config dialog if more than 16MB of ram was requested. 2.00 (Prerelease) New, up to 20% faster emulation kernel. The configuration block is now level 2. The old CONFIG and QCONFIG tools can't be used anymore. French configuration menus and messages now included. AltGr is now supported natively. Still it can be configured to Alt or Ctrl (that's for you, Thierry). Implemented new GD2 driver with 16-bit colour mode. Added some accelerated graphics functions for 16-bit mode. Implemented window-mode! Supported desktop modes are: 8 bit (QL colour only), 15 bit, 16 bit, 24 bit and 32 bit (so basically all I know of except 4 bit which isn't supported by DirectX anyway). You should have enough available VRAM for a copy of the QL screen. Alternatively AGP systems can use parts of main memory. The window can be scaled up. But use this on own risk, this MAY slow down the system noticeably or even render it unusable, depending on your graphic card and its drivers. Switch between fullscreen and window mode with CTRL+SHIFT+F12. The window can be configured to stay on top. This can be altered during a session using the system menu in the upper left corner of the window or in the task bar. All resolutions can be specified (limitations: must be more than 512x256 and the X resolution must be dividable by 32). The window will be in exactly the desired size. In fullscreen mode the next bigger supported resolution is chosen but SMSQ/E remains limited to the set resolution. Mouse position is now adapted from Windows. This works very smoothly :-) As a result all mouse settings (speed etc. except the wake factor) within SMSQ/E are useless now. The floppy drive gets released when all files on it are closed. All QPC functions and the audio-CD driver are now implemented as a thing. Most SMSQ/E floating point functions are now accelerated using the PC FPU. PAR device can now be connected directly to a Windows printer, so network printers can be used. *** Needs at least SMSQ/E V2.98 1.54 Cleaner memory management resulting in better mirror-memory emulation. SER4 finally works again *** Needs at least SMSQ/E V2a93 1.53 New command QPC_SYNCSCRAP. It starts a job which checks for changes in both the SCRAP (so the menu extension has to be loaded) and the Windows clipboard (about 2 times per seconds) and synchronizes the contents if necessary. Only text is supported, no bitmaps or whatever. 1.52 Ctrl-key gets released after using Ctrl+ESC New option "Leave ports open" in serial configuration. When enabled QPC doesn't return once allocated SER ports to Windows. This was requested because Win9x can need ages (which means 1 second) for opening a serial port. That's apparently too slow for some applications. 1.51 Changed SER-close routine because crappy Win9x didn't really close the ports with the old one. 1.50 First released version (Version number synchronized with QPC 1)