-Release Version 1.0.11

Since i suspect that i will never implement the Table Lookup and the 64 bit Divides for the CPU32, so, i made the TBL instuctions take an f-line exception and the 64 bit divides take an illegal exception. This will allow someone to add f-line and illegal emulation routines to their OS to emulate these instead of them acting as NOPs. 

fixed Create New Disk to put apropriate filler. CPM = E5  VdosFD = E9 VdosHD = 4E (was using E5 for all IMDs)

Added VDOS 8 DSDD and VDOS 5.25 DSHD disk images to create IMD ( note 5 HD looks like 8 DSDD but with 80 cylinders instead of 77..also note that while the rwin supports almost any kind of disk, the versados drivers do not..you may have to do a sysgen, and define a  new disk type) looks like a 5 inch HD is supposed to be 8 inch on jumpers. 

modified rwin display in debug to return actual sector size and actual SPT for track 0 and other tracks.. 
modified rwin display in debug to show sense bytes..

the RWIN has one jumper (J16 3-4) to select 8 or 5 inch drives. however, the RWIN emulation allows each disk to be selected 5/8.  You can select 5 different sector size disk types. RWIN can set default sector sizes for 8 inch, 5.25 inch DD, 5.25 inch HD, 3.5 inch DD and 3.5 inch HD specs. normally the rwin only supports 8 and 5.25 DD. this modification allows the rwin to access newer disks. WARNING- It does NOT make the RWIN device drivers for CPM, VERSAdos or UNIX access them. They must be fixed, but i have no sample disks to test it.

RWIN can now scan the disk (after other defaults set, AS ABOVE) to set sector sizes (AUTO) this sets the sector sizes to whatever is actually on the disk... but note that the RWIN still only defines 5 and 8 inch disks as selected by jumper J16. 

re-added the ability to doevents every X character outs...this still does not fix loss of some characters during screen output... not sure how to fix..seems to only affect polling in CPM... interupt driven IO in Versados and unix seems OK..but...there's a new throttle on the main form to select how often the display releases to OS. 0 to 4096 ... 1 seems to be fine  ... 0 means never. 

fixed keyboard reset, to only reset on change from 1 to 0 in CR2..writting multiple zeros does not reset each time

still unable to solve keyboard time out in tenbug. tried adding return of 0x00 by read command when keyboard queue was empty... that worked , except also made tenbug skip checking for cntrl-c on MVME400's  ..so , still broken...but... i did add the return of one zero (from read command) after the keyboard jumper values are returned. this seems to be inocuous..it is only done after reset of keybaoard, that's also when the jumpers are added to the keyboard queue. tenbug seems to be looking for a zero returned by read..it loops till zero or 65535 attempts. But if i add 0 for empty buffer, the test for Cntl-c fails.


-Release Version 1.0.10

added an ON-SCREEN keyboard which implements the vme10's direction pad, function/hex pad and the extra function keys F13-F15. Now, you dont have to jump through hoops or fire to use some of the pesky vme10's keys that dont match the PC's...

modified screen keyboard to display 50x80 in both low and high resolution (both memory in hi and low and graphics in High and low)...while this is not exactly like the real one, it does support the real one's ability to do 80x50 in low res, while memory is in high res.. ( it also does 80x50 with memory in low res)

changed the display to keep resolution for graphics and characters independently... added a redraw of the graphics when switching modes or enabling graphics, so now works a bit more like a real vme10... but also adds artifacts not found on real vme10, like screen turning white during resolution changes.

turning white is probably due to the fact that during complete graphics screen redraw, i do NOT doevents... so, the system can not update till finished... perhaps the persistant bitmap is not refreashed.. 

NOTE - these changes to display now adds extra time to resolution changes.. be patient..each time resolution is changed the graphics display is redrawn...

modified how the screen is used during RESET.. now temporary changes that cause redraws are limited to once after Reset complete... (does not affect redraws as tenbug initializes.) This displays artifacts on the screen during reset... normally the a real system does not display until the display hardware is initialized, but the emulator can..that's why garbage is on the screen during resets..

fixed mousepointer when TakesAWhile is invoked...used to stay hourglass... now fixed.. This also fixes situation where timer is permanently disabled by changing IG with menu (was a re-entry problem)

removed doevents every 80 character outs...This may cause jerkiness

added support to use Display Cursor Mode in 6845. (bite 5 and 6 of Cursor start register.)


-Release Version 1.0.9

removed contact information... do not use the e-mail addresses that i used to provide... someone else now has access to them, and is intent on hurting anyone who uses this emulator... elsewise this release is identicle to 1.0.8... i never charge for this program or anything associated with this program. nor do i sell my real hardware.

terminated my internet service... NO presence on the internet is ME...do not let someone cheat you..

-Release Version 1.0.8

fixed CHK2 and CMP2 in CPU32 instruction set

made Get/Put Boot show values as HEX

fixed error in Get/Put Boot... no longer writes one too many blocks.... 
fixed error in Boot Simple to also not read one too many blocks....(this should not have mattered, much)

added Issue to load S-RECs ...(no issue for default loads)

added check of checksum during load s-rec

added report of checksum errors in s-rec load

made S-rec for S3 is modulo 16MB

added Wait mouse pointer to load memory and load rom... 

fixed RWIN transfer count N  to include 256 ...0=256 1-255=1-255
the manual says 0=256, but the software never uses 0 as 256..to read 0x200 it does 2 0xff and then 1 read of 2. Suspect that 0 is ambiguous, for txfer count 0 = no tx or 0 =256 tx..

changed RWIN FIFO from 64k to 256kb...this allows non-piecemill transfers of up to 256 Sectors for all size sectors 128,256,512,1024...1024 is not used by any VME10 disk format, but added capability anyway.

added 655kb and 1228kb 5.25 inch IMD disk definitions to the Create New Disk form. These are for UNIX.

added wait mouse pointer to get/put boot

replaced defective Tenbug 2.1 with different Tenbug 2.1, which is OK.

Added more info to IMD open info box

Added 4th cursor...vertical bar (this is not standard)
 s1/s2 of CR1 b6/b5
  00= block
  01= underline
  10= frame
  11= vertical bar


-Release Version 1.0.7

optimized microcode stage tracking..sped up execution unit a bit

optimized microcode to Fetch an Opcode, such that ...

if the debugger is NOT loaded, then the address of McrFetchOpcode with all debugging functions removed is placed in the microcode store

if the debugger is loaded, then the address of McrFetchOpcodeD where all debugging functions are active is placed in the microcode store

fixed Char Gen Ram and Char Attr Ram so that it can be loaded as memory without asserting Bus Error. This allows you to load a font, since the font must be ORGed at Char Gen Ram address.

optimized generic GetSOP, GetDOP, and PutDOP microcode..replaced Case with jump table.

added special GetSopB, GetSopW, GetSopL, GetDopB, GetDopW, GetDopL, PutDopB, PutDopW, PutDopL and modified Move.b, Move.w, Move.L and Shifts and rotates to <ea>, to use specific Source and destination accesses

otpimized Character Display routines. 

modified TakesAwhile and DelayOver

optimized word writes to graphics ram

Added Horizontal and Vertical Graphics Cursor

Rewrote Cursor Code to make Character Cursor function the same as the graphics cursor

Both Graphics and Character Cursors are exclusive or'ed to the appropriate display pixel and then merged.

MOdified MergePixel to optimize for state of Graphic and Characters. Only merge those that are enabled

Added menu item to select making the IVS bit (in CR0) apply to both Characters and Graphics. By default IVS applies only to Characters(this causes a messed up display when screen is inverted, since Graphics are OR'ed with Characters).

optimized Underlining code in Display Character on screen.

Added Cursor type support. Three types of cursor. 
CR1 bits 5-6    00=Full Block 01=Underline 10=Frame 11=not defined

added ADDR command, to display VME10 addresses, to debugger help.

modified Dload, Uload and Dropzone ports to allow serial byte accesses with out messing up. This is to allow /dev/mem access to those loacations. 

changed default for MVME400 Throtte from 255(8) to 511(9). this fixed tight interrupt situation for Mvme400 cards in UNIX when cut and paste as input to TTY or CRT emulator. 

Made all Throttles saved in registry. Seems they are needed. Will not remove them.
good working initial values are CPU=1024(10) 2661=4096(12) RWIN=128(7) 400=512(9)

added special emulator only instruction to aid in unix file transfers. 

  f e d c b a 9 8 7 6 5 4 3 2 1 0
  1 1 1 1 1 1 1 D s s a a a d d d

this appears as a Co-processor instruction CID=7 
if D=0 then (An)->Dn else if d8=1 then Dn->(An)
aaa is An
ddd is Dn
ss is size 00=byte 01=word 10=long 11=invalid

this instruction reads or writes a physical address, bypassing the MMU

if size is invalid then it is an F-line exception

if a berr or aerr occurs, then it does nothing(NOP) 

If menu item has the MovePhys disabled, then it is an Fline Exception

Added initial version of download for unix, which uses the special move physical emulator only instruction

it dissassembles as MOVPHY (An),Dn or MOVPHY Dn,(An)


-Release Version 1.0.6

Added code to report keyboard jumpers as key strokes imediately after a keyboard reset. And registry key to En/Disable. Devices/KBPutJumpers true/false

Corrected color error..Blue was red and red was blue.

Fixed pixel access so it writes to the correct memory location. Used to write to location * 2 (luckily, that was in the reserved SCM mem map)

Added more detail to SN2661 debugger display

Added ability for Printer to print to a file while printing to screen. Or can just print to file. Or just to screen.

Added Monochromatic screen. Can now select Mono (SW1 closed) or Color (SW1 Open)

Added choice of Green Phosphor or White Phosphor when MONO screen

Added ability to select GRE and CDIS bit definitions as in VME10 SCM Manual or VME10 REFERENCE Manual. Not sure which is right. Defaults to VME10 Reference Manual even though older than SCM Manuals. Suspect SCM manual is wrong. Normally it does not matter since All 3 GRE and/or All 3 CDIS are set or reset, together as a group.

Fixed Default Rom File and Default Font file save settings..
before had to make sure FONT and ROM was in app path and only Charram.s19 possible to use. and BSOD.s19 was always default, so had to load ROM. NOW font and rom pathes can be selected and saved.

Tenbug now runs. Unix now runs.

found bug in Tenbug 2.1 image files... fixed a wrong bit in word at 0x6650.. was 0x48E3 should have been 0x 48E7...MOVEM.L reglist,-(a7) not a3

Al Kossov at bitsavers.org sent me Tenbug 2.2, which is much beter.

fixed EOR Dn,<EA> .. erroneously executed as EOR Dn,Dm using the destination A-reg as Dm...seemed to mainly be used in graphics routines. However, after fixing, unix now runs....

made graphic interface a little more correct

Graphics demos now run (no so fast, but they run)

Fixed character display attrribute "dont display" to always display invisible null blank.(attr=0 and char=0)

fixed out-of-bounds when accessing graphic ram in Low Res mode.

added debugger commands to display  Display Ram, Atributes Ram and Character Generator Ram.

fixed debugger Out-of-Memory when appending a "too big" string to output textbox(screen)

added break support to mvme400 cards... Pause/Break works as the break key

fixed SCM debug command to properly show Status register. NOTE - as with real VME10, control registers are invalid until written. Existing firmware always do an atomic write to them before doing bit manipulation operations.

fixed display to redraw screen if character display mode changes and is not compatible with old mode.

removed Create Key menu item. Was planning to allow a password (key) to use Keyboard Lock Switch, but ...


-Release Version 1.0.5

fixed New Disk dialog, where buttons dont work after canceling an Expand compressed sectors

modified BOOT dialog for Motorola to have dropdown box for selecting common BOOT strings. 

fixed BOOT dialog for Motorola to correctly cancel BOOT

modified MMU to have NON-REAL Cache. Real MMU does not have a cache, but the emulator's MMU can benefit from a cache. Hits now cause the AST cache to be loaded with the hit descriptor. The AST Cache is checked first during translations. Write to AST, Load descriptor, and Write descriptor SSR cause the ASTC to be flushed. 

Changed DLOAD rewind to reset filesize. this allows the file size to change while open (notepad can do that)

Changed logic to make disk light go off, during slow processes for dealing with graphics.

added ability to plug and unplug the front panel.


-Release Version 1.0.4

removed Tilde as escape function for default CRT abilities. (since versados uses tilde alot in source files as a line=draw symbol) This makes the default CRT to be a HAZELTINE 1510, not 1500/1510.(NOTE - eventually i will change the default CRT to something better than a H1510... maybe vt52 or tv920 ??)

added ability to add extra comments to a new IMD disk image

added function to the NEW disk window that allows the user to decompress an IMD file

fixed so that nasty KILL bug does not rear its evil head. 

fixed bug in NET device where restart converted to client (fixed z80emu too)

added DLSA, DLRO, DLLO, ULTXT and ULBIN to WD01: floppy disk for downloading and uploading to vme10 emulator.

made TUTOR floppy distro disk, and tested it with vme10emu... it works.

added mouse pointer change to SET/CLEAR IG  and to SWAP/UNSWAP ROM and to RESETs

fixed error in dropzone.  skipping files no longer messes up the dropzone.(fixed z80emu too)

added extra test for validity to dropzone.(fixed z80emu too)

added filesize to DLOAD interface...  Needed for Contiguous files.

chnaged debugger command MD/DM to use word for word and long accesses using MEM access routines. Previously was BYTES.  (some IO devices are implemented to return a value reguardless of even/odd or byte/word)

changed TAD/TTA in debugger to output which descriptor is used in translation.

modified BSOD rom to display "DB" on FP while initializing, then "D0" on FP when done. Changed order that some things are done to make it look better during POR.

modified Reset and Power on reset buttons to be enabled all the time, after POR. No real need to stop before a reset or POR. ONLY need to stop before boot.  Added Stop to Boot menu so you dont have to use stop button. added GO after BH (not really needed but guarantees that the PC is loaded.)

modified STOP intruction use of  WaitFor 

changed WaitForInterrupt or Trace, to also wait for reset;  
changed WaitForInterrupt or Trace, to process interrupt delay for MVME400 SN2661 and RWIN..   
Wait for Interrupt or Trace now checks to see if it should go to next MC or jump back to itself. This makes the WaitForInterrupt or Trace get iteratively executed. Previously, looped internally, now it is an external MC loop.

added CRTC command to debugger. Displays MC6845 CRTC.


-Release Version 1.0.3

Added ability to make have the Dissassembler try to translate adddresses though the MMU. 

Added ability to turn on and of the dissassembler's MMU capability

Fixed error in RWIN pre-read and pre-write error detector to use actual MAXLSN instead of Configure drive MAXLSN. Explanation... if no disk in drive then configure disk set MAXLSN to 0. So, drive would only work if there was a disk in it at configure time. Some OSes (CPM) do not re-configure on disk removal/INSERT.  
Added Disk Light to Main form. Green=read  Red=write

Added TAD command to the debugger. TAD translates an address/fc from logical to physical. Only works if the MMU has a currently loaded descriptor for the LOG to PHY. Else LOG=PHY.

Added ability to add or remove memory. 2 256KB and the rest 2MB. This allows one 201 for UNIX bug. 

Changed all delays to be counts, instead of masks. 

Fixed it so that ANY errors in setting time in RTC cause time to be set to NOW - 10227. This is NOT right, but can not figure out how to protect and do it right, without re-writting to set manually.

Fixed RTC to terminate, thus saving configuration.

Made the Throttle label toggle values on single click. Resets values on Double Click.

Added option to select Old or New Keyboard.(but best to use old keyboard..less interrupts)

Added interrupt delay , so new keyboard does not create a tight interrupt situation for driver. Same delay is there for non-interrupt but should not matter.

Added Disable periodic timer during full screen graphics merge. This aleviates the tight ASR problem in the Graphics server. However, does not fix whatever is locking it up during a few of the demos.

Added Clock and CMOS command to debugger

added BR command to help in debugger

put END in SUB MAIN - program terminates now.


-Release Version 1.0.2

Added a versados disk image that contains a first generation Down Load program for VersaDOS. 

Changed main form to a fixed window. Removed all tab stops. 

Changed RWIN delay implementation from a VB timer to a Instruction counter. Now the counter represents the number of instructions to be executed before the command is completed and the interrupt is asserted. This sped up the disk accesses significantly.

Removed label from main form's frame.

fixed missing CRLFs in the debugger help

TTY emulator - Fixed the 80 vs 132 column menu items. 

Reversed Blank Lock(INS) and Click Lock (DEL). Matches documentation NOW.

added context sensitive help IDs to all forms except VMEs10 and CRT. (still NO help file)

documentation on Pad Function Key was IFFY. PF key down is HEX pad and PF up is Function pad.
the HEX LOCK key (emulator only) selects whether F1-F6 is Function keys or PAD keys
if HEX pad selected , then F1-F6 are HEX A-F, if function pad, then F1-F6 are DCHR DLINE PMODE x EAU x

added About Form

added Version command to debugger. You must set Version to correct Vdos Version for some commands to display properly. 

fixed syspar format to correctly represent 4.3, 4.4 and 4.5 structure, based on what set with Version Command.

modified CrashSave command to also use version. CrashSave now auto uses version to display right format.

added the SYSPAR and CCB commands to the debugger's help display.

added hot patches for running VersaDOS to modify the Timer interval so that vdos keeps time. HOT PATCHes make the timer interval 55ms instead of 15.625. Without patches, Versados sees only 16 seconds for each 60 real seconds. 

removed code to average out 15.625 ms , since not possible. 55ms is the smallest period possible (with out using the High Performance timer, which may or may not exist on a system).

added 256 byte per sector Versados floppy formats to the Create IMD, on New Disk dialog.

added OK button to create disks.

made menu item for Screen/keyboard indicate state of screen/keyboard

modified how the selected BUG is depicted in the menus. Should only use TenBUG.


-Pre-release Version 1.0.1

Continuing development of the VME10 emulator. 

Corrected many bugs. 

Read and Write LSN disk IO no longer aborts due to overflow. 

Fixed overflow when calculating number of bytes to transfer in RWIN.

Changed the Simple Boot method to use the parameters specified in the Get/Put Boot dialog. 

Added CPU Trace Table, and Debugger option (IRT) to enable and disable. Each Opcode Fetch adds an entry containing the PC into the table. Added Display Trace Table Command (DTT) to Debugger.

Added SYSPAR and CCB debugging commands that display the VersaDOS SYSPAR and a CCB. (needed this to find why the MVME400's were not allowing a login - now fixed) 

Added debugger command to display VersaDOS CrashSave Areas, in  two foramts. 

Added commands to the Debugger to dispaly internal configuration of MMU, SN2661, MVME400s MVME410, SCM, RWIN, RTC and CRTC.

Added a work-a-round for a VersaDOS 4.3 bug that failed to read the UIP bit in the RTC. The RTC is double buffered with the actual update occurring when the UIP is read or the UF flag is read. But had to add read of HOURS, also, to fix bug.

Modified the GUI to look a little better. Removed the Floppy and HD buttons, since not used. 

Added Throttle controls for CPU, RWIN and MVME400 cards. The MVME 400 cards now interrupt properly. 
CPU thottle controls how often the Microcode Engine releases control to Windows. The RWIN throttle controls how long after a command completes before the command is reported as complete, and interrupts. The MVME400 thottle specifies the time (in instructions) after the MVME400 TXE and RXA interrupt.

The RWIN throttle specifies a time in MS. The MVME400 throttle, specifies a mask to be ANDed to the instruction counter and then compared to zero. The CPU throttle, is like the MVME400 throttle, except uses the Micro Code counter. These throttles may disappear in later releases.  

Implemented MVME400 cards well enough to run VersaDOS. Can login to Two Serial ports on Card 0.  (aleviates, somewhat, the slow Screen situation)

Added CRT emulator and Network Device (TELNET CLIENT) The CRT emulator allow the user to use the VersaDOS TIE editor. (Terminal Independent Editor)

Changed startup to auto initialize the CPU's Opcode Map to an initial MC68010. 

Added ability to plug and unplug the MVME400 and MVME410 cards. Modified GUI to reflect presence of cards. 

Moved the Keyboard related lights to the actrual Screen Form. Added Time display to Screen form. This displays the RTC time, not the VersaDos time. (currently VersaDOS looses too many periodic interrupts to keep proper time (must FIX) )

Finished implementing the Get/Put BOOT feature, which is really just a read and write directly to disk images. 

Added MVME400 initialization code to the BSOD rom. Added the ability to detect and skip coding for unplugged cards to BSOD rom. 

Added better control of BOOT register contents. The VME10's TENBUG uses TRAP 15. But the BSOD also supports some ALT trap 15 and USE BUG options.

Added I/O for the IPL.SY program to use, during boot.

Added a Front Panel LED. A real VME10 does not have one, but VersaDOS still writes to it, so...

Can specify Data vs. Program areas while dissassembling.


-BETA release V 1.0.0

Initial BETA release, to introduce people to the VME10 Emulator.