-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGES.TXT
2267 lines (1914 loc) · 85 KB
/
CHANGES.TXT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Emu42 v1.20
DDESERV.C
- bugfix in function DdeCallback(), improved input data checking and
avoided multiple DDE data fetch in XTYP_POKE case
DEBUGGER.C
- bugfix in function OnLButtonUp(), fixed a buffer overflow when
converting a 3 byte hexadecimal string to variable Chipset.out
which overwrite the content of variable Chipset.in and fixed a
buffer overflow when converting a 4 byte hexadecimal string to
variable Chipset.in which overwrite the following two padding
bytes
DISMEM.C
- changed function SetMemRomType(), fixed signed/unsigned mismatch
DISPLAY.C
- changed function WritePixelZoom4(), WritePixelZoom3(),
WritePixelZoom2() and WritePixelZoom1(), optimized implementation
by pointer usage and constant folding
- changed function WritePixelDWORD(), WritePixelWORD() and
WritePixelBYTE(), changed order of operands to enable constant
folding of compiler
- bugfix in function ResizeWindow(), the WM_PAINT message wasn't
generated by the InvalidateRect() call when the title and menu bar
was disabled and the client area was empty, so we got a main
window with zero size which could not be activated any more ->
issue solved by forcing a menu bar when client area is empty
DISRPL.C
- changed function PutSn(), minor optimization
- changed function DoHexStream(), DoIntStream(), DoBint(), DoReal(),
DoERel(), DoCmp(), DoECmp(), DoChar(), DoCStr(), DoHxs(),
DoIdnt(), DoLam(), DoRomp(), Semi() and DoFlashPtr(), added
UNREFERENCED_PARAMETER statement
- changed function DoERel(), made function static
- changed function Getfp(), fixed signed/unsigned mismatch
EMU42.C
- changed szLicence string, updated to the latest revision of the
GPLv2
- moved function SetSoundDeviceList() to SNDENUM.C
EMU42.DSP
- added snddef.h and sndenum.c sources
EMU42.H
- extern declaration of global function
EMU42.RC
- changed IDD_SETTINGS, removed text "Device" and enlarged width of
combo box IDC_SOUND_DEVICE
- changed version and copyright
FILES.C
- changed function OpenDocument(), removed switcher for document
format version
KML.C
- changed function iSqrt(), changed implementation to Heron's method
for speed optimization
REDEYE.C
- changed function CreateCorrectionBits(), fixed signed/unsigned
mismatch
SNDDEF.H
- include files and interface definitions for SNDENUM.C for
compilers without installed DirectX SDK
SNDENUM.C
- new module with implementation of function SetSoundDeviceList()
prior located in EMU48.C for sound device enumeration showing the
full device name used since Windows Vista
STACK.C
- removed include resource.h
- bugfix in function RPL_GetComplex(), function arguments nMantLen
and nExpLen hadn't been used
TIMER.C
- removed include ops.h
Emu42 v1.19
DEBUGGER.C
- bugfix in function OnContextMenu(), when the context menu was
generated from the keyboard it was opened at the wrong position
- bugfix in function Debugger(), use critical section for secure
deletion of the last instruction buffer
DISPLAY.C
- changed function ResizeWindow(), optimized implementation now
works independent from window style and menu bar setting
EMU42.C
- added global variable dwTColor and dwTColorTol for the background
transparency color matching
- added global variable hRgn to hold a region resource handle for
a transparent background bitmap
- added global variables bTitleBar, bShowTitle, bShowMenu and
bClientWinMove
- added Critical Section initialization
- added function UpdateWindowBars(), helper function to update state
of title and menu bar
- changed function SettingsProc(), added "Show Title" and
"Show Menu" checkbox handling
- changed function OnPaint(), added UpdateWindowBars() call
- changed function OnInitMenu(), added MRU list update
- added function OnContextMenu(), context menu implementation
- added function OnNcHitTest(), when no title bar check if mouse
position is in client not over a button area
- changed function MainWndProc(), minor change in WM_PALETTECHANGED
implementation and added WM_CONTEXTMENU, WM_NCRBUTTONUP and
WM_NCHITTEST message handler
- changed function WinMain(), changed method of memory leak
detection by adding _CrtSetDbgFlag() at begin and removing
_CrtDumpMemoryLeaks() at end of program
EMU42.H
- added window styles definition
- changed function prototypes
- extern declaration of global variables and function
EMU42.RC
- changed IDD_SETTINGS, added "Show Title" and "Show Menu" checkbox
- added menu IDM_MENU
- changed version and copyright
ENGINE.C
- bugfix in function SaveInstrAddr(), added critical section to be
sure that last instruction buffer is still available
FETCH.C
- added typecast to all pLnk entries for compatibility with C++
compiling on GCC 4.8.1
FILES.C
- defined abs() and labs() as intrinsic
- changed function DecodeGif(), changed function prototype by adding
an argument overwritten by the transparent color if found
- changed function LoadBitmapFile(), adjusted to new prototype of
function DecodeGif()
- added function AbsColorCmp() and LabColorCmp(), compare colors
with tolerance
- added function CreateRgnFromBitmap(), create opaque bitmap region
KML.C
- added keyword "SysItem" to pLexToken[] table
- changed function InitGlobal(), added implementation of keyword
"Color"
- changed function RunLine(), added implementation of keyword
"SysItem"
- changed function KillKML(), added reset of variables hRgn,
dwTColor and dwTColorTol
- added function MouseIsButton() to check if mouse over button area
- changed function MouseMovesTo(), changed _ASSERT implementation to
make sure that class cursor is NULL and use function
MouseIsButton() to select cursor type now
KML.H
- added TOK_SYSITEM definition
- changed structure KmlToken, replaced TCHAR array szName[20] with
LPCTSTR szName pointer
- added MouseIsButton() function prototype
MRU.C
- changed all function argument types from INT to UINT
- removed global variables hMruMenu and nMruPos
- removed all update menu calls in this module and made functions
robust against non initialized MRU list and ID index out of range
- changed function GetMenuPosForId(), changed function prototype so
the resulting menu handle and menu position aren't global
variables any more
- changed function MruInit(), changed return value from FALSE to
TRUE for success and changed implementation like used in the PPC
emulator variants
- changed function MruUpdateMenu(), changed function prototype by
adding the HMENU argument for updating the selected menu and added
initialization prior done in function MruInit()
- changed function MruWriteList(), if there are no entries don't
write the "FileCount" setting any more
PCH.H
- added _WINSOCK_DEPRECATED_NO_WARNINGS definition
- added GCLP_HCURSOR, SetClassLongPtr, GetClassLongPtr and ULONG_PTR
definitions for MSVC6.0 SDK and earlier
RESOURCE.H
- added definitions
SETTINGS.C
- changed function ReadSettings() and WriteSettings(), added item
"ShowTitle", "ShowMenu" and "ClientWinMove" in section [Emulator]
in the INI-File
SOUND.C
- bugfix in function DestroyWaveThread(), the WM_QUIT message may
failed and so the sound message thread wasn't shut down
- changed function SoundOpen(), added additional check if the sound
device support the necessary audio format
STACK.C
- changed function SetBcd(), fixed signed/unsigned mismatch
SYMBFILE.C
- changed function RplLoadTable(), made optimizations and added
integrity checks
Emu42 v1.18
DEBUGGER.C
- removed INSTRSIZE definition
- changed function GetAddr(), made function more general by adding
address range check and the ability of decoding a symbolic entry
into an address
- bugfix in function OnSetCursor(), on "Activation follows mouse"
enabled child dialogs lost focus when cursor moved over parent
debugger dialog
- changed function Debugger(), removed initialization of global
variable wInstrSize
- changed function EnterAddr(), changed parameter storage from
static variable to window user data and replaced address decoder
code by GetAddr() function call
- changed function EnterBreakpoint(), replaced address decoder code
by GetAddr() function call and so added decoding a symbolic entry
into an address
- bugfix in function LoadMemData(), forgot to check if file content
fit into Saturn address range, loading now stops also after last
Saturn address written
- changed function SaveMemData(), added assertion for Saturn address
verification
- bugfix in function DebugMemLoad() and DebugMemSave(), adjusted to
new prototype of function GetAddr() and so added checking if the
given addresses are in the Saturn address range because Saturn
read/write functions don't do the range check; this also cause a
change in behavior, on empty address fields the operation fails
and the dialog still remains open
DISPLAY.C
- changed table sSegtabSaca[], added 64bit qualifier to image
constants
- changed function UpdateContrastLewis(), replaced BitBlt() by
PatBlt() function call
- changed function CreateLcdBitmap(), the height of a Lewis chip
Pioneer calculator pixel is now calculated by formula and added
implementation to select the pixel drawing routine over function
pointer, Zoom factors 1-4 still using the old implementation,
greater Zoom factors are using a more generic approach
- changed DestroyLcdBitmap(), added reset of variables x-zoom factor
and function pointer WritePixel
- replaced function WritePixel() by the new functions
WritePixelZoom4(), WritePixelZoom3(), WritePixelZoom2() and
WritePixelZoom1() and WritePixelDWORD(), WritePixelWORD() and
WritePixelBYTE() with new implementation to support nLcdZoom
values > 4
- changed function UpdateDisplayClamshell() and
UpdateDisplayPioneer(), removed zoom factor assertion
- changed function UpdateAnnunciators(), changed to a more efficient
bitcount implementation
EMU42.C
- changed function SetSoundDeviceList(), replaced "Standard Audio"
device ID from constant to definition
- bugfix in function SettingsProc(), restart the sound engine by
calling the clean up and initialization functions now and on
"Activation follows mouse" enabled debugger dialog maybe got focus
even if it's not the last active one
- changed function OnFileNew(), removed call of function
SaveBackup() which is already a part of function NewDocument()
- changed function OnFileNew(), OnFileOpen(), OnFileMruOpen(),
OnFileSave(), OnFileSaveAs() and OnFileClose(), switched detection
of document is available from variable pbyRom (ROM image loaded)
to variable bDocumentAvail
- changed function WinMain(), added sound engine initialization and
clean up
EMU42.RC
- changed version and copyright
ENGINE.C
- initialized variable wInstrSize with size of last instruction
array (the circular buffer can hold (wInstrSize-1) instructions)
- bugfix in function WorkerThread(), moved sound engine
initialization and clean up from SM_RUN state to main function,
this prevents a non responding Saturn CPU emulation when changing
from SM_SLEEP to SM_RUN state during sound engine initialization
FETCH.C
- made typedef of jump table struct constant, so the const keyword
was removed from all references of JMPTAB
- changed function EvalOpcode(), minor code optimization
FILES.C
- bugfix in function PatchRom(), removed limitation that patch file
must have 6 characters minimum, fixed a buffer overflow when end
of patch file consists of white space characters, recalculate
CRC's only on address patch written and return failture on syntax
errors now
KML.C
- changed function InitLcd(), removed Zoom factor 4 limitation
PCH.H
- added MSVC6.0 compatible 64bit constant qualifier macro
- added GWLP_USERDATA, SetWindowLongPtr, GetWindowLongPtr and
LONG_PTR definitions for MSVC6.0 SDK and earlier
REDEYE.C
- changed function IrPrinter(), changed to a more efficient
bitcount implementation for missed bits
SETTINGS.C
- changed function ReadSettings() and WriteSettings(), added item
"LastInstrBufSize" in section [Debugger] in the INI-File
STACK.C
- added function Trim(), create a trimmed copy of the input string
- added function SetBcd(), contain implementation of prior function
RPL_SetBcd()
- changed function RPL_SetBcd(), wrapper for function SetBcd() to
trim data before decoding
- changed function RPL_SetComplex(), create a trimmed working copy
before decoding the outline brackets and because of the changed
function RPL_SetBcd() the real number arguments are accepted with
white spaces around now
- removed disabled function IsRealNumber(), it was more or less
functional compatible with actual modified function RPL_SetBcd()
TIMER.C
- removed UNIX_0_TIME definition
UDP.C
- changed function SendByteUdp(), replaced malloc() by _alloca()
call for UNICODE wchar to char string translation to get rid of
freeing the allocated memory manually
Emu42 v1.17
DDESERV.C
- prepared for C++ compiling
DEBUGGER.C
- prepared for C++ compiling
- added new function OnCodeFindPCO(), search for a PCO object in the
code window
- changed function Debugger(), added context menu commands handler
in the WM_COMMAND section
- changed function OnFindOK(), added downwards search direction
- changed function Find(), added and changed message handler for the
"Previous" and "Next" buttons
DISMEM.C
- prepared for C++ compiling
EMU42.C
- prepared for C++ compiling
- replaced global variable lThreadId with local variable dwThreadId
- added global variable with the identifier for the waveform-audio
output device
- added function SetSoundDeviceList(), helper function for filling
sound device combo box with waveform-audio output devices
- changed function SettingsProc(), removed sound radio button
handlers and added implementation of sound device combo box
- bugfix in function OnViewScript(), ROM image change wasn't handled
- bugfix in function OnCopyData(), state file loading is only
allowed when the current instance has already a document available
EMU42.DSP
- added sound.c sources
EMU42.H
- prepared for C++ compiling
- extern declaration of global variables and functions
- removed extern declaration of global variable
EMU42.RC
- changed IDD_FIND, added a "Previous" button for previous search,
shorten the text of the "Find Next" button to "Next" and changed
the ID of the next search button
- changed IDD_SETTINGS, removed "Speaker" and "Wave" radio buttons
and added "Device" combo box in the sound section
- added "Previous PCO" and "Next PCO" menu entries in debugger
"Code" context menu
- changed version and copyright
ENGINE.C
- added global variable bEnableSlow for global disabling slowing
down the CPU
- added global variable bSoundSlow slowing down the CPU core at
sound output
- changed function AdjustSpeed() and InitAdjustSpeed, added sound
slow down implementation
- changed function WorkerThread(), added sound engine control
EXTERNAL.C
- removed global variable bWaveBeep
- moved global variable dwWaveVol to module sound.c
- removed functions BeepWave(), BeepWin9x() and Beeper()
- changed function External0() and External1(), removed PC speaker
support and used function SoundBeep() instead of Beeper() for beep
output over sound card
FETCH.C
- prepared for C++ compiling
FILES.C
- prepared for C++ compiling
- changed function MapRom(), modified minimum file size detection
and replaced VirtualAlloc() with malloc() memory request
- changed function UnmapRom(), adjusted memory deallocation
- changed function SaveBackup(), improved document available
detection
KML.C
- prepared for C++ compiling
- added global variable wKeybLocId to hold the keyboard layout input
locale at begin of KML loading
- changed function ParseBlocks(), use variable wKeybLocId instead
of input locale reading
- bugfix in function KillKML(), key mapping state table wasn't
cleared at the end and added reset of variable wKeybLocId
- bugfix in function InitKML(), changed implementation by reading
the current keyboard layout and convert the layout data to the
input locale setting
MRU.C
- prepared for C++ compiling
OPCODES.C
- changed function o801(), call beeper handler function on beeper
port change
PCH.H
- added include malloc.h
RESOURCE.H
- added definitions
- removed IDC_SOUND_SPEAKER and IDC_SOUND_WAVE
RPL.C
- prepared for C++ compiling
SETTINGS.C
- bugfix in function GetRegistryString(), ignored target buffer size
when copying the default to the target string buffer
- changed function ReadSettings() and WriteSettings(), added item
"WaveDeviceId" and "WaveTime" and deleted item "WaveBeep" in
section [Emulator] in the INI-File
SOUND.C
- new module for native beeper emulation over wave output device
STACK.C
- prepared for C++ compiling
SYMBFILE.C
- prepared for C++ compiling
USRPRG32.C
- prepared for C++ compiling
USRPRG42.C
- prepared for C++ compiling
Emu42 v1.16
EMU42.C
- added function OnCopyData() as WM_COPYDATA message handler
implementation for changing the state file to the given state file
name
- changed function MainWndProc(), added WM_COPYDATA message handler
- changed function WinMain(), expanded single instance case by
transmitting the given state file name to the already opened
program instance and made more flexible CPU binding for the Saturn
core emulation thread on Windows NT4.0 and later
EMU42.H
- added WM_COPYDATA identifier definition
EMU42.RC
- changed version
KML.C
- added global variable bLocaleInc for checking if locale block
content already included
- added keyword "Locale" to pLexToken[] and token TOK_LOCALE to
eIsGlobalBlock[] table
- changed function ParseLine() and ParseBlock(), preset szLexString
variable with NULL after freeing
- changed function IncludeLines() and IncludeBlocks(), changed
function prototype by adding a boolean argument for selecting the
text message "Including" or "Parsing" in the log file
- bugfix in function ParseLines(), return a TOK_NONE line for an
empty block instead of a NULL pointer which regular stands for a
syntax error
- bugfix in function ParseLines() and ParseBlocks(), changed
function prototype by adding a boolean argument for selecting the
mode "include" or "parse" for the next lines or blocks and
verifying the "Include" argument was incomplete and may caused
memory leaks at error condition
- bugfix in function ParseBlock(), verifying the block commmand
argument was incomplete and may caused a memory leak at error
condition
- changed function ParseBlocks(), changed function prototype by
adding a boolean argument if an "End" token is also valid and
added implementation of block "Locale"
- changed function KillKML(), added reset of variable bLocaleInc
- changed function ReleaseButton(), for speed optimization skip
function if button is already released
- bugfix in function LoadKMLGlobal(), fixed a memory leak caused by
the error condition that expected block command is a string
- changed function InitKML(), added current keyboard input locale
setting log file text
KML.H
- added TOK_LOCALE definition
TIMER.C
- changed function SetHPTime(), time calculation now work properly
for host system dates before 1970/01/01 and after 2106/02/07
Emu42 v1.15
DEBUGGER.C
- removed structure MODEL_MAP_T, variables MemMap[], pbyMapData,
dwMapDataSize and pMapping, the implementation behind moved to
module DISMEM.C
- changed function SetMappingMenu(), InitMemMap() and OnFindOK(),
changed to DISMEM.C implementation
- changed function GetMemCurAddr(), OnMemGoAdr(), OnKeyUpDown() and
OnKeyPlusMinus(), variable dwMapDataSize isn't global any more,
use function GetMemDataMask() instead
- changed function ViewCodeWnd(), set disassembler to memory mapped
mode
- changed function ViewMemWnd(), removed initialized but unused
variable and changed to DISMEM.C implementation
- bugfix in function OnDblClick(), fixed buffer overflow when
converting a 2 byte hexadecimal string to a byte and added an
update of code window
- changed function Debugger(), changed disassembler mode setting and
added initialization of RPL object viewer get nibble function in
WM_INITDIALOG message
- bugfix in function UpdateRplObjViewWnd(), show entry point names
only in mapped mode and end address for RPL object viewer depend
on the actual memory mapping mode and with the design change to
the DISMEM.C implementation in all debugger and disassembler
related parts, the RPL object viewer also works in all memory
mapping modes properly now
DISASM.C
- changed function read_nibble(), call function GetMemNib() from the
new module DISMEM.C for mapping mode memory access and made
function static
DISPLAY.C
- initialized the color array in variable bmiLcd now
- changed function UpdateContrastSaca(), new brush is only necessary
for an initialized KML contrast palette entry
- changed function CreateLcdBitmap(), preset KML contrast palette
with black on background for the case of a complete uninitialized
KML contrast palette
- changed function WritePixel(), draw only the pixel that have to be
switched on
- changed function UpdateContrastLewis(), CreateLcdBitmap(),
DestroyLcdBitmap(), UpdateDisplayClamshell(),
UpdateDisplayPioneer(), UpdateAnnunciators() and StopDisplay(),
added support for real image LCD background
- changed function UpdateDisplaySacajawea(), don't draw display
pattern on uninitialized KML foreground contrast palette entry
- changed function UpdateMainDisplay(), exchanged StretchBlt() back
to BitBlt() because the bug in the WineHQ BitBlt() implementation
was fixed in Wine 1.4
DISRPL.C
- the get nibble function is not hard referenced as read_nibble()
call any more, it's now called over RplReadNibble() function
pointer
- changed function PrintTail(), expanded to handle 6 digit addresses
- changed function RplCreateObjView(), defined end pointer also as
constant
DISRPL.H
- added extern declaration of RplReadNibble() function pointer
EMU42.C
- changed function SettingsProc(), added "Single Instance" checkbox
handling
- changed function OnPaint(), exchanged StretchBlt() back to
BitBlt() in display redraw part because the bug in the WineHQ
BitBlt() implementation was fixed in Wine 1.4
- bugfix in function OnDropFiles(), changed function prototype to
the correct structure type of dropped file names and initialized
the bSuccess variable for the case the wNumFiles variable is 0
- changed function Disasm(), changed to DISMEM.C implementation
- changed function MainWndProc(), made correct type cast to argument
of function OnDropFiles()
- changed function WinMain(), replaced multiple class name usage
with atom variable, added current directory reading, moved read
settings before window creation added check for setting
"SingleInstance" to switch to an already running program instance
instead of creating a new one and added more flexible CPU binding
for the Saturn core emulation thread on Windows Vista and later
EMU42.DSP
- added dismem.c sources
EMU42.H
- added enum MEM_MAPPING
- removed FullFilename() declaration
- extern declaration of global variables and functions
- removed extern declaration of global variable
EMU42.RC
- added item "Single Instance" in settings dialog
- changed version and copyright
FILES.C
- added szCurrentDirectory[] variable holding the current directory
at program start
- removed function FullFilename()
- changed function PatchRom(), MapRom() and LoadBitmapFile(),
relaced call of function FullFilename() by calling
SetCurrentDirectory() twice
- bugfix in function DecodeBmp() and DecodeGif(), a 2nd bitmap load
allocated and bound a 2nd palette to the main window, now only the
1st bitmap (mostly the KML background bitmap) bound his palette to
the main window
KML.C
- changed table pLexToken[], defined table as constant and changed
last token id table preset from constant number to member of token
id enumerator
- changed function DestroyKmlList() and CreateKmlList(), changed
function prototype explicit setting VOID as argument
- changed function CreateKmlList(), IncludeLines(), IncludeBlocks(),
LoadKMLGlobal() and InitKML(), relaced call of function
FullFilename() by calling SetCurrentDirectory() twice
- bugfix in function ParseString(), decoding the \" sequence as
quotation mark inside a string was incomplete, so every single '\'
character was also removed
- bugfix in function ReloadButtons(), ON key button wasn't handled
MRU.C
- changed function MruUpdateMenu(), changed variable type of
variable hMenu
- changed function MruReadList(), removed initialized but unused
variable
RESOURCE.H
- added definition
SETTINGS.C
- changed function ReadSettings(), moved current directory reading
and CPU speed setting to MainWndProc()
- changed function ReadSettings() and WriteSettings(), added item
"SingleInstance" in section [Emulator] in the INI-File
UDP.C
- added function ResetUdp(), reset UDP address
- bugfix in function SendByteUdp(), fixed memory leak at error
condition and optimized IP address decoding
USRPRG32.C
- bugfix in function ReadBuffer3(), function return type was missing
Emu42 v1.14
DDESERV.C
- replaced all HeapAlloc() with malloc() memory requests
DEBUGGER.C
- replaced all HeapAlloc() with malloc() memory requests
- changed function ToggleBreakpoint() and EditBreakpoint(), minor
code optimization purging breakpoint
- bugfix in function LoadBreakpointList(), added check of breakpoint
entries against breakpoint table size
DISRPL.C
- replaced all HeapAlloc() with malloc() memory requests
- bugfix in function BCDx(), fixed possible uninitialized bExpflag
variable
- bugfix in function DoRrp(), fixed possible uninitialized bErr
variable
EMU42.C
- removed global variable hHeap
- replaced all HeapAlloc() with malloc() memory requests
- changed function SettingsProc(), added infrared printer settings
- changed function SaveChanges(), detect if document is available
now over the variable bDocumentAvail and not over the variable
pbyRom any more; in the case of an illegal KML script there maybe
a document loaded, but no ROM image, so pbyRom will be NULL in
this case
- bugfix function OnViewScript(), when quitted the dialog "Choose
Your KML Script" with the Cancel button when chosen an invalid
script the function returned without the possibility of saving the
current document; now the function try to reload the primarily KML
script and if this also fails then the current document is saved
- changed function MainWndProc(), added call of
_CrtDumpMemoryLeaks() at end of program to detect malloc() memory
leaks
EMU42.DSP
- added redeye.c and udp.c sources
- added library Ws2_32.lib
EMU42.H
- removed extern declaration of hHeap
- extern declaration of global variables and functions
- added MMU bit definitions PAGE_BITS, ADDR_BITS and ADDR_SIZE
- changed variable prototypes of RMap[] and WMap[]
- replaced all HeapAlloc() with malloc() memory requests
EMU42.RC
- added "Infrared Printer" group in Settings dialog
- changed version and copyright
ENGINE.C
- added global variable nOpcSlow to hold the number of CPU opcodes
slowing down the CPU core
- changed function AdjustSpeed(), added CPU opcode slow down
implementation
- added function InitAdjustSpeed(), initialize CPU slow down part
if necessary
- changed function AdjKeySpeed() and SetSpeed(), use function
InitAdjustSpeed() to initialize the CPU slow down variables
EXTERNAL.C
- replaced all HeapAlloc() with malloc() memory requests
FILES.C
- replaced all HeapAlloc() with malloc() memory requests
- changed function CrcRom(), if no ROM available return without
modifying the checksum
- changed function ResetDocument(), NewDocument(), OpenDocument()
and RestoreBackup(), added state variable if document is available
- bugfix in function OpenDocument(), added check of KML script name
length against target buffer size and fixed a bug calculating
the number of key rows from the Chipset.Keyboard_Row buffer
IO.H
- changed PROW_END definition to 0x087, I'm mostly sure that the row
driver buffer has only a size of 16 nibbles; the =InitDisplay
routine in the HP32SII initialize 18 nibbles (16 relevant + 00 at
the end) for easier coding
KEYMACRO.C
- changed function EventThread(), added minimum key hold time for
keyboard macro playing and subtract minimum key hold time from
saved waiting time, this is more accurate when the user has
selected a different minimum key hold time than the default one
- changed function KeyMacroRecord(), now saving the complete waiting
time including the key state holding time, the key state holding
time is now subtract in the player function thread EventThread()
- changed function OnToolMacroNew(), removed adding the key state
holding time to the reference time, this is not necessary any more
KML.C
- replaced all HeapAlloc() with malloc() memory requests
- bugfix in function ParseBlock(), string argument wasn't freed in
error case
MOPS.C
- changed MMU page size bits from code constants to definitions
- added function NreadEx() as replacement for the functions Npeek()
and Nread()
- changed function Npeek() and Nread(), coded as inline to call the
replacement function NreadEx()
- added function ReadT2Acc(), reading timer2 value with checking for
CPU speed measurement behaviour
- changed function ReadSacajaweaIO(), ReadLewisIO() and
ReadLewisSlaveIO(), the timer2 register content is now read by
function ReadT2Acc() to analyze the read access scheme
- bugfix in function WriteLewisIO(), added implementation of the STL
bit in the LEDOUT (0x30D) register
MRU.C
- replaced all HeapAlloc() with malloc() memory requests
OPS.H
- changed MMU page size bits from code constants to definitions
- bugfix in function FASTPTR(), longest opcode calculation from
buffer size was wrong, so MMU boundary fixup wasn't working
properly
PCH.H
- added include winsock2.h
REDEYE.C
- new module for decoding the redeye data stream for a HP82240B
printer
RESOURCE.H
- added some definitions
RPL.C
- replaced all HeapAlloc() with malloc() memory requests
SETTINGS.C
- changed function ReadSettings() and WriteSettings(), added item
"KeyMinDelay" in section [Macro] and the items "Address" and
"Port" in section [IrPrinter] in the INI-File
STACK.C
- replaced all HeapAlloc() with malloc() memory requests
- bugfix in function RPL_GetBcd(), fixed possible uninitialized
bExpflag variable
- bugfix in function OnStackCopy(), fixed possible uninitialized
uClipboardFormat variable in DOCSTR case
SYMBFILE.C
- replaced all HeapAlloc() with malloc() memory requests
UDP.C
- new module for sending a byte over UDP
USRPRG32.C
- replaced all HeapAlloc() with malloc() memory requests
USRPRG42.C
- replaced all HeapAlloc() with malloc() memory requests
Emu42 v1.13
DEBUGGER.C
- changed table MemMap[], replaced Chipset memory pointer NCE2 and
NCE3 by new variables
- changed function Debugger(), removed all UpdateWindowStatus()
function calls
DISPLAY.C
- added RGBtoCOLORREF definition
- bugfix in function SetBkBitmap(), UpdateContrastSaca() and
CreateLcdBitmap(), the color argument of function
CreateSolidBrush() must be in COLORREF and not in RGBQUAD format
EMU42.C
- renamed function UpdateWindowStatus() to OnInitMenu() and modified
it to a WM_INITMENU message handler
- changed function OnFileNew() and WinMain(), removed all
UpdateWindowStatus() function calls
- changed function MainWndProc(), added WM_INITMENU message handler
- changed function Disasm(), added if opcode should be interpreted
as PCO
EMU42.DSP
- changed the resource natural language to English
EMU42.H
- extern declaration of global variables
- removed declaration of global function UpdateWindowStatus()
EMU42.RC
- changed IDD_DEBUG_SETTINGS, replaced "Ok" with "OK" and removed
accelerator keys from "OK" and "Cancel"
- changed IDR_DEBUG_MEM, added several accelerator keys
- changed version and copyright
ENGINE.C
- changed function SwitchToState(), removed all UpdateWindowStatus()
function calls
FILES.C
- added global variables to hold the memory module pointers prior
located in the Chipset and ChipsetS structure
- bugfix in function PatchRom(), if first patch address in a line
was outside the ROM area, the emulator crashed with an access
violation, removed the patch address wrap around
- changed function ResetDocument(), NewDocument(), OpenDocument(),
SaveDocument(), SaveBackup(), RestoreBackup() and ResetBackup(),
replaced Chipset memory pointer NCE2 and NCE3 by new variables
- changed function ResetDocument(), OpenDocument(),
SaveDocumentAs(), SaveBackup(), RestoreBackup() and ResetBackup(),
removed all UpdateWindowStatus() function calls
- changed function DibNumColors(), changed function prototype from
UINT to WORD return
- changed function CreateBIPalette(), changed variable
UINT nNumColors to WORD wNumColors to avoid variable overflow
loading palNumEntries of LOGPALETTE structure
KEYMACRO.C
- changed function OnToolMacroNew(), OnToolMacroPlay() and
OnToolMacroStop(), removed all UpdateWindowStatus() function calls
KML.C
- changed function ParseLines(), BOOL expression was missing in main
while() loop, worked because TOK_NONE is 0
- changed function RunLine(), removed warning when compiling for x64
architecture
- changed function KillKML(), removed UpdateWindowStatus() function
call
- changed function LoadKMLGlobal(), used wrong variable type for
variable eToken
MOPS.C
- changed table NCE[], replaced Chipset memory pointer NCE2 and NCE3
by new variables
OPCODES.C
- changed function o802() and o803(), replaced Chipset memory
pointer NCE2 and NCE3 by new variables
- bugfix in function o807(), a pressed ON key prevented the CPU
going into shutdown mode
OPS.H
- bugfix in function FASTPTR(), longest opcode is 21 nibbles long
and fixed problem executing an opcode over a MMU boundary
- changed function Nunpack(), new coding for speed optimization,
this solved also a bug in the code optimizer of VS2010 (the
optimizer generated wrong code, another possible workaround for
this problem was declaring the function argument "BYTE *a" as
"volatile BYTE *a")
PCH.H
- added INVALID_FILE_ATTRIBUTES definition
- enabled WinXP style under VS2005, VS2008 and VS2010
SETTINGS.C
- changed function WriteReg() and DelReg(), changed function
protoytypes to make them compatible with the functions
WritePrivateProfileString() and WritePrivateProfileInt()
- changed function GetRegistryInt(), changed function protoytype to
make it compatible with function GetPrivateProfileInt()
STACK.C
- bugfix in function OnStackCopy(), local target buffer was too
small to hold a large complex number
TYPES.H
- changed structures CHIPSET_M and CHIPSET_S, replaced NCE2 and NCE3
with a DWORD placeholder each, because when compiling for x64
architecture these 4 byte pointers grow up to 8 bytes and destroy
the state file structure
USRPRG42.C
- changed function SelectProgram(), removed warnings when compiling
UNICODE for x64 architecture
Emu42 v1.12
DDESERV.C
- bugfix in function DdeCallback(), readded delay at XTYP_POKE after
ON key state change switching calculator on and made ON key hold
time variable
DEBUGGER.C
- added backup breakpoint list
- changed function ViewCodeWnd() and UpdateCodeWnd(), calculators
base on Sacajawea hardware don't use PCO in there firmware
- changed function UpdateProfileWnd(), added Sacajawea hardware time
calculation to profiler
- changed function EnterAddr(), expanded hex address range from 6 to
8 digits
- added functions SaveBreakpointList() and
CreateBackupBreakpointList() to handle the backup breakpoint list
DEBUGGER.H
- extern declaration of global functions
DISPLAY.C
- made variable nLcdyZoom public
- added definitions and global variables
- changed initialization of dwKMLColor[] table
- added sSegtabSaca[] table
- added *UpdateContrast() function pointer
- added function GetDimLcdBitmap(), calculate size of Sacajawea LCD
- added function SetBkBitmap(), create background bitmap with
segments
- added function UpdateContrastSaca(), contrast handler for
Sacajawea hardware
- renamed function UpdateContrast() to UpdateContrastLewis()
- changed function GetSizeLcdBitmap(), return calculated sizes now
- changed function CreateLcdBitmap(), set variable nLcdyZoom only
when it's not initialized and added initialization for Sacajawea
display type
- changed function DestroyLcdBitmap(), changed contrast palette
setting to new startup colors and added cleanup for Sacajawea
display type
- changed function CreateMainBitmap(), added initialization for
annunciator DC
- changed function DestroyMainBitmap(), added reset of annunciator
DC
- added function CreateAnnunBitmap(), load Sacajawea annunciator
bitmap
- added function DestroyAnnunBitmap(), destroy Sacajawea annunciator
bitmap
- added function WritePixel(), a replacement for the removed
functions WritePixelQuad() and WritePixelRect()
- changed function UpdateDisplayClamshell() and
UpdateDisplayPioneer(), adjusted to the new function WritePixel()