----------------- SMSQmulator versions -----------------
Implements UDP. Better handling of "use XTcc" option. Core bugfixes.
- ROXLimm v. 1.01 correct handling of X flag.
- ROXRimm v. 1.01 correct handling of X flag.
- ROXLreg 1.01 correctly set N flag if long rotate
- TrapDispatcher v. 1.26 Uses UDPHandler, no longer is passed IPHandler, trap9 differenciates between UDP and TCP.
- Monitor 1.22 No longer passes IPHandler to TrapDispatcher, this is created directly in there.
- UDPHandler v. 1.00 created
- UDPSocket v. 1.00 created
- XfaDriver v. 1.09 use_xtcc is made protected, not private (final).
- XfaFile v. 1.16 better handlling of useXTcc.
- NfaDriver v. 1.01 may change useXTcc on the fly.
- MonitorGui v. 1.36 set correct useXTcc status in checkbox and at startup.
The NFA driver handles files with the XTcc marker added at the end of files.
Windrives can be made removable.
Better keyboard handling.
Bugfixes: better wakeup after de-iconifying (keys work OK, mouse, mouse position), better PAN in Aurora mode.
- MC68000Cpu v.2.15 removeAllKeyrow added, moveBlock : even better handling of odd access for mode 16 (aurora 8 bit colour), correct PAN and SCROLL for that mode.
- RORimm v. 1.01, speedup.
- RORreg v. 1.01, wrong sr result corrected, speedup.
- ROLimm v. 1.01, speedup.
- ROLreg v. 1.01, speedup.
- LSRimm v. 1.02, speedup.
- LSRreg v. 1.02, speedup.
- LSLimm v. 1.01, speedup (no longer use barrel shift).
- LSLreg v. 1.01, speedup.
- MULUW v.1.02 use default instead of last case.
- MonitorGui v.1.35 (add HDD in setNewDeviceNames special mode onlm), set mouse position when de-iconifying, delete keystroke & mouse click
when iconifying, robot sets mouse pos when changed from SMSQ/E (formerly in TrapDispatcher).
- MC68000Cpu v.2.15 removeAllKeyrow added, moveBlock : even better handling of odd access for mode 16 (aurora 8 bit colour), correct PAN and CROLL for that mode.
- TrapDispatcher v.1.25 no longer uses robot nor x,y locations (robot used in MonitorGui - set mouseposition from there) ;
use FiFoQueue for newly added addToKeyboardQueue method, expanded trap#sE (special mode only: may setup SWinDriver).
- Smsqmulator v.1.25 flag for XTcc.
- Monitor v.1.21 added removeAllKeyrows, (special mode only : ) changes for HDD device ; inputKey now directly delegates to TrapDispatcher.
- NfaFileheader v.1.09 set correct header of executable file marked by XTcc at end of file, isExecutable() and getDataSpace() added.
- XfaFileheader v.1.01 isExecutable() and getDataSpace() added.
- SfaFileheader v.1.05 amended to suit.
- QemuFileheader v.1.04 amended to suit.
- XfaFile v.1.15 check for XTcc field at end of file, set fileheader accordingly, also in makeDirBuffer().
- XfaDriver v.1.08 may be set up to use XTcc field at end of file.
- IPSocket 1.02 (try to) catch and handle error when the connection is closed by the other side (treat java.net.SocketException,chech for -1, ,returned in receive1byte)).
- WinDriver v. 1.06 drives may be made removable, operations on inexsitent drive return err.mchk.
- WinDrive v.1.13 use wrong way to read the medium name for trap iof.xinf ($4f) ; set direct assess byte and removable flag in extended info block ; truncateFile doesn(t
try to reallocate xxxx sectors, but sufficient sectors to contain xxxx bytes! ; drives are made removable
- Screen16 v.1.12 combineBlocks optimized and correct when secondary wdw is moved.
- Screen32 v.1.16 combineBlocks optimised
- Screen v.1.24 resetMouseButtons, getMyMousePosition added, changed home and end button keystrokes (made configurable); home/end keys depend on config.
- FifoQueue v.1.00 : created
- Code split into even more different packages.
- WinDriver v.1.05 format uses Helper.limit2Range, deleteFile method removed.
- WinDrive v.1.12 correctly set read-only status in extended info block, use FileLockException, removed catching java.net.ProtocolException.
- WinDir v.1.07 use FileLockException, removed raising java.net.ProtocolException, make Directory didn't reset the openChannels if size increased.
- XfaFile v.1.13 when reading 1 byte from a channel (trap#3,d0=1) only affect the lower byte of D1, not all of D1 (!).
- NfaFileheader v.1.14 setAttr renamed getAttr
- FloppyDriver v. 1.08 checkdrive renamed (checkdriveisok) and returns boolean, inserted assertion in setNames
- MC68000Cpu v.2.14 copyMem better handling of uneven copies if srcStart is smaller than destStart
- TrapDispatcher v.1.24 simplified creation parameter list
- SMSQmulator v.1.24 use simplified creation parameter list for Monitor, MonitorGui. Only set screen size to fullsize in window mode 2 (3)
- Monitor v.1.20 simplified creation parameter list
- MonitorGui Creation params modified (removed vibrantColours as inifile is also passed), some instance vars removed (memsize). FormIconified introduces delay for Windows;
use BUTTON1DOWN_MASK instead of BUTTON1_MASK (doAltSpace)..
- DriveAssignmentsDialog v.1.06 handles preset option even if the array was NULL or didn't have the required number of elements.
- IPHandler v.1.04 contains the error strings, class IPError is abandoned, sockets are in an array not a map, writeCStringUnsafe used, better, nurt unsafe handling of gethostbyname I/O op.
- IPError and IPType removed.
- IPSocket v.1.01 constructor modified, uses array instead of map, CONN_STATUS and TYPE_ are in here, not IPType. Introduced timeout in receive1byte.
- MultiMonitorDialog v.1.01 sets location relative to parent.
- Screen v.1.23 some variables are made transient, alt is ORed not added.
- Screen32 v.1.15 loop speedup in fillBlock and xorBlock, clearBlock() and paintBlock() deleted,moveBlock speedup as no call to paintblock().
- Screen16 v.1.11 removed unused reference to vramBuffer, clearScreen removed (→ fillscreen(0)), combineBlock paints image pixels immedaitely and no longer uses paintBlock, which is removed,
loop speedup in fillBlock and xorBlock
- Screen0 v.1.12 clearScreen removed (→ fillscreen(0)).
Bugfixes : writing to a qxl.win increases the update check number, better handling of NFA write protection.
- WinDir v.1.06 when making a dir and setting an existing file in it, copy entire dirname to file's header (was 1 char too short).
- XfaFile v.1.12 when creating a directory file, check if access is permitted (canRead) if not return access denied.; set ExtendedInfo : set read only byte
- XfaDriver v.1.07 fileOpen if dir, check whether one can even read this dir, if not return access denied.
- WinDrive v.1.11 writeFAT increases the update check number.
- IPHandler 1.03 IOB.FLIN, make D1, D2 comparison on (unsigned) word only, not LW.
Bugfixes in CPU core, replacement arithmetic routines.
- smsq_java_driver_snd_ssss_asm : use new trap #5 vector (=38) to get ssss sample size.
- ANDI_CCR v.1.01 only set the BYTE of the SR!
- Monitor v.1.19 use length of CPU pcs array to display content of it with "dp" command.
- Arith v.1.10 sometimes we dont't need to round up the result (in double2QlFloat), sin(pi) returns 0
- Screen v.1.22 fudge for "\" = ALTGR + "_" on french keyboards
- TrapDispatcher v.1.23 get samplesize from SampledSound object (samplesize = how many bytes are still in the queue)..
- SampledSound v.1.06 getSample() introduced: get the size of the sample in the queue.
- WinDrive v.1.10 rename file can't be to a directory.
Improvements: SoundDevice can do resampling, different (hopefully better) way of handling mouse scroll wheel. JVA_SYNCSCRAP, "/" may be replaced by
the name of the directory where SMSQmulator found (or created) the .ini file. JVA_MINIMIZE.
Bugfixes (for windrives, win_drive$, setting drives for devices with different usage names, IEEE floats...)
- JVA_SYNCSCRAP added.
- driver_snd_ssss_asm modified totally.
- SoundDevice v.1.02 add resampling for 22.5 Khz dataline.
- SMSQmulator v.1.23 set new parameter for SoundDevice ; config item MOUSEWHEEL-ACCEL ; new way of handling finding of ini file ;
./ expansion added ; may use command line parameter = entire ini file path.
- MC68000Cpu v.2.13 writeSMSQEString : if string is empty but not null, write 0 word ; set and removeKeyrow : do not presume sysvars at $28000.
- XfaDriver v.1.06 openFile as directory, use root dir if no part of the file is a dir ; use correct subdir found, if any.
- Monitor v.1.18 inputMouseWheel created, when setting device names handle "./".
- Screen v.1.21 different way of handling mousewheel ; setMousewheelAccel created.
- TrapDispatcher v.1.22 don't add fileseparator at end of name if it is for win or mem drive ; get/setNamesForDives: if
device not found in map (different usage name) use getDeviceFromMapValues ; expand scrap operations to include
starting/stopping of clipboard monitor thread, all scrap ops now in TRAP D ; setDirForDrive : passing a single space is the
same as no name at all ; trap c modified for JVA_IS_QLSCREMU%
- WinFile v.1.07 when getting the length of the root dir, get the length set in root sector minus the fileheader length..
- Helper v.1.04 handles conversion for øå¿æÑÆŒ€.
- NfaFileheader v.1.08 setAttrs implemented, try to set some native file attributes in header..
- XfaFile v.1.11 use NfaFileheader.setAttrs in makeDirBuffer to set some file attributes in SMSQE file header.
- Arith v.1.09 sometimes we need to round up the result (in double2QlFloat).
- IPHandler v.1.02 handleTrap added case 7.
- MonitorGui v.1.33 when setting device names, show to what "./" will be expanded.
- DriveAssignmentsDialog v.1.05 show to what directory "./" will be expanded.
- Screen32 v.1.14 getColoursFromStipple correctly for horizontal stripes.
- SampledSound v. 1.05 interface SMSQE to this object totally revamped, all the buffering is now done in java
- Sounddevice v. 1.03 revamped, uses SampledSound to actually play the sound.
Bugfixes : devices submenu pointer position corrected, win_use$/win_drive$ gets name even if device has a different usage name.
Features : CTRL + mousewheel produces left/right scroll keycodes. JVAxxxx keywords normalized.
- MonitorGui v.1.32 setDeviceNames : when setting the ptr. pos. for opening the dad wdw, use a new point if ptr is outsie the wdw.
- WinDir v.1.05 deleteFile: if file to be deleted is a subdir of mine, and if it is deleted, rebuild subdir list..
- Screen v.1.20 CTRL + mousewheel produces left/right scroll keycodes.
- TrapDispatcher v.1.21 get drivename (trap5,15) gets name even if device hae different usage name ;
trap 5; cases 28,29,30,36,37 : interface change, needs smsqe 3.31.
- WinDrive v.1.09 readFat : if non standard drive, the warning wdw referred to the wrong drivename.
- MOVEAnWxx (all) byte size was indicated wrongly as word size when disassembling.
- IPHandler v.1.01 interface change for get_netname (case 6), needs at least 3.30.0002.
- MC6800Cpu v.2.12 RESET instruction is actually linked in.
Bugfix release : better handling of nfa/sfa drives, keyboard handling.
- XfaDrive v.1.05 openFile doesn't crash if directory not found.
- XfaFile v.1.10 don't show files whose filenames are too long.
- Screen v.1.19 CTRl-Shift +a..z produces keys 160+ ; mac : ctrl shift c is not the same as ctrl c.
- TrapDispatcher v.1.20 resetDrives, use map.values directly.
- QemuFileheader v. 1.03, show correct file size in directory, setFileDates : setting a file date to a date before 01.01.1970 will set date to 01.01.1970.
- NfaFileheader v. 1.07 setFileDates : setting a file date to a date before 01.01.1970 will set date to 01.01.1970.
- XfaFile v.1.09 if file is a dir on sfa and file has qemuheader: set correct filelength in dirBuffer ; getExtendedInfo is for all files, not ony dirs..
- XfaDrive v.1.04 openFile better handling of names in chan defn block when opening a directory file.
- Screen16 v.1.10 xorBlock correct handling when trailing or leading ; writeByte doesn't exceed max buffer size at bottom right.
- Screen v.1.18 totsize variable introduced.
- WinDrive v.1.08 openfile : if dir open for an inexisting dir, copy filename of underlying dir correctly.
JVA_VER$, JVA_WINDOWTITLE, JVA_NETNAME$ implemented. TCP and SCK drivers should work with most common calls.
Unlockable qxl.win files may be made read only. SampledSound will upsample to 22.05 Khz. Various bug fixes. Better QL Screen
emulation. Window may popup or icon flash if popup event.
- smsq_java_driver_scrap_asm - implement jva_ver$, jva_windowtitle, jva_netname$, jva_popup.
- smsq_java_driver_ip_xxxx many changes.
- smsq_java_copyscr_asm revamped for jva_qlscremu.
- iod_con2_java_xmode_asm catch mode change for automatic mode setting if scr emu.
- Localization v.1.03 version made into variable, getVersion and getQLVersion added.
- TrapDispatcher v.1.19 trap5,36 for SMSQmulator version implemented, also 23-35 for fillblock/xorblock
and 37 for windowtitle ; drive query return empty string if no drive defined ;
setDirForDrive also stores setting in inifile (calls MonitorGui) and shows them in Gui,
Trap5, D0=5 : set emulated screen mode implemented; setDirForDrive and setNames use forceRemoval
parameter ; reset force resets the drives, resetDrives() implemented, Trap $b for popup
- Screen16 v.1.09 ,Screen32 v.1.14 fillBlock and xorBlock totally rewritten, they are called from TrapDispatcher, not the cpu.
- Screen0 v.1.11 and all other Screen objects: readXXXXFromScreen and alphaBlock removed, copyScreen moved to Screen object.
- IPError 0.00, IPTypes 0.00 added.
- IPHandler v.1.00 implements SCK and TCP, trap 3: 1-7,50,51,53,58,59,5b,5e,62,7b,7c. No UDP.
- IPsocket v.1.00, handles common ops for TCP and SCK.
- Arith v.1.08 better handling of negative mantissa, -32768 is no longer a special case.
- IPReadAheadBuffer v.1.00 to allow "peeking" the socket input stream.
- Screen v.1.17, readXXXXFromScreen, alphaBlock and getCopyMode removed, copyScreen implemented here,
accept "automatic" qL screen emulation (field QLmode) ; µ,£ and ¤ keys corrected.
- MC68000Cpu v.2.11 fillBlock, xorBlock deleted ; setEmuScreenMode fallthrough method implemented.
- Monitor v.1.17 setCopyScreen amended to suit jva_qlscremu ; setNamesForDrives; forceRemoval parameter
to force "unmount" of existing drives and remount.
- SMSQmulator v.1.22 new config option to make unlockable qxl.win files read only ; correct window mode settings (when did they get changed back?).
- WinDrive v.1.07 readFat : unlockable qxl.win files may be made read only.
- DeviceDriver, WinDriver 1.04, XfaDriver 1.03,MemDiver 1.02 setNames takes additional parameter to force removal of existing drive before resetting it.
- SampledSound v.1.04 resampling if 22.05 Khz is chosen, thanks to Marcel Kilgus for the algorithm.
- SoundDevice v. 1.01 implemented iob.sbyt, posre, flush and added resampling..
- MonitorGui v.1.31 1.31 device names set from within SMSQ/E are stored in the inifile ; new config item locked
qxl.win files may be read only ; SUSPEND-WHEN-ICONIFIED state is actually loaded at startup ;
new config item action upon jva_popup ; java version item added.
- WinFile 1.06 readbytes, getLine, sendMultipleBytes: return bytes read / sent in D1.L, not only D1.W, trap#3,D0=6 implemented.
- XfaFile 1.08 getLine,saveFile: return bytes read / sent in D1.L, not only D1.W, trap#3,D0=6 implemented , setdate modified ;
call setFileDates when closing file ; max. file name length is 36 chars not 34.
- XfaDriver 1.03 trying to open a non-existing file returns err.fdnf and not medium is full.
- XfaFileHeader setFilesDates added.
- NfaFileheader v.1.06, SfaFileheader v.1.04 and QemuFileheader v.1.02: setFileDates implemented
- TBflasher v.1.00 A class to flash the taskbar icon, if it is not focused.
This contains several bugfixes (stipples in mode 32, Beep, CMP instructions, file open on xFA devices),
configuration of SSSS sample frequency and the possibility to copy the original QL screen to the extended display.
- java_copyscr_asm implemented.
- iod_con2_java16_block_asm - call java for all operations.
- smsq_java_driver_snd_ssss_asm better way to kill sound.
- Various files throughout: ByteBuffer allocations are no longer made with direct allocations (allocateDirect) but with normal ones.
- CMP_AnContent, CMP_AnPlus, MOVEAnT1...T8 : Correct size indication when disassembling .byte.
- BEEP v. 1.05 improved parameter handling, should produce sounds closer to the original.
- XFADriver v.1.02 if file open is exclusive, file is locked in MY fileOpen method.
- XFAFile v.1.02 attempt to lock the file is made in XfaDriver.
- Screen v.1.16, Screen0 v.1.10 ,Screen16 v.1.08, Screen32 v.1.13 copyScreen implemented, setDisplayRegion.
- MC68000Cpu v. 2.10 setCopyScreen implemented.
- CPUforScreenEmulation 1.00 new: alternate CPU for screen emulation.
- Monitor v.1.16 setCopyScreen implemented, changeMemSize: provide for alternate CPU, reset cpu for floppy if cpu changed
- TrapDispatcher v.1.18 implement trapC for original QL screen copying ; Trap5, cases 32-35 for better mode 32 screen fill and xor.
- Types adjusted to suit, needs SMSQ/E v.3.27.0002.
- SMSQmulator v.1.21 may use CPUforScreenEmulation, new config item.
- MonitorGui v.1.30 allowScreenEmulation config item added.
- Localization adjusted to suit new config item.
- FloppyDriver v.1.07 setCpu added.
- Screen32 v.1.13 copyScreen implemented, setDisplayRegion - new,, fillBlock & xorBlock totally revamped.
- SampledSound v.1.02 better handling of killsound, faster killsound by limiting the sample size in getFromQueue, frequency in object creation.
Bug fixes. Version for SMSQE 3.26.
- iod_con2_java8_spcch_asm : do not clr.l odd addresses.
- SMSQmulator Bugfixes
- Size of rom file set to 350000 throughout.
- Screen16, screen32 provide for alpha block., NIY
- Screen0 v.1.09 set stopAddress correctly, don't write beyond screen.
- TrapDispatcher v.1.17 fixed reset (in some cases!!!=.
- MC68000Cpu v. 2.09 moveBlock : better handling of odd cases for mode 16 (aurora 8 bit colour).
- DBcc slightly optimized.
- MOVEAnD1 slightly optimized for word sized op.
- SMSQmulator v.1.20 correct window mode settings.
- MonitorPanel v.1.01 also implements down keystroke in buffer.
- Arith v.1.07 -32768 is treated as NAN and handed back to smsq/e. (sometimes it's 80f , 00000000)
Arith bug fix, Full size window implemented, exit item in "files" menu.
- Screen v.1.15 isFullSize field, getPreferredSize returns screen size if isFullSize..
- Screen0 v. 1.09 set stopAddress correctly, don't write beyond screen.
- MonitorGui v.1.29 creation requires new parameter (window mode); new config item for window mode and display
full screen on which monitor?, and corresponding action routines ; if full screen window mode, window is
undecorated; setupScreen calls Screen.setFullSize ; exit item in files menu and acction routine.
- Localization amended to suit.
- SMSQmulator v.1.19 new config option "WINDOW-MODE" ; set Screen x, y sizes according to window mode.
- Scc,DBcc and Bcc : corrected case 13 (already in second version of 2.17)
- TrapDispatcher v.1.17 fixed reset.
- MultiMonitorDalog - new.
- Arith v.1.06 0x7b,0x86a80000 is a special value = 360. I'm sure this is a bug in SMSQ/e somehow (sbext_ext_turtle_asm)
Floppy driver bugfix, RORimm bugfix. Small optimizations for speed. When changing screen mode, this is acted upon
immediately (immediate reset).
- Bcc, DBcc, Scc : yet more different flag handling for some tests.
- MC68000Cpu v.2.08 traceFlag set at various states, avoids ORing reg_sr, newInterruptGeneated no longer volatile,
use variable for RTE opcode in executeContinuous, readMemoryLongPCInc use ++ twice, testTrace() introduced.
- Localization added forgotten italian translations
- Arith v.1.05 cosmetic changes
- Screen0 v.1.08 implement getScreenSizeInBytes, setVibrantColours takes vram parameter, isQLScreen() introduced.
- Screen16 v.1.05 , Screen 32 v.1.11 The vrambuffer is now within the main memory, no longer a separate buffer
created in the objects, all operations involving writing to the screeen memory adjusted accordingly ; implement
getScreenSizeInBytes, setVibrantColours takes vram parameter. moveBlock streamlined, fillBlock and xorBlock never
return error ; isQLScreen() introduced.
- RORimm if word sized op, test with $8000 and not $80
- MOVEAxx streamlined for word sized move.
- FloppyDiver v.1.06 correctly get floppy number parameter for setDrive.
- Beep v.1.04 kill sound before playing new one.
- Monitor v.1.15 changeMemSize also called when new screen made, reset no longer changes screen.
- MonotirGui v.1.28 Monitor.changeMemSize amended parameter used when changing mem size, screenSizeMenuItemActionPerformed makes new screen,
screenMode variable introduced, monitor.reset() no longEr takes params, when screen mode/colours are changed,
this takes effect immediately (setScreenModeForNextRestart), Throttle removed.
Small optimizations for speed, screen update interval is selectable.
- All instructions : removed class variable cpu, execute is called with cpu parameter, seems to give slight speed boost.
- Bcc, DBcc, Scc : flags moved into the instructions instead of the general class code.
- QL50HzInterrupt v.1.06. Update interval is selectable
- MonitorGui v.1.27 getMonitor() implemented, screen update rate, devices sub-menu added.
- Monitor v.1.14 setScreenUpdateInterval implemented.
- TrapDispatcher v.1.16 implements sending screen update value to monitor (trap 5, case 29).
- Screen16 v.1.04 moveBlock implemented for all sources & destinations.
- MC68000Cpu v.2.01 when writing mem, no need to OR the value with $ffff when cast to short ;
moveBlock does the RTS directly, copyMem handles all cases.
- JVA_SCRUPDT and JVA_MBAR_STATUS implemented.
- XfaFile replace getCanonicalPath by getAbsolutePath, to get names correctly via symlinks.
- (Inifile : revamped, can use tabs instead of spaces).
- ADDQ_Dn 1.01 addq.w and .b handle roll over to neg correctly.
- Localization 1.02 MB -> MiB, many spelling errors corrected throughout, better spanish translation..
- BEEP v. 1.03 PlayThread sleeps for 1/1000th of a second before draining, helps openjdk (dunno why).
- MOVExxx when moving a word both from AND to mem, use readMemoryShort
Bugfixes (LSR, xxx_USE$, keyrow), Italian version, some optimizations.
- smsq_java_kbd_keyrow_asm : calling kbd_keyrow with d1 = 14 no longer tries to read keyrow 0 (!).
- LSRreg, 1.01 LSR.L corrected, used >> instead of >>>.
- TrapDispatcher 1.15 xxx_USE$ works correctly ; devices are held in an array, no need to call every device in turn when opening files/ using them.
- WinDriver 1.04, XFADriver 1.01 modified open as a consequence of the above.
- Device drivers : removed a lot of code where the deviceID is passed and checked on in method calls (open, close, format, trap3ok etc).
- WinDrive 1.06 small optimizations, files aren't passed chan defn blk.
- WinFile 1.05 small optimizations, files aren't passed chan defn blk, setFileHeader call uses the true length of the file, not the one passed in the header block (!)
- WinDir 1.04 checkForFile, findInDirs, optimized ; fileIsDir uses better index, setFileHeader sets the length passed to it.
- WinDir 1.04 checkForFile, findInDirs, optimized ; fileIsDir uses better index, setFileHeader sets the length passed to it.
- CircularBuffer 1.01 number of elements in buffer never exceeds capacity.
- XfaFile 1.05 set correct extended info as to format/type/density.
- Localization 1.01 added Italian.
- MonitorGui 1.26 amended to suit Italian, also small optimizations.
Bugfixes, Optimisations, generally use Localization instead of this.localization
- FloppyDriver 1.05 ; memDriver 1.01 use StringBuilder in setNames
- Monitor 1.12 use StringBuilder whenever appropriate
- MOVE_TO_CCR, MULSW,, MULUW, MOVE_TO_SR, BTST_d16PC : d16PC corrected (was cpu.pc_reg + cpu.readMemoryWordPCSignedInc(), needed to be this.cpu.pc_reg2 (!!!!!!!) + this.cpu.readMemoryWordPCSignedInc()
Bug fixes : renaming files, resetting consequences for xFA devices,
Windrive correct dir opening for files that aren't dirs.
- XfaDriver 1.00 ; SfaFileheader 1.03 use StringBuilder whenever appropriate
- NfaFileheader 1.04 ; QemuFileheader 1.01 use StringBuilder whenever appropriate
- XFADriver v.1.00 use StringBuilder whenever appropriate ; closeAllFiles doesn't set the cpu to null.
- XfaFile v.1.04 don't rename to an existing file.
- Screen0 v.1.07 better handling of edge condition (i.e. write at very last pixel on screen).
- MC68000Cpu 2.06 main mem array made final. Needs also size of rom image when created
- WinDrive 1.05 opening as dir a file that isn't a dir, opens the dir the file is in ; rename checks whether file exists on destination (!).
Bug fix : floating point handling.
- RTC routines are no longer a separate module, integrated into driver_most_asm
- Arith v.1.04 better handling of some negative values.
Bug fix : floating point handling.
- Arith v.1.03 (very slightly) faster ql->ieee fp conversion, correct handling of some negative values.
Better floating point handling.
- Screen32 v.1.10 copyMem32 streamlined (micro-optimization).
- Arith v.1.02 (i.01 was internal) don't use c68 ql->ieee routine, too many pbs (e.g.with $80e,$100000).
Bugfix (manifested itself in emacs).
Possibly use faster floating point routines.
- java_fd_drive_asm set sb_arthp after java call
- java_driver_nfa_useq_asm " " " "
- smsq_java_hwinit_asm config for new FP routines
- smsq_java_driver_most_asm Possibly use java routines for some fp ops
- Move_To_SR, ADDI_SR, ORI_SR, EORI_SR 1.01 use Types.SRMask.
- MC68000Cpu 2.05 xorBlock set reg_sr correctly in case of error (only unset Z flag!).
- MonitorGoThread 1.02 DebugList uses array.
- Monitor 1.11 call TrapDispatcher.reset() when reset.
- TrapDispatcher 1.14 reset calls closeAllFIles for all device drivers,
setup arith object & (possibly) use it, use A-line for java comms instead of $eb00.
- WinDriver 1.03 implement closeAllFiles, called for each drive in turn.
- WinDrive 1.04 implement closeAllFiles.
- Types v. 1.02 communication with java is now based on A line (instructions $a000 +) instead of eb00+.
- JavaComm v. 1.01 use Aline instructions for "traps".
- Arith v. 1.00 use java doubles for some floating point ops.
Bugfix for xxx_use$.
Implements a VERY primitive TCP device (no UDP, no SCK).
- dev8_smsq_java_ip_xxxx all added.
- dev8_smsq_java_driver_nfa_use_asm set bv_rip to A1 after javatrap call.
- FlopyDriver 1.04 getDrive correctly sets the address to write the String into SMSQE.
- MonitorGui 1.25 use java.awt.event.InputEvent.BUTTON1_MASK instead of java.awt.event.InputEvent.BUTTON1_DOWN_MASK in doAltSpace,
don't print ALT F3 to system.out.
- IPHandler 1.00 added (primitive version, do not use).
- TrapDispatcher 1.13 implements "TRAP9" for TCP/IP sockets ; "Trap#5"-15 ; oorrect handling of A1 & where the data will be written.
- WinFile 1.04 readBytes catches EOF error when nothing is read from channel.
- MC68000Cpu 2.04 readFromFile returns -1 if EOF, not 0.
- QL50HzInterrupt 1.05 revert to earlier thread behaviour, sleep for nominal 1/50th of a second, screen update in same thread.
Configuration item for delay after mouse click.
Better handing of 0 count scroll wheel action (0 count is simply ignored)
- SMSQmulator 1.18 inifile data for delay after mouse click.
- MonitorGui 1.23 new config item for delay after mouse click.
- Screen 1.13 better handling of 0 count scroll,wheel action; mouse click delay added.
Bugfix for remote qxl.win file access, where file-locking isn't possible.
- SMSQmulator 1.17 inifile data for qxl.win files lock error.
- MonitorGui 1.23 new config item for qxl.win files lock error..
- WinDrive 1.03 if so configured (in ini file), will now ignore lock errors for qxl.win file.
- WinDriver 1.02 setNames catches UnsupportedOperationException, if file lock can't be acquired.
Bug fixes. Better handling of ctrl-space under windows: F12 no longer needed.
Alternative mapping of CTRL-F5 to scroll lock, ctrl-space to pause/break.
- MC68000Cpu v. 2.03 .03 only check for minor version if major version == smsqe version
- MonitorGui 1.22 only use alt-space kludge for windows, better ALT+SPACE handling when in windows.
- Screen 1.12 faster handling of keyrow, scroll_lock is mapped to ctrl-f5, break is mapped to ctrl-space.
- MOVEA4 corrected: increase source reg BEFORE the data is moved into destn (MOVEA.L(a7)+,A7 would be wrong)
Can handle read only floppy image files. C programs kludge.
- smsq_dv3_java_ added read only check etc.
- MOVEAn2bis kludge introduced. This is the MOVE.L A0,(A2) instruction. Some stupid C progs check whether they can write to address $10 and if so,
make (WRONG!!!) assumptions about the machine. This special instruction does NOT write to address $10 (all writes to all other address = OK).
- FloppyDriver 1.03 checks for read only image files and warns of them, warning for non existent files made configurable, check for write protect
- MonitorGui 1.21 warning for read-only & non existent floppy drives.
- Warnings 1.03 added warnIfFLPDriveIsReadOnly & warnIfNonexistingFLPDrive.
- SMSQmulator 1.16 added inifile items for inexistent and read-only floppy image files.
- SCreen 1.11 paint sets isDirty status (false) before redrawing the screen from the image, so that the main thread can set this to true whilst re
Some bugfixes. Shift Space produces correct character ($FC).
- ILLEGALQmon : actually set the exception.
- EORI_CCR, EORI_SR : increment PC correctly.
- ROXLimm and ROXRimm : set status flags correctly.
- Screen 1.10 SHIFT SPACE produces char $FC.
- TrapDispatcher v. 1.12 floppy check for drive change added, hooks for flp_drive and flp_drive$ added ; uses int in writeSMSQEString..
- FloppyDriver 1.01 checks whether drive has changed, closes rachannel when filename has changed ; uses int in writeSMSQEString.
- MC68000Cpu 2.01 get/setKeyrow peeks/pokes in value directly into keyboard linkage block, presumes sysvars are at $28000 (!); writeSmsqeString uses int instead of short for parameter makes sure short doesn't overflow
- MonitorGoThread 1.01 set TrapDispatcher for CPU even if slow mode
- SMSQmulator 1.15 don't use fast mode if this is disabled in config file.
- Helper v.1.02 writeSMSQEString no longer used (is in cpu anyway).
- ClipBoardXfer, WinDrive, XfaFile (no version bump for this) use int param in writeSMSQEString.
As of this version, Tony Headford's MC68K project library is no longer needed/used.
- Some cleanup in my init files.
- dv3_java_ subdir and included files added : handle floppy drives.
This is now split into most of the objects on the one hand and the cpu and its instructions on the other hand.
- DIVU, DIVS v. 1.01 correctly handle some neg numbers (-256 mod 256)
- MOVEA9 when word moved: fixed
- ABCD, SBCD, NBCD : all corrected (thanks Marcel).
- WinDrive v.1.02 correctly sets new dir of open files if a dir was created and an open file moved into it.
- WinDir v.1.03 correct file/subdir handling when a subdir is created and files should be moved into it.
- FlpDrive, FlpDriver, FlpFile removed.
- FloppyDriver v. 1.00 added, can read/write/format (720K or 1.44 M disks only) floppy disks : most of the work is done by SMSQ/E.
- MonitorGui 1.20 only call getOptions once wdw is open - shows errors in wdw.
- TrapDispatcher v.1.11 special floppy handling trap (java trap #8) implemented.
- Monitor v.1.09 handle floppy disks separately ; device drivers are only loaded if they aren't disabled.
- Helper v.1.01 ConvertStringToInt don't skip last char anymore.
- DriveAssignmentsDialog 1.03 ESC closes the window without modifictions.
Better CPU idle handling. Many bugfixes in the emulation core. Shift +ESC produces (c).
- smsq_java_driver_most_asm 1.01 possibly set up scheduler routine for sleeping if idle.
- Screen v.1.10 Shift ESC gives chr$(127).
- SUBI v.1.01 correctly handle flags if word sized operation.
- NEGX v.1.01 correctly handle Z flag.
- EOR v.1.01 correctly handle long words when dest is a data reg.
- CMP v.1.01 correctly handle bytes & words in some circumstances.
- All ADD2DN and ADD2EA : v. 1.01 correctly test for Z in byte & word sized modes
- All SUB2DN and SUB2EA : v. 1.01 correctly test for Z in byte & word sized modes
- ASRreg/LSRreg the bytes sized instructions weren't implemented (for int sz=1 instead of int sz=0)
- MonitorGui v.1.19 new config menu item (use less CPU time when idle) ; in config menu made group of everything relating to energy/cpu saving.
- SMSQMulator v.1.14 new config item use less cpu when idle.
- MOVEAnLxxx : disassembled op correctly shows size.Byte and not .Word.
- MC68000Cpu set config item value "use less cpu when idle" in config block.
- TrapDispatcher v1.10 implement trap#7, put thread to sleep if machine isn't busy.
- CMP_An : correct compare if word sized.
- SMSQMulator v.1.13 preset options for screen colours is set to 0.
All instructions are now replaced with mine.
The page up/down and home/end keys now generate different keystrokes.
Primitive millisecond timer implemented.
- No Instruction from this is used any longer, all replaced by mine<./li>
- smsq_java_timer_asm : JTMRSET and JTMRGET implemented.
- SUBX, ADDX, LINK, UNLK v.1.00 added : replacement instructions.
- CHK , NOP, STOP, RESET, A,N and SBCD v.1.00 added : replacement instructions.
- RTE, RTR, MOVE_USP, MOVE_TO_CCR v. 1.00 added : replacement instructions.
- BCLR,BCHG,BSET, ILLEGAL, MOVE _TO/FROM_SR v. 1.00 added : replacement instructions.
- Sub2Dn.SUB_An, Add2Dn.ADD_An only register 4 types of instructions.
- TrapDispatcher 1.09 implements trap#5, 27 & 28 (set/get timer) ; sets error return if Trap#3 call not valid for directory device drivers to err.ipar, not err.nimp.
- WinDir v.1.02 sets date of newly created dir to 0 ; writes out dir & Fat after file creation, deletion.
- WinSpecialFile v.1.01 correct handling of sector size return if read and buffer size = 2.
- Screen v.1.09 changed keycodes generated for home, end, page up and page down.
Bugfixes, Some new replacement instructions.
- Many instructions no longer used, replaced by mine
- MULU v.1.00 added : replacement MULU instruction(s).
- MULS v.1.00 added : replacement MULS instruction(s).
- DIVU v.1.00 added : replacement DIVU instruction(s).
- DIVS v.1.00 added : replacement DIVS instruction(s).
- ASL,ASR,LSL,LSR,ROR,ROL,ROXR,ROXL added : replacement instructions.
- TRAP, TRAPV,EXG, NEG , NEGXv.1.00 added : replacement instructions.
- ANDreg,ANDmem, ORreg,ORmem v.1.00 added : replacement instructions.
- New ANDI,ORI,EORI,NOT v.1.00 added : replacement instructions.
- New ANDI,ORI,EORI to CCR & SR,v.1.00 added : replacement instructions.
- New MOVEP, ADDI, SUBI, EXT v.1.00 added : replacement instructions.
- CMPI_Dn size loop counter goes around 3 times, not 5.
- SUB_AnCOntent : removed debug code.
- ADD2DN.ADD_W correctly uses long sized add, same for SUB.
Bug fixes. Embedded applet implemented. MEM device added. SOUND device added. Needs SMSQE 3.18.
- smsq_java_driver_mem_init_asm, smsq_java_driver_mem_wrt_asm v.1.00 added.
- smsq_java_driver_nfa_cct, smsq_java_driver_nfa_useq_asm and smsq_java_driver_nfa_use_asm amended to suit.
- smsq_java_driver_snd_sound_asm renamed to ...sndfil_asm.
- smsq_java_driver_snd_init_asm, ...cnam_asm, ...sound_asm all v. 1.00, all added forSOUND device.
- TrapDispatcher 1.08 before using
this.gui check that it isn't null, which it will be if embedded applet.
- CircularBuffer v. 1.00 added : a simple circular buffer (used for debugging).
- MonitorPanel v.1.00 created (removed from MonitorGui); use CircularBuffer for a primitive command line history.
- MonitorGui 1.18 many functions moved to screen object ; use MonitorPanel object instead of creating these panels myself ;
formWindowOpened starts the emulation, not the Monitor object when loading ROM ; MonitorPanel is independent class.
- Screen v. 1.08 now handles the keypresses etc on the screen (this is split off from MonitorGui 1.17).
- MyApplet v.1.00 implemented - the gui when executed as an embedded applet..
- WinDir v.1.01 correctly copy files from old dir to new dir when new dir is created in the old dir and old dir contained files that must now be in new dir..
- WinFile v.1.02 when converting file into dir get correct filesize after all corresponding files are moved into the new dir ;
read files headers : handle subdirs like files.
- WinDrive v.1.01 trap 4f : name is 0 filled, not space filled.
- BTST v.1.00 added : replacement BTST instruction(s).
- Monitor v.1.08 the monitor no longer starts the emulation when loading the rom file, each of the guis does ;
setLogger added (may set the loggers after creation).
- DeviceDriver v.1.00 writeBack added (for MEM device). All other drivers amended to suit (only mem device implements it for now).
- MemDriver v.1.00 added
- MemDrive v.1.00 added
- MC68000Cpu v.1.11 loadRomImage provides for embedded applet via a Security exception ; provisions for MEM device in setupSMSQE.
- SoundDevice v.1.00 added
- iod_con2_java8_save_sprite_asm used instead of the iod_con2_8_save_sprite routine: could be long word move to odd addresses
- FlpDriver v. 1.02 fixed file open bug (correct filename + return true).
- FlpDrive v. 1.01 handle trap#3, DO=0, handle 1.44 MB "drives" correctly again.
- Some english error texts corrected (Thanks Urs).
- Screen32 1.09 long+ word sized read/write: make sure it doesn't overshoot edge of screen.
- M68000Cpu v. 1.10 screenStopW and screenStopL no longer used, check is made in screen mem (gets rid of bug in screen mode0, last LW wasn't written).
- Screen16 1.03 long+ word sized read/write: make sure it doesn't overshoot edge of screen.
- All SUB2EA (except SUb_AnContent) and their ADD pendants : if LONG, Z flag was calculated wrong.
- ADDQ_d16An, ADDQ_AnPtr, ADDQ_L, ADDQ_MinusAn, ADDQ_W,ADDQ_d8AnXn : N and V status flags could be calculated wrong if byte & word ops.
Sound volume tries different volume controls.
- SampledSound 1.01 Volume control tries volume then master gain. Popup warnign is made configurable.
- Beep 1.02 Volume control tries volume then master gain.
- Warnings 1.02 added warnIfSoundProblem.
- MSMSQmulator 1.11 added WARN-ON-SOUND-PROBLEM config item.
- MonitorGui 1.17 "warn if sound problem" config item & supporting code added.
Bug fixes. The screen x size must be a multiple of 8 in all screen modes. New WIN driver.
Sound volume may be set.
- iod_con2_java16_block_asm : xor block calls java
- iod_con2_java8_block_asm : xor block calls java
- SMSQmulator 1.10 xsize must be multiple of 8 for all screen modes ; provides for BEEP volume in ini file ; nicer subwindow/dialog popup locations.
- MonitorGui 1.16 screen xsize must be a multiple of 8 when configuring the screen size ; provide for beep volume level.
- TrapDispatcher 1.07 name is passed to open trap as an array of bytes ; Aal device drivers adjusted to suit ; implements Trap#5,D0=21 ;
provides for sound volume setting ; implements trap#5, d0=22 (set sound).
- MC68000Cpu 1.09 screenStopW and screenStopL introduced to stop sprite clipping from overshooting screen end and avoid subtraction when checking addresses.
- Screen 1.07 correctly set the dirty flag to false once repainting is done. Don't check for dirty flag when painting component
- Screen16 1.02 optimized (I hope!) fillBlock ; implemented xorBlock.
- Screen32 1.08 byte-sized reading/writing from/to screen is now allowed ; optimized (I hope!) fillBlock , implemented xorBlock.
- WinDriver, WinDrive, WinDir, WinFile, WinSpecialFile : all new.
- Monitor 1.07, Beep v. 1.01 and SampledSound 1.00 provide for volume setting.
- DriveAssignmentDialog 1.02 window pops up at a nicer location (less mouse movement).
- QL50HzInterrupt 1.04 check whether screen is "dirty" is made here, not in the screen paintComponent routine.
Bug fixes. You can use XY when setting window size instead of XxY.
Slightly brighter colours possible (only noticeable for some).
When moving windows, they may be made transparent (WM_MOVEMODE 3) in higher colour modes (8 bit and 16 bit).
When window is minimized execution may be suspended.
Needs SMSQE v.3.16.
- SMSQmulator now uses two modules for the "os": one for more than 1mb of memory, the other for less.
- smsq_java_smsq_header_asm : new (copied from smsq_smsq_header asm) for machines with 1mb or less of memory.
This checks the amount of mem and doesn't load itself if more than 1mb mem is present.
- iod_con2_java6_cmbblk_asm new for wdw move with transparency.
- MC68000Cpu 1.08 faster writeToFile (for XFA). fillBlock fills in background OK. moveBlock : anything screen related is handled by the screen object.
Implements combineBlocks as pass though to screen object.
- Screen 1.06 paintComponent no longer uses a G2d ; vibrantColours switch added ; combineBlock abstract method added. Part of screen initializing moved here.
- Screen32 1.07 moveBlock optimized. combineBlock implemented (for wdw move with transparency). Slightly brighter colours possibility added. .
- Screen16 1.02 slightly brighter colours possibility added. moveBlock optimized. combineBlock implemented (for wdw move with transparency).
- QL50HzInterrupt 1.03 Try to make sure the screen object is no longer referenced when screen is changed.
- MonitorGui 1.15 cleanup (make sure screen object is removed when new screen is made). Screen size may be given as a b instead of a x b.
Slightly brighter colours menu item added. Set windowActivated status, ptr in wdw is only set from SMSQE when ptr "in screen" & wdw is activated.
Provide for checkbox to suspend execution if window is minimized (& call monitor to do so).
- TrapDispatcher 1.06 Trap#5 D0=20 (combineBlocks) implemented.
Bug fixes. Mode 8 works again. Aurora compatible 8 bit colour mode.
- iod_con2_java8_mblock_asm, iod_con2_java8_block_asm : new, call java.
- Screen 1.05 totally revamped, becomes an abstract class.
- Screen0 1.05 : "new", screen for modes 0 (4) and 8. Fixed mode 8.
- Screen32 1.05 : "new" (adapted from old combined screen), for mode 32.
- Screen16 1.00 : new, screen for mode 16 (8 bit aurora colours)
- SMSQmulator 1.09 new (unused) config option more vibrant colours. Optimisations. Cpu uses MB and not KB for mem size.
- MonitorGui 1.14 provides for 8 bit colours choice ; save rom file name before raising OOM error.
- Monitor 1.06 only input mouse and keys if rom loaded ok.
- MC68000PCpu 1.07 warn on out of memory error ; fillBlock and moveBlock are also (partially) used for mode16 ; don't allocate mem on creation, only when loading OS.
Bug fixes. The "about" menu item shows for which version (6 or 7) this SMSQmulator was built. SMSQmulator opens its window at the position it was in when closed.
- smsq_kbd_read_asm: mouse wheel generates three keystrokes
- MonitorGui 1.13 handles alt + cursor keys ; mouse wheel generates three keystrokes ; about shows java version for which this was compiled ;
when opening wdw, reposition wdw at its last position.
- QxlWinFile 1.06 'writeEntireFile' is scrapped entirely :trap#3 with d0=$49 behaves exactly like trap#3,d0=7; except that the size in D2 is long;
sendMultipleBytes writes words not bytes to the clusterbuffer.
- XfaFile 1.03 trap#3 with d0=$49 behaves exactly like trap#3,d0=7; except that the size in D2 is long.
- MC68000Cpu 1.06 readMemoryShort implemented (and used by QxlWinFile).
- SMSQmulator 1.08 some cleanup, get the java version for which SMSqmulator was compiled.; new ini options window x and y positions.
Bug fixes, use SMSQE v. 3.15.
- Use iod_con2_qxl16_sprite_drop_asm instead of iod_con2_java16_sprite_drop_asm.
- Various (non java) bugfixes in smsqe by MK -- SMSQ/E v. 3.15.
- MonitorGui 1.12 set "pointer in screen" status; use new icon; changed some "config" menu item positions.
- TrapDispatcher 1.05 do not set pointer position if mouse not in screen..
- MonitorGui 1.11 correctly set status of read only warning item on startup; handle Shift tab, shift del, alt del, shift alt del.
Better pointer handling, can handle read only qxl.win files, needs new SMSQE file.
- iod_con2_ptr_sptr_asm copied to iod_con2_java, trap#6, calls java when ptr is moved
- iod_con2_java16_sprite_drop_asm correctly handle pointer sprites with solid (=0) mask.
- DBcc,CMPI, ADDEA ADD2Dn, SUBEA,SUB2Dn: new & faster instructions (I hope).
- MC68000Cpu checks ROM version, will not load older ones; copyMem uses system.arrayCopy.
- QxlWinDrive 1.02 can handle read only container files (or container files on read only devices), warns if this is the case.
- QxlWinDriver 1.03 possibly warn if drive is read only.
- Warnings 1.01 adjusted to suit - new warning item disk is read only.
- MonitorGui 1.10 better mouse handling when in double sized mode ; new warning item (drive is read only) ; set screen object coordinates when window moved /resized ;
ignore mouse moved event when mouse position in wdw is changed from within SMSQE via sptr.
- SMSQmulator 1.07 provide for warn drive is read only ini file option ; check for SMSQE version
- NfaFileheader 1.03 correct length of filename used in getSMSQEFilename (stopped makeDirectory from working).
- QxlWinFile 1.04 clusterBuffer is set to 0 when a newly created cluster is added; writeEntireFile correctly sets clusterbuffer position to current file position if special case copying. .
- QxlWinDir 1.02 openFile : set the access bit for the correct file.
- TrapDispatcher 1.04 implement trap#6 (set ptr position).
- Monitor 1.05 pass screen position to TrapDispatcher when wdw is moved/resized.
File devices may be switched off, more correct clock handling.
- nfa,sfa,win,flp_init : provide for 'disable device' config item & act on configured value.
- QxlWinFile 1.04 faster readLine if entire SMSQ/E buffer (length of line to read) is within clusterBuffer.
- QxlWinDrive 1.01 trap#3,4f (re) set the correct drive number (when did that change?).
- MonitorGui 1.10 provide for "disable xxx device" options. Max mem size = 96 MiB
- SMSQmulator 1.7 provide for "disable xxx device" ini file options.
- MC68000Cpu 1.03 reset: check for newer SMSQE version, warn if too old.
- ADDQ, SUBQ : new & faster instructions (I hope).
- QL50HzInterrupt 1.01 better way of calculating the sleep time (I hope).
- CLR sets the Z flag correctly
- SMSQmulator 1.06 fixed getBootDir for windows where the filename doesn't always contain java.io.File.separators but "/" instead. If an ini file
is present on the boot device, always use that, even for saving the ini file.
- MonitorGui 1.09 in memsize choice box current memsize is the default value.
- QxlWinDrive 1.00 unuse : set some objects to null, allows for GC.
- QxlWinDriver 1.02 better way of unsetting drives when drive names changed :unset first,then set new ones.
- SMSQmulator 1.05 try to read ini file from install dir first, then from home dir.
- ILLEGALQMon instruction added, better Qmon breakpoints.
- Monitor 1.04 changeMemSize makes a new interrupt server (when did that get lost?).
- MonitorGui 1.08 make sure screen is at least 512 x 256 pixels.
- SMSQmulator 1.04 make sure screen is at least 512 x 256 pixels.
- Screen 1.02 correct fill block parameters for one line blocks.
- MonitorGui 1.07 when screen size is set, record true screen size in .ini file (could have been changed if in mode 4).
Caps lock status is set in SMSQ/E. Show the SMSQ/E screen size when changing screen size, not the window size.
Better handling of doubling/halving screen size.
- Monitor 1.03 caps lock status is written directly into system variables (!).
- Replaced some instructions with my own(MOVE,MOVEM,JSR,MOVEQ,CMP,MOVEA,TST). The speed increase is minimal.
- smsq_java_driver_scrap_asm : implements the JVAMBAR keyword.
- MonitorGui 1.06 correct check whether screen was in double size upon launching or not. Warning items status set in ini file again.
Menu bar can be made invisible (use JVAMBAR Sbasic command to get it back).
- MC68000Cpu 1.02 write to file : correct write if memory starts at an odd address impacted NFA & SFA drivers).
Pure bugfix release.
- Warning 1.00 use the correct tokens after change from QXL to WIN.
- MonitorGui 1.05 the time correction item really calls the time correction code.
- Added EORI_TO_SR instruction.
- java_rtc_asm calls on java directly to get the time.
- DriveAssignmentDialog 1.01 make sure all double file separators are replaced with single ones.
- Screen 1.00 if we're in QL colours mode, the xsize must be a multiple of 8, if it isn't, it is INCREASED to be so.
1.01 this doesn't call repaint() itself anymore, just sets a flag that it is dirty. Repaint is called by the interrupt thread.
Clut initialized at component creation, general cleanup.Faster moveblock & fillblock routines.
Attempt at general speedup by writing to the bufferedImage.raster.databuffer directly
- MonitorGui 1.03 mention the QL colour mode xsize requirement and warn that machine will be reset when screen size is changed.
1.04 screen size (but not resolution) changes when the window is resized. Possibility to double the window size (not resolution) introduced.
- XfaFile 01.02 dirs are handled differently : read the entire dir in a go; also, check for pending input handled correctly
even for dirs. Creates files with QemuFileheaders by default. Default fileheader = QemuHeader, not SFA header
- TrapDispatcher 1.03 implement trap#5, d0=18 (read rtc directly from java).
- QL50HzInterrupt 1.01 no longer set time each time this is called. It calls screen.repaint every secont time it executes
- NfaFileHeader, SfaFileHeader 1.01 set bogus file length if directory.
- Replaced some instructions with my own>
- QXL name changed to WIN. SMSQmulator 1.02 amended to suit.
- QemuFileheader 1.00 created : header compatible with Q-emulator.
- XfaFile 01.01 trap#3 set file positions (rel or abs) : if position to set is beyond end of file, return error eof.
01.02 dirs are handled differently : read the entire dir in a go. - Check for pending input handled correctly even for dirs.
- Double file separators converted into single ones for the filename. - Default fileheader = QemuHeader, not SFA header.
- smsq_java_driver_scrap_asm newly created.
- ClipBoardXfer 1.00 created, trnsfer to/from scrap to/from system clipboard.
- TrapDispatcher 1.02 added routine for this.
- QxlWinDir 1.01 when creating a file, make sure name of subdir is copied first.
- QxlWinFile 1.02 when making a dir and copying existing files into it, correctly calculate fileSize (findNextEDntry),
when making a dir & existing files are moved there, correctly copy name of dir into name of file,
when making a dir & existing files are moved there, correctly set filesize.
- MC68000CPU 1.00, NfaFileheader 1.00, QL50HzInterupt 1.00, QXLWinDir 1.00 : use time adjustment from Monitor (Monitor.TIME_OFFSET)
- QxlWinFile 1.01, : use time adjustment from Monitor (Monitor.TIME_OFFSET)
- Monitor 1.02 Use time adjustment
- MonitorGui 1.02 provide for time correction option in options menu..
- SfaFileheader 1.00 , XFAFile 1.00 use time adjustment from Monitor (Monitor.TIME_OFFSET)
- SMSQmulator 1.01 provide for time offset option, use it for monitor..
- smsq_con_sched_asm : call java whenever the cursor is blinked.
- iod_con2_java16_cct : adjusted to suit
- iod_con2_javaql_cct : adjusted to suit
- FlpDrive 1.00 openFile : handle wildcards correctly
- SMSQmulator 1.00 throttle is a configurable value,
- MonitorGui 1.01 set warning checkboxes status on startup, only make new (QXL,SFA,NFA,FLP) filenames if OK was hit in DAD wdw,
Added Throttle config item. "Wake up" monitorGo thread if asleep and key typed. Handle some accented chars.
- QxlWinFile 1.00 correct handling of file time setting.
- DriveAssignmentDialog 1.00 set better JTextField sizes : min 200 or max string length.
- TrapDispatcher 1.01 throttle is a configurable value; throttle may be "interrupted" by key typed.
- Monitor 1.01 "wake" monitorGo thread if key typed.
- QxlWinFile 0.09 handleTrap3 d0=$47:limit max size of header read to 64 bytes
- XfaFile 0.09 handleTrap3 d0=$47:limit max size of header read to 64 bytes
- FlpDrive 0.04 handleTrap3 d0=$47:limit max size of header read to 64 bytes
- Screen 0.01 1 in 4 colour stipples handled correctly
- QxlWinFile,FlpDrive and XfaFile: getLine : if no LF found but bytes got is less than buffersize,return eof, not bufferfull
- All of these changes: thanks to Marcel Kilgus for pointing them out
- ANDI_TO_CCR mask out unwanted bits!
- ANDI_TO_SR mask out bits 5,6,7 and 11 : they are always 0
- EORI_TO_CCR mask out bits 5,6,7 : they are always 0
- MOVE_TO_CCR mask out bits 5,6,7 : they are always 0
- MOVE_TO_SR mask out bits 5,6,7 and 11 : they are always 0
- ORI_TO_CCR mask out bits 5,6,7 : they are always 0
- ORI_TO_SR mask out bits 5,6,7 and 11 : they are always 0
- FlpDrive 0.02 :also handles 1.44 MB (QL5B) disk images
- MonitorGui 0.05 added some Mac specific code for keyboard handling and window appearance, courtesy of Tobias Fröschle
- SMSQmulator 0.02 added some Mac specific code for application appearance, courtesy of Tobias Fröschle
- smsq_java_driver_flpinit_asm : implements flp driver.
- smsq_java_driver_most_asm : amended to suit.
- smsq_java_driver_snd_ssss_asm : added sound routine
- smsq_java_base_asm : sets random number from java
- FlpDriver,FlpDrive,FlpFile implemented : SMSQmulator can now read 720 K floppy disk images.
- SampledSound 0.01 : attempt to minimise impact of java bug.
- Warnings added and made configurable.
- MC68000Cpu : sets random number in linkage block
- SMSQmulator 0.01 : if smsqe file not configured,try to use one called "SMSQE" in the dir where the jar file lies.
- FlpDrive 0.01 :correct handling of lvel2 dirs, correct handling od dir size
- smsq_java_hdop_sms_asm 0.01 : implements beep
- Beep implemented
- QxlWinDrive protests when nonstandard disks detected
- Fixed a bug in MOVEM (if pre-dec and ea is also moved, use initial value of ea)
- smsq_java_ssss_asm 0.01 : implements ssss sound device
- SoundSample object implemented, primitive ssss sound driver
- QxlWinFile when saving bytes/mutiple bytes, only increase filesize if save was at send of file
- QxlWinFile read cluster anew only when the cluster HAS changed
- NFA and SFA drivers : set/get file dates and versions implemented.
- NFA and SFAFileHeaders amended to suit
- NFA,SFA and QXL drivers : don't write to read only files.
- smsq_java_driver_nfa_use_asm 0.01 : the device USE name gets passed on to java (for better rename)
- All filetraps on QxlWin files/drives implemented.
- QxlWinDir ,QxlWinDrver, QxlWinDrve, QxlWinFile writing to disk implemented
- TrapDispatcher,DeviceDriver,XfaDriver,QxlWinDriver adapted for device USE call.
- Rename on QxlWin files implemented.
- iod_con2_java_procv_asm : QVME thing is installed, only DISP_TYPE has any effect.
- smsq_java_driver_nfa_trp2_asm : close file routine decreases nbr of open files and releases chan defn block
- Screen : fixed screen size of 512x256 in mode 32.
- DriveAssignmentDialog : fixed direct editing of dirs.
- Localization object created & used throughout.
- MonitorGui uses localization throughout.
- Xfafile: resolved bug with Sfa filenames introduced in 0.6.e
- Xfafile: wdir works as expected
- Xfafile: bug introducing wrong fileposition removed
- XfaDriver 0.02 : the SfaDriver sets error returns if error in readHeaderOk.
- SfaDriver : amended to suit
- QxlWinDir implemented
- QxlWinDrver implemented
- QxlWinDrve implemented
- QxlWinFile partially implemented
- fixed my own EORI_TO_CCR class.... (fixes problems with easel)
- iod_con2_java16_sprite_drop_asm 1.11 : provide for sprites with no mask pointer (= solid mask).
- QxlWinFile : file header is read correctly
- MonitorGui : new attempt at mac fix
- QxlWinDrive : ok if filename contains accented chars, ok if a (sub) dir is opened as a normal file.
- Screen : correct display of mode 8 when in QL colours mode.
- DriveAssignmentDialog : take into account text typed directly into the textfields.
- SfaFileheader : readfileheader limits the amount to be read to 64 bytes.
- SfaFileheader : when creating fileheader (for existing file), set the name to the name this file is actually used under.
- XfaFile : for SFA files, a "dir" shows the "correct" filename (i.e. that of the underlying file) if that name and that in the header differ (e.g. when files are copied under the native filesystem).
- Helper: convert to/from Smsqe accented chars.
- Mc68000cpu cpu : use this to convert filenames in read/writeSmsqeString routines
- Mc68000cpu cpu : writeToFile caters for the write starting at an odd address
- XfaFile : make use of char conversion if bytes read from dir.
- Re-debugged ASR and ASL: the shift count is mod 64 (not mod 32), same for LSR, LSL, ROL,ROR.
- Fixed SUBX and ADDX.
- Fixed NOT (.b and .w).
- QXL.WIN driver implemented : OK, but read only.
- Hwinit modified.
- iod_con2_ptr_rle_asm modified for Smsqmulator only : : it could make word sized accesses to odd adresses.
- MonitorGui : F12 emulates Alt+space. Fast mode become configurable.
- MonitorGui : More config items. Most are used at startup. Set screen mode./nfa drives etc.
- MC68000 is renamed MC68000Cpu. Some instuctions are "ported" to this. Still slow. (Profiling shows that most of the time is spent decoding the address modes)
- XfaFile: rename implemented. Correct file positioning & error returns if file positioned beyond end of file.
- XfaFile: dirfile size shown correctly.
- XfaFileheader : get/set dates rouytines provoded for
- SfaFileheader : get/set dates implemented. For read only files the backup date will NOT be set, contrary to what is expected
- NfaFileheader : get/set dates implemented for the update date. The backup date will always be equal to the update date, contrary to what is expected
- M68000K :
- SMSQE :
- iod_con2_16: move block and fill block : when in screen mode mode 32 do this in Java.
- hwinit_asm : set screen mode byte to 0 or 3.
- started to integrate the qxl driver : java_driver_qxl_init_asm
- implemented sfa_use and nfa_use. If you set one of them to win, SMSQE will boot from (win1_boot) automatically.
- SMSQmulator :
- MonitorGui : trap mousewheel events.
- MonitorGui : More config items. Most are used at startup. Set screen mode.
- Better handling of change memory , no need to leave the emulation again :Screen, Trapdispatcher, MC680000 adapted as needed
- If 16 bit colour is used, then the emulator needs at least 8 MB of memory. 4 MB won't cut it.
- SMSQmulator : if screen mode 32 the emulator always uses at least 8 MB of memory
- MC 68000 & Screen: move block and fillblock operations are handled by the screen object/MC6800 object
- XfaFile: rename implemented. Correct file positioning & error returns if file postiioned beyond end of file
- fixed CMPI entirely (hopefully), modified raiseInterrupt,modified raiseException,added setSR2
- SMSQE :
- hwinit distinguishes between soft and hard reset (soft reset leads to hard reset).
- java_iod_con2_sched_asm: sleep a bit when flipping cursor (will probably be thrown out again).
- SMSQmulator :
- XFAFile : write bytes returns the number of bytes written in D1.
- XFAFile : set File position returns the actual fileposition if set beyond end of file.
- XFAFile : better check that file is an SFA file on file open.
- XFAFile : file delete and makedir implemented.
- MemoryMap : better reset handling.
- MC68000 Correct handling of interrupts and of trace bit.
- MC68000 Intergrates the memory, doesn't use a separate memory object any more, all routines from memory map included in MC 68000.
- MC68000 all memory accesses above 0x07ffffff are cut off (!!!!!!) due to some progs using the higher bits of addresses
for their own purposes.
- Screen and Colourpanel merged into one object (Screen).
- MonitorGui : multiple new possibilities for configuration.
- JMP this replaces the normal jump instruction : a check is made for memory cutoff
- M68000K :
- fixed CMPA.W, added ORI_TO_CCR, revamped ORI_TO_SR, added ANDI_TO_CCR, revamped ANDI_TO_SR
- debugged ROXL and ROXR (again - to get rid of bug introduced by me)
- SMSQE :
- realtime clock is really there!
- set nfa device as PROGS and DATA default device, if nfa1_boot is there.
- mouse & keyrow totally implemented. SMSQmulator now identifies itself as MACHINE = 20.
- SMSQmulator :
- use javacom trap 0 as hard breakpoint (instead of illegal instruction, used by QMON)
- you can mask the monitor windows.
- all trap #3 calls for SFA and NFA drivers implemented (including check for pending input)
- Compiled for java 6
- TAB no longer switches between windows
- keyrow & mouse button events trapped for keyrow emulation
- debugged BTST, BCLR, BSET and BCHG, debugged ROXL and ROXR (again), another bug in MOVEM fixed, MULS fixed
- debugged ASR, MOVEP,CLR,SWAP
- SMSQE :
- implement read realtime clock (smsq_java_rtc_asm)- setting & adjusting are not supported.
- mouse implemented, this branches off the keyboard read routine (mouse doesn't support dragging)
- larger screen sizes allowed, mode 8 implemented
- 50 Hz interrupt also sets the rtc in the linkage block
- better Nfa driver.
- Sfa driver implemented (this might still have a few bugs).
- mouse mvt and buttons trapped and sent to SMSQE by MonitorGui.
- screen MODE change trap caught, it uses a JAVACOMM "Trap#5" call, D0=1, D1 = mode wished (0 or 8)
v. 0.00 --
-------------------- To do list ---------------------------
Known bugs/Still to do are (at least):
Bugs or necessary things to do:
Desirable enhancements :
- PAR, SER drivers (probably never gonna happen)
- UDP packet handling
Author and copyright (C) W. Lenerz 2012 - 2020