screenshot support

This commit is contained in:
April Ayres-Griffiths 2019-04-13 10:04:32 +10:00
parent 743f44efa8
commit 9056ed6555
12 changed files with 1261 additions and 220 deletions

View File

@ -1,13 +1,13 @@
object GUIForm: TGUIForm
Left = 2270
Height = 574
Top = 247
Width = 945
Left = 2260
Height = 668
Top = 311
Width = 1014
AlphaBlendValue = 128
Caption = 'microM8 GUI'
ClientHeight = 549
ClientWidth = 945
Constraints.MinWidth = 945
ClientHeight = 648
ClientWidth = 1014
Constraints.MinWidth = 1014
DoubleBuffered = False
Menu = MainMenu1
OnChangeBounds = FormChangeBounds
@ -27,16 +27,16 @@ object GUIForm: TGUIForm
LCLVersion = '2.0.0.4'
object StatusBar1: TStatusBar
Left = 0
Height = 19
Top = 530
Width = 945
Height = 23
Top = 625
Width = 1014
Panels = <>
end
object ToolBar1: TToolBar
Left = 0
Height = 36
Top = 0
Width = 945
Width = 1014
ButtonHeight = 32
ButtonWidth = 32
Caption = 'ToolBar1'
@ -44,89 +44,123 @@ object GUIForm: TGUIForm
TabOrder = 1
object tbTintMode: TToolButton
Left = 1
Hint = 'Tint mode'
Top = 2
Caption = 'tbTintMode'
ImageIndex = 0
OnClick = tbTintModeClick
ParentShowHint = False
ShowHint = True
end
object tbRMVoxels: TToolButton
Tag = 1
Left = 549
Hint = 'Voxel Render'
Top = 2
Caption = 'Voxels'
Down = True
Grouped = True
ImageIndex = 4
OnClick = tbRMClick
ParentShowHint = False
PopupMenu = RecordingMenu
ShowHint = True
Style = tbsCheck
end
object tbRMDots: TToolButton
Left = 585
Hint = 'Dot Render'
Top = 2
Caption = 'Dots'
Grouped = True
ImageIndex = 5
OnClick = tbRMClick
ParentShowHint = False
ShowHint = True
Style = tbsCheck
end
object tbRMRaster: TToolButton
Tag = 2
Left = 621
Hint = 'Raster Render'
Top = 2
Caption = 'Raster'
Grouped = True
ImageIndex = 6
OnClick = tbRMClick
ParentShowHint = False
ShowHint = True
Style = tbsCheck
end
object tbRMColor: TToolButton
Left = 657
Hint = 'Toggle Color/Mono'
Top = 2
Caption = 'tbRMColor'
ImageIndex = 7
OnClick = tbRMColorClick
ParentShowHint = False
ShowHint = True
end
object ToolButton4: TToolButton
object tbRECState: TToolButton
Left = 725
Hint = 'Start Recording'
Top = 2
Caption = 'ToolButton4'
Caption = 'tbRECState'
DropdownMenu = RecordingMenu
ImageIndex = 9
OnClick = miRECStartFileClick
ParentShowHint = False
ShowHint = True
end
object ToolButton5: TToolButton
Left = 761
Hint = 'Rewind'
Top = 2
Caption = 'ToolButton5'
ImageIndex = 12
OnClick = miRECRewindClick
ParentShowHint = False
ShowHint = True
end
object ToolButton6: TToolButton
Left = 797
Hint = 'Forwards'
Top = 2
Caption = 'ToolButton6'
ImageIndex = 13
OnClick = miRECPlayClick
ParentShowHint = False
ShowHint = True
end
object ToolButton7: TToolButton
Left = 833
Hint = 'Resume'
Top = 2
Caption = 'ToolButton7'
ImageIndex = 14
OnClick = miRECResumeClick
ParentShowHint = False
ShowHint = True
end
object ToolButton8: TToolButton
Left = 869
Hint = 'Stop Recording'
Top = 2
Caption = 'ToolButton8'
ImageIndex = 15
OnClick = miRECStopClick
ParentShowHint = False
ShowHint = True
end
object ToolButton9: TToolButton
Left = 905
Hint = 'Pause'
Top = 2
Caption = 'ToolButton9'
ImageIndex = 16
OnClick = ToolButton9Click
ParentShowHint = False
ShowHint = True
end
object ToolButton10: TToolButton
Left = 693
@ -136,31 +170,43 @@ object GUIForm: TGUIForm
end
object tbJoystickAxisSwitch: TToolButton
Left = 37
Hint = 'Swap Joystick Axis'
Top = 2
Caption = 'tbJoystickAxisSwitch'
ImageIndex = 21
OnClick = tbJoystickAxisSwitchClick
ParentShowHint = False
ShowHint = True
end
object tbCapsMode: TToolButton
Left = 73
Hint = 'Toggle CAPS mode'
Top = 2
Caption = 'tbCapsMode'
ImageIndex = 17
OnClick = tbCapsModeClick
ParentShowHint = False
ShowHint = True
end
object tbScanlines: TToolButton
Left = 109
Hint = 'Toggle Interlacing'
Top = 2
Caption = 'tbScanlines'
ImageIndex = 19
OnClick = tbScanlinesClick
ParentShowHint = False
ShowHint = True
end
object tbWebDebugger: TToolButton
Left = 145
Hint = 'Web Debugger'
Top = 2
Caption = 'tbWebDebugger'
ImageIndex = 28
OnClick = miToolsWebDebuggerClick
ParentShowHint = False
ShowHint = True
end
object ToolButton15: TToolButton
Left = 181
@ -170,19 +216,23 @@ object GUIForm: TGUIForm
end
object tbVolDown: TToolButton
Left = 213
Hint = 'Volume Down'
Top = 2
Caption = 'tbVolDown'
ImageIndex = 23
OnClick = tbVolDownClick
ParentShowHint = False
ShowHint = True
end
object tbMasterVolume: TTrackBar
Left = 249
Height = 38
Height = 32
Top = 2
Width = 64
OnChange = tbMasterVolumeChange
Position = 0
ScalePos = trBottom
TabStop = False
TickMarks = tmBoth
TickStyle = tsManual
OnKeyDown = FormKeyDown
@ -191,10 +241,13 @@ object GUIForm: TGUIForm
end
object tbVolUp: TToolButton
Left = 313
Hint = 'Volume Up'
Top = 2
Caption = 'tbVolUp'
ImageIndex = 24
OnClick = tbVolUpClick
ParentShowHint = False
ShowHint = True
end
object ToolButton3: TToolButton
Left = 349
@ -204,20 +257,24 @@ object GUIForm: TGUIForm
end
object tbSpeedDown: TToolButton
Left = 381
Hint = 'CPU Speed Down'
Top = 2
Caption = 'tbSpeedDown'
ImageIndex = 25
OnClick = tbSpeedDownClick
ParentShowHint = False
ShowHint = True
end
object TrackBar2: TTrackBar
Left = 417
Height = 38
Height = 32
Top = 2
Width = 64
Max = 4
OnChange = TrackBar2Change
Position = 0
ScalePos = trBottom
TabStop = False
TickMarks = tmBoth
TickStyle = tsManual
OnKeyDown = FormKeyDown
@ -226,10 +283,13 @@ object GUIForm: TGUIForm
end
object tbSpeedUp: TToolButton
Left = 481
Hint = 'CPU Speed Up'
Top = 2
Caption = 'tbSpeedUp'
ImageIndex = 26
OnClick = tbSpeedUpClick
ParentShowHint = False
ShowHint = True
end
object ToolButton18: TToolButton
Left = 517
@ -237,35 +297,51 @@ object GUIForm: TGUIForm
Caption = 'ToolButton18'
Enabled = False
end
object ToolButton1: TToolButton
Left = 941
Top = 2
Caption = 'ToolButton1'
Enabled = False
end
object tbFullscreen: TToolButton
Left = 973
Hint = 'Fullscreen'
Top = 2
Caption = 'tbFullscreen'
ImageIndex = 29
OnClick = tbFullscreenClick
ParentShowHint = False
ShowHint = True
end
end
object pnlContainer: TPanel
Left = 0
Height = 494
Height = 589
Top = 36
Width = 945
Width = 1014
Align = alClient
BevelOuter = bvNone
ClientHeight = 494
ClientWidth = 945
ClientHeight = 589
ClientWidth = 1014
Color = clAqua
ParentColor = False
TabOrder = 2
object sidecarPanel: TPanel
Left = 775
Height = 494
Left = 844
Height = 589
Top = 0
Width = 170
Align = alRight
BevelOuter = bvNone
Caption = 'sidecarPanel'
ClientHeight = 494
ClientHeight = 589
ClientWidth = 170
Color = clBlack
ParentColor = False
TabOrder = 0
object Image1: TImage
Left = 0
Height = 494
Height = 589
Top = 0
Width = 170
Align = alClient
@ -5358,13 +5434,13 @@ object GUIForm: TGUIForm
end
object embedPanel: TPanel
Left = 0
Height = 494
Height = 589
Top = 0
Width = 775
Width = 844
Align = alClient
BevelOuter = bvNone
ClientHeight = 494
ClientWidth = 775
ClientHeight = 589
ClientWidth = 844
Color = clBlack
Font.Color = clWhite
ParentColor = False
@ -5372,9 +5448,9 @@ object GUIForm: TGUIForm
TabOrder = 1
object backdrop: TImage
Left = 0
Height = 494
Height = 589
Top = 0
Width = 775
Width = 844
Align = alClient
OnClick = backdropClick
Stretch = True
@ -5432,41 +5508,49 @@ object GUIForm: TGUIForm
OnClick = miVMClick
object miVM1: TMenuItem
Caption = '1'
RadioItem = True
ShortCut = 24625
OnClick = miVM1Click
end
object miVM2: TMenuItem
Caption = '2'
RadioItem = True
ShortCut = 24626
OnClick = miVM1Click
end
object miVM3: TMenuItem
Caption = '3'
RadioItem = True
ShortCut = 24627
OnClick = miVM1Click
end
object miVM4: TMenuItem
Caption = '4'
RadioItem = True
ShortCut = 24628
OnClick = miVM1Click
end
object miVM5: TMenuItem
Caption = '5'
RadioItem = True
ShortCut = 24629
OnClick = miVM1Click
end
object miVM6: TMenuItem
Caption = '6'
RadioItem = True
ShortCut = 24630
OnClick = miVM1Click
end
object miVM7: TMenuItem
Caption = '7'
RadioItem = True
ShortCut = 24631
OnClick = miVM1Click
end
object miVM8: TMenuItem
Caption = '8'
RadioItem = True
ShortCut = 24632
OnClick = miVM1Click
end
@ -5848,6 +5932,14 @@ object GUIForm: TGUIForm
ShortCut = 32781
OnClick = MenuItem14Click
end
object N10: TMenuItem
Caption = '-'
end
object miVideoScreenshot: TMenuItem
Caption = 'Take Screenshot'
ShortCut = 24796
OnClick = miVideoScreenshotClick
end
end
object Input: TMenuItem
Caption = 'Input'
@ -6275,10 +6367,12 @@ object GUIForm: TGUIForm
end
object miRECRewind: TMenuItem
Caption = 'Rewind'
ShortCut = 24795
OnClick = miRECRewindClick
end
object miRECPlay: TMenuItem
Caption = 'Play'
ShortCut = 24797
OnClick = miRECPlayClick
end
object miRECResume: TMenuItem
@ -6314,15 +6408,25 @@ object GUIForm: TGUIForm
end
object miTools: TMenuItem
Caption = 'Tools'
OnClick = miToolsClick
object miToolsTracker: TMenuItem
Caption = 'microTracker'
OnClick = miToolsTrackerClick
end
object miToolsWebDebugger: TMenuItem
Caption = 'Web Debugger'
ShortCut = 24642
OnClick = miToolsWebDebuggerClick
end
end
object miHelp: TMenuItem
Caption = 'Help'
object miMMHelp: TMenuItem
Caption = 'microM8 Help'
ShortCut = 24648
OnClick = miMMHelpClick
end
end
end
object ToolbarIcons: TImageList
Height = 32
@ -6331,7 +6435,7 @@ object GUIForm: TGUIForm
left = 96
top = 48
Bitmap = {
4C691D0000002000000020000000CA9BCA00B16DB100B16DB100B16DB100B16D
4C691E0000002000000020000000CA9BCA00B16DB100B16DB100B16DB100B16D
B100B16DB100B16DB100B16DB100B16DB100B16DB100B16DB100AD72BB0E8C68
D54C6E5CEA805A52F69F5353FFB15353FFB15A52F69F6E5CEA808C68D54CAD72
BB0EB16DB100B16DB100FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
@ -10043,7 +10147,135 @@ object GUIForm: TGUIForm
ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED002D99B33C28C6
ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6
ED002B9EBB3528C6ED00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0070107137660068DD660068F76600
68F7660068F7660068F7660068F7660068F7660068F7660068F7660068D06600
68226600680066006800660068006600680066006800660068006600681A6600
68C9660068F7660068F7660068F7660068F7660068F7660068F7660068F76600
68F7660068E266006842FFFFFF00FFFFFF00701071CD660068FF660068FF6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
6891660068006600680066006800660068006600680066006800660068816600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
68FF660068FF660068DDFFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
6871660068006600680066006800660068006600680066006800660068616600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068BD6600688E6600688E6600688E660068686600
6802660068006600680066006800660068006600680066006800660068016600
68616600688E6600688E6600688E660068B6660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068EF660068346600680066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
680066006800660068006600682A660068E8660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068FF660068EE6600683466006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
6800660068006600682A660068E8660068FF660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68C6660068E8660068FF660068FF660068FF660068EE66006834660068006600
6800660068006600680066006800660068006600680066006800660068006600
68006600682A660068E8660068FF660068FF660068FF660068EE660068BF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68A26600682A660068E8660068FF660068FF660068FF660068EE660068346600
6800660068006600680066006800660068006600680066006800660068006600
682A660068E8660068FF660068FF660068FF660068EE66006834660068926600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68A1660068006600682A660068E8660068FF660068FF660068FF660068EE6600
68346600680066006800660068006600680066006800660068006600682A6600
68E8660068FF660068FF660068FF660068EE6600683466006800660068916600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68A266006800660068006600682A660068E8660068FF660068FF660068FF6600
68EE66006825660068006600680066006800660068006600681C660068E86600
68FF660068FF660068FF660068EE660068346600680066006800660068926600
68FF660068FF660068F4FFFFFF00FFFFFF00701071BE660068FF660068FF6600
687D6600680066006800660068006600682A660068E8660068FF660068FF6600
68FF660068776600680066006800660068006600680066006867660068FF6600
68FF660068FF660068EE660068346600680066006800660068006600686D6600
68FF660068FF660068CEFFFFFF00FFFFFF007010711C660068906600687C6600
6807660068006600680066006800660068006600682A660068E8660068FF6600
68F9660068346600680066006800660068006600680066006828660068F56600
68FF660068EE660068348C408E008C408E008C408E008C408E008C408E038C40
8E768C408E948C408E23FFFFFF00FFFFFF007010710066006800660068006600
68006600680066006800660068006600680066006800660068206600687B6600
683A660068006600680066006800660068006600680066006800660068326600
687C6600682666006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600
6800660068006600680066006800660068006600680066006803660068336600
680E6600680066006800660068006600680066006800660068006600680C6600
68346600680566006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00701071036600684C660068386600
6800660068006600680066006800660068006600680C660068C0660068FF6600
68ED6600682F6600680066006800660068006600680066006825660068E76600
68FF660068CA66006811BC90BD00BC90BD00BC90BD00BC90BD00BC90BD00BC90
BD32BC90BD4FBC90BD06FFFFFF00FFFFFF007010719A660068FF660068FF6600
68596600680066006800660068006600680C660068C2660068FF660068FF6600
68FF6600688D660068006600680066006800660068006600687D660068FF6600
68FF660068FF660068CC660068116600680066006800660068006600684A6600
68FE660068FF660068AAFFFFFF00FFFFFF00701071E2660068FF660068FF6600
689F66006800660068006600680C660068C2660068FF660068FF660068FF6600
68FE6600684B660068006600680066006800660068006600683D660068FC6600
68FF660068FF660068FF660068CC6600681166006800660068006600688F6600
68FF660068FF660068F2FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68A1660068006600680C660068C2660068FF660068FF660068FF660068FE7B24
7D67D9C0DA00D9C0DA00D9C0DA00D9C0DA00D9C0DA00D9C0DA00833084596600
68FC660068FF660068FF660068FF660068CC6600681166006800660068916600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68A16600680C660068C2660068FF660068FF660068FF660068FE660068678330
8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600
6859660068FC660068FF660068FF660068FF660068CC66006811660068916600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68AD660068C2660068FF660068FF660068FF660068FE66006867660068008330
8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600
680066006859660068FC660068FF660068FF660068FF660068CC660068A36600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068FF660068FE6600686766006800660068008330
8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600
68006600680066006859660068FC660068FF660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068FE660068676600680066006800660068008330
8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600
6800660068006600680066006859660068FC660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068BD660068606600686066006860660068428330
8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600
683D660068606600686066006860660068B3660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF8330
846DFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E5E6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071DE660068FF660068FF6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF8330
84ACFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E9C6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
68FF660068FF660068EEFFFFFF00FFFFFF0070107157660068F5660068FF6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068F78330
8448FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E3C6600
68F3660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
68FF660068F866006865FFFFFF00FFFFFF00E5D3E500E3D0E30FE3D0E325E3D0
E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E30FE8D9
E800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00EADCEA00E3D0
E30DE3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0
E325E3D0E312E3D0E300FFFFFF00
}
end
object DiskMenu: TPopupMenu
@ -10164,4 +10396,42 @@ object GUIForm: TGUIForm
left = 24
top = 216
end
object RecordingMenu: TPopupMenu
Images = ToolbarIcons
ImagesWidth = 32
left = 96
top = 216
object miStartDiskRec: TMenuItem
Caption = 'Start Disk Recording'
ImageIndex = 10
SubMenuImages = ToolbarIcons
OnClick = miRECStartFileClick
end
object miStartLiveRewindRecord: TMenuItem
Caption = 'Enable Live Rewind'
ImageIndex = 11
SubMenuImages = ToolbarIcons
OnClick = miRECLiveRewindClick
end
end
object ProfileMenu: TPopupMenu
left = 168
top = 216
object miPMApple2eEnh: TMenuItem
Caption = 'Apple //e Enhanced'
OnClick = miPRFIIeEnhancedClick
end
object miPMApple2eEnhCPM: TMenuItem
Caption = 'Apple //e Enhanced (Softcard)'
OnClick = miPRFIIeEnhancedSoftcardClick
end
object miPMApple2e: TMenuItem
Caption = 'Apple //e'
OnClick = miPRFIIeClick
end
object miPMApple2plus: TMenuItem
Caption = 'Apple ][+'
OnClick = miPRFIIplusClick
end
end
end

View File

@ -24,6 +24,16 @@ type
MenuItem14: TMenuItem;
MenuItem17: TMenuItem;
MenuItem18: TMenuItem;
miVideoScreenshot: TMenuItem;
N10: TMenuItem;
miPMApple2plus: TMenuItem;
miPMApple2e: TMenuItem;
miPMApple2eEnhCPM: TMenuItem;
miPMApple2eEnh: TMenuItem;
miStartLiveRewindRecord: TMenuItem;
miStartDiskRec: TMenuItem;
miMMHelp: TMenuItem;
miHelp: TMenuItem;
miVM8: TMenuItem;
miVM7: TMenuItem;
miVM6: TMenuItem;
@ -66,6 +76,8 @@ type
Image1: TImage;
odFreezeFiles: TOpenDialog;
pnlContainer: TPanel;
ProfileMenu: TPopupMenu;
RecordingMenu: TPopupMenu;
sdFreezeFiles: TSaveDialog;
SideImages: TImageList;
miWarp400: TMenuItem;
@ -174,6 +186,7 @@ type
sidecarPanel: TPanel;
FSTimer: TTimer;
tbVolDown: TToolButton;
ToolButton1: TToolButton;
ToolButton10: TToolButton;
tbJoystickAxisSwitch: TToolButton;
tbCapsMode: TToolButton;
@ -184,8 +197,9 @@ type
tbSpeedUp: TToolButton;
ToolButton18: TToolButton;
tbVolUp: TToolButton;
tbFullscreen: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
tbRECState: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
@ -368,6 +382,7 @@ type
procedure miJSAxisSwapClick(Sender: TObject);
procedure miJSXRevClick(Sender: TObject);
procedure miJSYRevClick(Sender: TObject);
procedure miMMHelpClick(Sender: TObject);
procedure miMonoDotsClick(Sender: TObject);
procedure miMonoRasterClick(Sender: TObject);
procedure miMonoVoxelsClick(Sender: TObject);
@ -409,17 +424,20 @@ type
procedure miSVOL000Click(Sender: TObject);
procedure miTintModeClick(Sender: TObject);
procedure miTMNoneClick(Sender: TObject);
procedure miToolsClick(Sender: TObject);
procedure miToolsTrackerClick(Sender: TObject);
procedure miToolsWebDebuggerClick(Sender: TObject);
procedure miVCRClick(Sender: TObject);
procedure miVD1Click(Sender: TObject);
procedure miVDClick(Sender: TObject);
procedure miVideoScreenshotClick(Sender: TObject);
procedure miVM1Click(Sender: TObject);
procedure miVMClick(Sender: TObject);
procedure miWarp25Click(Sender: TObject);
procedure MouseTimerTimer(Sender: TObject);
procedure sidecarPanelResize(Sender: TObject);
procedure tbCapsModeClick(Sender: TObject);
procedure tbFullscreenClick(Sender: TObject);
procedure tbJoystickAxisSwitchClick(Sender: TObject);
procedure tbRMClick(Sender: TObject);
procedure tbRMColorClick(Sender: TObject);
@ -467,6 +485,7 @@ type
procedure UpdateWarpSlider;
procedure UpdateAllCaps;
procedure UpdateScanlines;
procedure UpdateRecordState;
function IsMouseBtnDown(const AMouseBtn: TMouseBtnType): Boolean;
function IsMouseBtnDown: Boolean;
private
@ -564,7 +583,7 @@ begin
RepaintWindow;
if GetTitleOfActiveWindow <> 'microM8' then
HideM8;
StatusBar1.SimpleText := GetTitleOfActiveWindow;
//StatusBar1.SimpleText := GetTitleOfActiveWindow;
//Memo1.Lines.Add('app is deactivating');
end;
@ -609,7 +628,7 @@ begin
if (y >= 0) and (y < sideCarPanel.Height) then
begin
bi := y div Round(sideCarPanel.Height / 5);
StatusBar1.SimpleText := IntToStr(bi);
//StatusBar1.SimpleText := IntToStr(bi);
Image1.PopupMenu := nil;
case bi of
0: begin
@ -670,7 +689,16 @@ begin
end;
4: begin
SimpleGet(baseUrl + '/api/control/system/reboot');
if Button = mbRight then
begin
ProfileMenu.PopUp(Mouse.CursorPos.X, Mouse.CursorPos.Y);
end
else
begin
SimpleGet(baseUrl + '/api/control/system/reboot');
end;
end;
end;
@ -800,7 +828,7 @@ var
begin
// DHGR Enhanced menu
value := GetConfig('video/init.video.dhgrhighbit');
StatusBar1.SimpleText := value;
//.SimpleText := value;
if value <> '' then
begin
case value of
@ -906,7 +934,7 @@ var
begin
// GR Render Mode menu
value := GetConfig('video/init.video.grmode');
StatusBar1.SimpleText := value;
// StatusBar1.SimpleText := value;
if value <> '' then
begin
case value of
@ -978,7 +1006,7 @@ begin
MM_MOUSE_OFF = 4
}
value := GetConfig('input/init.mouse');
StatusBar1.SimpleText := value;
//StatusBar1.SimpleText := value;
if value <> '' then
begin
case value of
@ -1045,6 +1073,11 @@ begin
UpdateConfig( 'input/init.joystick.reversey', '1', true );
end;
procedure TGUIForm.miMMHelpClick(Sender: TObject);
begin
SimpleGet(baseUrl + '/api/control/system/help');
end;
procedure TGUIForm.miMonoDotsClick(Sender: TObject);
begin
UpdateConfig( 'video/init.video.hgrmode', '3', true );
@ -1119,7 +1152,7 @@ end;
procedure TGUIForm.miPRFIIplusClick(Sender: TObject);
begin
SimpleGet( baseUrl+'/api/control/system/profile/set/apple2plus' );
SimpleGet( baseUrl+'/api/control/system/profile/set/apple2-plus' );
end;
procedure TGUIForm.miPrinterPDFClick(Sender: TObject);
@ -1246,7 +1279,7 @@ var
begin
// SHR Render Mode menu
value := GetConfig('video/init.video.scanline');
StatusBar1.SimpleText := value;
//StatusBar1.SimpleText := value;
if value <> '' then
begin
case value of
@ -1296,7 +1329,7 @@ var
begin
// SHR Render Mode menu
value := GetConfig('video/init.video.shrmode');
StatusBar1.SimpleText := value;
//StatusBar1.SimpleText := value;
if value <> '' then
begin
case value of
@ -1468,6 +1501,11 @@ begin
UpdateTintMode;
end;
procedure TGUIForm.miToolsClick(Sender: TObject);
begin
end;
procedure TGUIForm.miToolsTrackerClick(Sender: TObject);
begin
LaunchCommand( 'fp', '/local', '@music.edit{}' );
@ -1510,6 +1548,17 @@ begin
end;
end;
procedure TGUIForm.miVideoScreenshotClick(Sender: TObject);
var
s: string;
begin
s := SimpleGet(baseUrl+'/api/control/window/screenshot');
if s <> '' then
StatusBar1.SimpleText := 'Screenshot saved: ' + s;
SendKey( $e092, $e092, 1, 0 );
end;
procedure TGUIForm.miVM1Click(Sender: TObject);
begin
SimpleGet(baseUrl+'/api/control/vm/'+TMenuItem(sender).Caption);
@ -1571,6 +1620,12 @@ begin
UpdateAllCaps;
end;
procedure TGUIForm.tbFullscreenClick(Sender: TObject);
begin
UpdateConfig('video/current.fullscreen', '1', false);
isFS := true;
end;
procedure TGUIForm.UpdateAllCaps;
begin
case GetConfig( 'input/init.uppercase' ) of
@ -1731,6 +1786,24 @@ begin
SimpleGet(baseUrl+'/api/control/pause');
end;
procedure TGUIForm.UpdateRecordState;
begin
case SimpleGet(baseUrl+'/api/control/recorder' ) of
'0': begin
tbRECState.ImageIndex := 9;
tbRECState.Caption := 'Start Recording';
end;
'1': begin
tbRECState.ImageIndex := 11;
tbRECState.Caption := 'Live Rewind Active';
end;
'2': begin
tbRECState.ImageIndex := 10;
tbRECState.Caption := 'Disk Recording Active';
end;
end;
end;
procedure TGUIForm.ToolTimerTimer(Sender: TObject);
begin
UpdateRenderMode;
@ -1741,6 +1814,7 @@ begin
UpdateWarpSlider;
UpdateAllCaps;
UpdateScanlines;
UpdateRecordState;
end;
procedure TGUIForm.tbMasterVolumeChange(Sender: TObject);
@ -1839,7 +1913,7 @@ begin
if S.Size > 0 then
begin
filename := GetUserDir + PathSeparator + 'microm8scrn.png';
StatusBar1.SimpleText:='Got '+IntToStr(S.Size)+' bytes of PNG data';
//StatusBar1.SimpleText:='Got '+IntToStr(S.Size)+' bytes of PNG data';
S.SaveToFile(filename);
backdrop.Picture.LoadFromFile(filename);
S.Free;
@ -1880,7 +1954,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/window/position',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=S;
//self.StatusBar1.SimpleText:=S;
Respo.Destroy;
end;
@ -1894,7 +1968,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/system/launch',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=S;
//self.StatusBar1.SimpleText:=S;
Respo.Destroy;
end;
@ -1910,7 +1984,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/system/launch',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=S;
//self.StatusBar1.SimpleText:=S;
Respo.Destroy;
end;
@ -1924,7 +1998,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/system/launch',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=S;
//self.StatusBar1.SimpleText:=S;
Respo.Destroy;
end;
@ -1939,7 +2013,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/input/mouseevent',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=S;
//self.StatusBar1.SimpleText:=S;
Respo.Destroy;
end;
@ -1994,7 +2068,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/input/keyevent',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=S;
//self.StatusBar1.SimpleText:=S;
Respo.Destroy;
end;
@ -2013,7 +2087,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/hardware/disk/insert',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=json;
//self.StatusBar1.SimpleText:=json;
Respo.Destroy;
end;
@ -2033,7 +2107,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/settings/update',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=json;
//self.StatusBar1.SimpleText:=json;
Respo.Destroy;
end;
@ -2048,7 +2122,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/settings/get',json,Respo);
Result := Respo.DataString;
self.StatusBar1.SimpleText:=json;
//self.StatusBar1.SimpleText:=json;
Respo.Destroy;
end;
@ -2069,7 +2143,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/system/freeze/save',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=json;
//self.StatusBar1.SimpleText:=json;
Respo.Destroy;
end;
@ -2087,7 +2161,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/system/freeze/restore',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=json;
//self.StatusBar1.SimpleText:=json;
Respo.Destroy;
end;
@ -2095,14 +2169,14 @@ procedure TGUIForm.tbDisk1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
DiskMenu.Tag := TToolButton(Sender).Tag;
StatusBar1.SimpleText := 'Disk 1';
//StatusBar1.SimpleText := 'Disk 1';
end;
procedure TGUIForm.tbDisk2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
DiskMenu.Tag := TToolButton(Sender).Tag;
StatusBar1.SimpleText := 'Disk 2';
//StatusBar1.SimpleText := 'Disk 2';
end;
procedure TGUIForm.ToolButton5Click(Sender: TObject);
@ -2185,8 +2259,10 @@ begin
if GetTitleOfActiveWindow = 'microM8' then
begin
{$IFNDEF WINDOWS}
if IsMouseBtnDown then
exit;
{$ENDIF}
//Application.Restore;
Application.BringToFront;
@ -2209,10 +2285,22 @@ begin
inPopup := true;
end;
{$IFDEF WINDOWS}
const
EXENAME: string = 'microm8.exe';
{$ELSE}
const
EXENAME: string = 'microm8';
{$ENDIF}
procedure TGUIForm.FormCreate(Sender: TObject);
begin
self.httpc := TFPHttpClient.Create(Nil);
//ShowMessage( ExtractFilePath(Application.ExeName) + EXENAME );
MicroM8Process.Executable := ExtractFilePath(Application.ExeName) + EXENAME;
//if SimpleGet( baseUrl+'/api/control/health' ) <> 'ok' then
//begin
MicroM8Process.Active := true;
@ -2324,7 +2412,9 @@ begin
end;
VK_A..VK_Z:
begin
if ssShift in Shift then
if (ssCtrl in Shift) and (ssShift in Shift) then
Result := Integer(Key)
else if ssShift in Shift then
Result := Integer(Key)
else if ssCtrl in Shift then
begin
@ -2369,7 +2459,7 @@ end;
procedure TGUIForm.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
SendKey( MapKeyCode(Key, Shift), 0, 0, MapShiftState(Key, Shift) );
StatusBar1.SimpleText := 'keycode ' + IntToStr(Key);
//StatusBar1.SimpleText := 'keycode ' + IntToStr(Key);
end;
procedure TGUIForm.FormResize(Sender: TObject);
@ -2439,7 +2529,7 @@ var
begin
// HGR Render Mode menu
value := GetConfig('video/init.video.hgrmode');
StatusBar1.SimpleText := value;
//StatusBar1.SimpleText := value;
if value <> '' then
begin
case value of
@ -2459,7 +2549,7 @@ var
begin
// DHGR Render Mode menu
value := GetConfig('video/init.video.dhgrmode');
StatusBar1.SimpleText := value;
//StatusBar1.SimpleText := value;
if value <> '' then
begin
case value of

View File

@ -4,7 +4,7 @@
<PathDelim Value="\"/>
<Version Value="11"/>
<BuildModes Active="Default"/>
<Units Count="4">
<Units Count="5">
<Unit0>
<Filename Value="poc.lpr"/>
<IsPartOfProject Value="True"/>
@ -21,8 +21,8 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<TopLine Value="1512"/>
<CursorPos X="3" Y="1514"/>
<TopLine Value="1745"/>
<CursorPos X="51" Y="1772"/>
<UsageCount Value="323"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
@ -43,129 +43,137 @@
<EditorIndex Value="-1"/>
<TopLine Value="576"/>
<CursorPos X="49" Y="591"/>
<UsageCount Value="115"/>
<UsageCount Value="114"/>
</Unit3>
<Unit4>
<Filename Value="C:\lazarus\components\lazutils\utf8process.pp"/>
<UnitName Value="UTF8Process"/>
<EditorIndex Value="-1"/>
<TopLine Value="636"/>
<CursorPos Y="654"/>
<UsageCount Value="10"/>
</Unit4>
</Units>
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="main.pas"/>
<Caret Line="1291" Column="18" TopLine="1260"/>
<Caret Line="2463" Column="3" TopLine="2435"/>
</Position1>
<Position2>
<Filename Value="main.pas"/>
<Caret Line="1371" Column="16" TopLine="1340"/>
<Caret Line="2464" Column="3" TopLine="2436"/>
</Position2>
<Position3>
<Filename Value="main.pas"/>
<Caret Line="1439" Column="12" TopLine="1408"/>
<Caret Line="2465" Column="3" TopLine="2437"/>
</Position3>
<Position4>
<Filename Value="main.pas"/>
<Caret Line="1717" Column="17" TopLine="1686"/>
<Caret Line="2466" Column="3" TopLine="2438"/>
</Position4>
<Position5>
<Filename Value="main.pas"/>
<Caret Line="1725" Column="17" TopLine="1694"/>
<Caret Line="2473" Column="3" TopLine="2445"/>
</Position5>
<Position6>
<Filename Value="main.pas"/>
<Caret Line="1740" Column="17" TopLine="1709"/>
<Caret Line="1514" Column="67" TopLine="1512"/>
</Position6>
<Position7>
<Filename Value="main.pas"/>
<Caret Line="1751" Column="17" TopLine="1720"/>
<Caret Line="1515" Column="3" TopLine="1513"/>
</Position7>
<Position8>
<Filename Value="main.pas"/>
<Caret Line="1859" Column="28" TopLine="1828"/>
<Caret Line="1528" Column="32" TopLine="1513"/>
</Position8>
<Position9>
<Filename Value="main.pas"/>
<Caret Line="1891" Column="6" TopLine="1865"/>
<Caret Line="1529" Column="32" TopLine="1514"/>
</Position9>
<Position10>
<Filename Value="main.pas"/>
<Caret Line="544" Column="10" TopLine="512"/>
<Caret Line="1531" Column="32" TopLine="1516"/>
</Position10>
<Position11>
<Filename Value="main.pas"/>
<Caret Line="523" Column="22" TopLine="502"/>
<Caret Line="1579" Column="35" TopLine="1577"/>
</Position11>
<Position12>
<Filename Value="main.pas"/>
<Caret Line="504" Column="9" TopLine="495"/>
<Caret Line="2440" TopLine="2437"/>
</Position12>
<Position13>
<Filename Value="main.pas"/>
<Caret Line="502" Column="44" TopLine="485"/>
<Caret Line="1580" Column="22" TopLine="1577"/>
</Position13>
<Position14>
<Filename Value="main.pas"/>
<Caret Line="507" Column="29" TopLine="484"/>
<Caret Line="2242" Column="62" TopLine="2215"/>
</Position14>
<Position15>
<Filename Value="main.pas"/>
<Caret Line="519" Column="19" TopLine="497"/>
<Caret Line="2240" Column="57" TopLine="2221"/>
</Position15>
<Position16>
<Filename Value="main.pas"/>
<Caret Line="457" Column="29" TopLine="448"/>
<Caret Line="1477" Column="3" TopLine="1475"/>
</Position16>
<Position17>
<Filename Value="main.pas"/>
<Caret Line="17"/>
<Caret Line="1478" Column="3" TopLine="1476"/>
</Position17>
<Position18>
<Filename Value="main.pas"/>
<Caret Line="521" Column="11" TopLine="498"/>
<Caret Line="1485" Column="3" TopLine="1483"/>
</Position18>
<Position19>
<Filename Value="main.pas"/>
<Caret Line="1596" Column="30" TopLine="1582"/>
<Caret Line="1057" Column="8" TopLine="1055"/>
</Position19>
<Position20>
<Filename Value="main.pas"/>
<Caret Line="2458" Column="3" TopLine="2430"/>
<Caret Line="902" Column="5" TopLine="900"/>
</Position20>
<Position21>
<Filename Value="main.pas"/>
<Caret Line="2459" Column="3" TopLine="2431"/>
<Caret Line="1062" Column="28" TopLine="1055"/>
</Position21>
<Position22>
<Filename Value="main.pas"/>
<Caret Line="2460" Column="3" TopLine="2432"/>
<Caret Line="2256" Column="14" TopLine="2244"/>
</Position22>
<Position23>
<Filename Value="main.pas"/>
<Caret Line="2461" Column="3" TopLine="2433"/>
<Caret Line="2396" Column="47" TopLine="2393"/>
</Position23>
<Position24>
<Filename Value="main.pas"/>
<Caret Line="2462" Column="3" TopLine="2434"/>
<Caret Line="2390" Column="17" TopLine="2378"/>
</Position24>
<Position25>
<Filename Value="main.pas"/>
<Caret Line="2463" Column="3" TopLine="2435"/>
<Caret Line="2406" Column="17" TopLine="2378"/>
</Position25>
<Position26>
<Filename Value="main.pas"/>
<Caret Line="2464" Column="3" TopLine="2436"/>
<Caret Line="2363" Column="37" TopLine="2349"/>
</Position26>
<Position27>
<Filename Value="main.pas"/>
<Caret Line="2465" Column="3" TopLine="2437"/>
<Caret Line="2364" Column="37" TopLine="2350"/>
</Position27>
<Position28>
<Filename Value="main.pas"/>
<Caret Line="2466" Column="3" TopLine="2438"/>
<Caret Line="2365" Column="37" TopLine="2351"/>
</Position28>
<Position29>
<Filename Value="main.pas"/>
<Caret Line="2473" Column="3" TopLine="2445"/>
<Caret Line="2366" Column="37" TopLine="2352"/>
</Position29>
<Position30>
<Filename Value="main.pas"/>
<Caret Line="1514" Column="67" TopLine="1512"/>
<Caret Line="480" Column="15" TopLine="465"/>
</Position30>
</JumpHistory>
<RunParams>

View File

@ -1,13 +1,13 @@
object GUIForm: TGUIForm
Left = 2072
Height = 574
Top = 321
Width = 945
Left = 2260
Height = 668
Top = 311
Width = 1014
AlphaBlendValue = 128
Caption = 'microM8 GUI'
ClientHeight = 554
ClientWidth = 945
Constraints.MinWidth = 945
ClientHeight = 648
ClientWidth = 1014
Constraints.MinWidth = 1014
DoubleBuffered = False
Menu = MainMenu1
OnChangeBounds = FormChangeBounds
@ -28,15 +28,15 @@ object GUIForm: TGUIForm
object StatusBar1: TStatusBar
Left = 0
Height = 23
Top = 531
Width = 945
Top = 625
Width = 1014
Panels = <>
end
object ToolBar1: TToolBar
Left = 0
Height = 36
Top = 0
Width = 945
Width = 1014
ButtonHeight = 32
ButtonWidth = 32
Caption = 'ToolBar1'
@ -44,89 +44,123 @@ object GUIForm: TGUIForm
TabOrder = 1
object tbTintMode: TToolButton
Left = 1
Hint = 'Tint mode'
Top = 2
Caption = 'tbTintMode'
ImageIndex = 0
OnClick = tbTintModeClick
ParentShowHint = False
ShowHint = True
end
object tbRMVoxels: TToolButton
Tag = 1
Left = 549
Hint = 'Voxel Render'
Top = 2
Caption = 'Voxels'
Down = True
Grouped = True
ImageIndex = 4
OnClick = tbRMClick
ParentShowHint = False
PopupMenu = RecordingMenu
ShowHint = True
Style = tbsCheck
end
object tbRMDots: TToolButton
Left = 585
Hint = 'Dot Render'
Top = 2
Caption = 'Dots'
Grouped = True
ImageIndex = 5
OnClick = tbRMClick
ParentShowHint = False
ShowHint = True
Style = tbsCheck
end
object tbRMRaster: TToolButton
Tag = 2
Left = 621
Hint = 'Raster Render'
Top = 2
Caption = 'Raster'
Grouped = True
ImageIndex = 6
OnClick = tbRMClick
ParentShowHint = False
ShowHint = True
Style = tbsCheck
end
object tbRMColor: TToolButton
Left = 657
Hint = 'Toggle Color/Mono'
Top = 2
Caption = 'tbRMColor'
ImageIndex = 7
OnClick = tbRMColorClick
ParentShowHint = False
ShowHint = True
end
object ToolButton4: TToolButton
object tbRECState: TToolButton
Left = 725
Hint = 'Start Recording'
Top = 2
Caption = 'ToolButton4'
Caption = 'tbRECState'
DropdownMenu = RecordingMenu
ImageIndex = 9
OnClick = miRECStartFileClick
ParentShowHint = False
ShowHint = True
end
object ToolButton5: TToolButton
Left = 761
Hint = 'Rewind'
Top = 2
Caption = 'ToolButton5'
ImageIndex = 12
OnClick = miRECRewindClick
ParentShowHint = False
ShowHint = True
end
object ToolButton6: TToolButton
Left = 797
Hint = 'Forwards'
Top = 2
Caption = 'ToolButton6'
ImageIndex = 13
OnClick = miRECPlayClick
ParentShowHint = False
ShowHint = True
end
object ToolButton7: TToolButton
Left = 833
Hint = 'Resume'
Top = 2
Caption = 'ToolButton7'
ImageIndex = 14
OnClick = miRECResumeClick
ParentShowHint = False
ShowHint = True
end
object ToolButton8: TToolButton
Left = 869
Hint = 'Stop Recording'
Top = 2
Caption = 'ToolButton8'
ImageIndex = 15
OnClick = miRECStopClick
ParentShowHint = False
ShowHint = True
end
object ToolButton9: TToolButton
Left = 905
Hint = 'Pause'
Top = 2
Caption = 'ToolButton9'
ImageIndex = 16
OnClick = ToolButton9Click
ParentShowHint = False
ShowHint = True
end
object ToolButton10: TToolButton
Left = 693
@ -136,31 +170,43 @@ object GUIForm: TGUIForm
end
object tbJoystickAxisSwitch: TToolButton
Left = 37
Hint = 'Swap Joystick Axis'
Top = 2
Caption = 'tbJoystickAxisSwitch'
ImageIndex = 21
OnClick = tbJoystickAxisSwitchClick
ParentShowHint = False
ShowHint = True
end
object tbCapsMode: TToolButton
Left = 73
Hint = 'Toggle CAPS mode'
Top = 2
Caption = 'tbCapsMode'
ImageIndex = 17
OnClick = tbCapsModeClick
ParentShowHint = False
ShowHint = True
end
object tbScanlines: TToolButton
Left = 109
Hint = 'Toggle Interlacing'
Top = 2
Caption = 'tbScanlines'
ImageIndex = 19
OnClick = tbScanlinesClick
ParentShowHint = False
ShowHint = True
end
object tbWebDebugger: TToolButton
Left = 145
Hint = 'Web Debugger'
Top = 2
Caption = 'tbWebDebugger'
ImageIndex = 28
OnClick = miToolsWebDebuggerClick
ParentShowHint = False
ShowHint = True
end
object ToolButton15: TToolButton
Left = 181
@ -170,10 +216,13 @@ object GUIForm: TGUIForm
end
object tbVolDown: TToolButton
Left = 213
Hint = 'Volume Down'
Top = 2
Caption = 'tbVolDown'
ImageIndex = 23
OnClick = tbVolDownClick
ParentShowHint = False
ShowHint = True
end
object tbMasterVolume: TTrackBar
Left = 249
@ -182,17 +231,23 @@ object GUIForm: TGUIForm
Width = 64
OnChange = tbMasterVolumeChange
Position = 0
TickStyle = tsNone
ScalePos = trBottom
TabStop = False
TickMarks = tmBoth
TickStyle = tsManual
OnKeyDown = FormKeyDown
OnKeyUp = FormKeyUp
TabOrder = 0
end
object tbVolUp: TToolButton
Left = 313
Hint = 'Volume Up'
Top = 2
Caption = 'tbVolUp'
ImageIndex = 24
OnClick = tbVolUpClick
ParentShowHint = False
ShowHint = True
end
object ToolButton3: TToolButton
Left = 349
@ -202,10 +257,13 @@ object GUIForm: TGUIForm
end
object tbSpeedDown: TToolButton
Left = 381
Hint = 'CPU Speed Down'
Top = 2
Caption = 'tbSpeedDown'
ImageIndex = 25
OnClick = tbSpeedDownClick
ParentShowHint = False
ShowHint = True
end
object TrackBar2: TTrackBar
Left = 417
@ -215,16 +273,23 @@ object GUIForm: TGUIForm
Max = 4
OnChange = TrackBar2Change
Position = 0
ScalePos = trBottom
TabStop = False
TickMarks = tmBoth
TickStyle = tsManual
OnKeyDown = FormKeyDown
OnKeyUp = FormKeyUp
TabOrder = 1
end
object tbSpeedUp: TToolButton
Left = 481
Hint = 'CPU Speed Up'
Top = 2
Caption = 'tbSpeedUp'
ImageIndex = 26
OnClick = tbSpeedUpClick
ParentShowHint = False
ShowHint = True
end
object ToolButton18: TToolButton
Left = 517
@ -232,35 +297,51 @@ object GUIForm: TGUIForm
Caption = 'ToolButton18'
Enabled = False
end
object ToolButton1: TToolButton
Left = 941
Top = 2
Caption = 'ToolButton1'
Enabled = False
end
object tbFullscreen: TToolButton
Left = 973
Hint = 'Fullscreen'
Top = 2
Caption = 'tbFullscreen'
ImageIndex = 29
OnClick = tbFullscreenClick
ParentShowHint = False
ShowHint = True
end
end
object pnlContainer: TPanel
Left = 0
Height = 495
Height = 589
Top = 36
Width = 945
Width = 1014
Align = alClient
BevelOuter = bvNone
ClientHeight = 495
ClientWidth = 945
ClientHeight = 589
ClientWidth = 1014
Color = clAqua
ParentColor = False
TabOrder = 2
object sidecarPanel: TPanel
Left = 775
Height = 495
Left = 844
Height = 589
Top = 0
Width = 170
Align = alRight
BevelOuter = bvNone
Caption = 'sidecarPanel'
ClientHeight = 495
ClientHeight = 589
ClientWidth = 170
Color = clBlack
ParentColor = False
TabOrder = 0
object Image1: TImage
Left = 0
Height = 495
Height = 589
Top = 0
Width = 170
Align = alClient
@ -5353,13 +5434,13 @@ object GUIForm: TGUIForm
end
object embedPanel: TPanel
Left = 0
Height = 495
Height = 589
Top = 0
Width = 775
Width = 844
Align = alClient
BevelOuter = bvNone
ClientHeight = 495
ClientWidth = 775
ClientHeight = 589
ClientWidth = 844
Color = clBlack
Font.Color = clWhite
ParentColor = False
@ -5367,9 +5448,9 @@ object GUIForm: TGUIForm
TabOrder = 1
object backdrop: TImage
Left = 0
Height = 495
Height = 589
Top = 0
Width = 775
Width = 844
Align = alClient
OnClick = backdropClick
Stretch = True
@ -5422,6 +5503,58 @@ object GUIForm: TGUIForm
OnClick = miIntLOGOClick
end
end
object miVM: TMenuItem
Caption = 'VM'
OnClick = miVMClick
object miVM1: TMenuItem
Caption = '1'
RadioItem = True
ShortCut = 24625
OnClick = miVM1Click
end
object miVM2: TMenuItem
Caption = '2'
RadioItem = True
ShortCut = 24626
OnClick = miVM1Click
end
object miVM3: TMenuItem
Caption = '3'
RadioItem = True
ShortCut = 24627
OnClick = miVM1Click
end
object miVM4: TMenuItem
Caption = '4'
RadioItem = True
ShortCut = 24628
OnClick = miVM1Click
end
object miVM5: TMenuItem
Caption = '5'
RadioItem = True
ShortCut = 24629
OnClick = miVM1Click
end
object miVM6: TMenuItem
Caption = '6'
RadioItem = True
ShortCut = 24630
OnClick = miVM1Click
end
object miVM7: TMenuItem
Caption = '7'
RadioItem = True
ShortCut = 24631
OnClick = miVM1Click
end
object miVM8: TMenuItem
Caption = '8'
RadioItem = True
ShortCut = 24632
OnClick = miVM1Click
end
end
object N7: TMenuItem
Caption = '-'
end
@ -5799,6 +5932,14 @@ object GUIForm: TGUIForm
ShortCut = 32781
OnClick = MenuItem14Click
end
object N10: TMenuItem
Caption = '-'
end
object miVideoScreenshot: TMenuItem
Caption = 'Take Screenshot'
ShortCut = 24796
OnClick = miVideoScreenshotClick
end
end
object Input: TMenuItem
Caption = 'Input'
@ -6226,10 +6367,12 @@ object GUIForm: TGUIForm
end
object miRECRewind: TMenuItem
Caption = 'Rewind'
ShortCut = 24795
OnClick = miRECRewindClick
end
object miRECPlay: TMenuItem
Caption = 'Play'
ShortCut = 24797
OnClick = miRECPlayClick
end
object miRECResume: TMenuItem
@ -6265,15 +6408,25 @@ object GUIForm: TGUIForm
end
object miTools: TMenuItem
Caption = 'Tools'
OnClick = miToolsClick
object miToolsTracker: TMenuItem
Caption = 'microTracker'
OnClick = miToolsTrackerClick
end
object miToolsWebDebugger: TMenuItem
Caption = 'Web Debugger'
ShortCut = 24642
OnClick = miToolsWebDebuggerClick
end
end
object miHelp: TMenuItem
Caption = 'Help'
object miMMHelp: TMenuItem
Caption = 'microM8 Help'
ShortCut = 24648
OnClick = miMMHelpClick
end
end
end
object ToolbarIcons: TImageList
Height = 32
@ -6282,7 +6435,7 @@ object GUIForm: TGUIForm
left = 96
top = 48
Bitmap = {
4C691D0000002000000020000000CA9BCA00B16DB100B16DB100B16DB100B16D
4C691E0000002000000020000000CA9BCA00B16DB100B16DB100B16DB100B16D
B100B16DB100B16DB100B16DB100B16DB100B16DB100B16DB100AD72BB0E8C68
D54C6E5CEA805A52F69F5353FFB15353FFB15A52F69F6E5CEA808C68D54CAD72
BB0EB16DB100B16DB100FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
@ -9994,7 +10147,135 @@ object GUIForm: TGUIForm
ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED002D99B33C28C6
ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6
ED002B9EBB3528C6ED00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0070107137660068DD660068F76600
68F7660068F7660068F7660068F7660068F7660068F7660068F7660068D06600
68226600680066006800660068006600680066006800660068006600681A6600
68C9660068F7660068F7660068F7660068F7660068F7660068F7660068F76600
68F7660068E266006842FFFFFF00FFFFFF00701071CD660068FF660068FF6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
6891660068006600680066006800660068006600680066006800660068816600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
68FF660068FF660068DDFFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
6871660068006600680066006800660068006600680066006800660068616600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068BD6600688E6600688E6600688E660068686600
6802660068006600680066006800660068006600680066006800660068016600
68616600688E6600688E6600688E660068B6660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068EF660068346600680066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
680066006800660068006600682A660068E8660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068FF660068EE6600683466006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
6800660068006600682A660068E8660068FF660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68C6660068E8660068FF660068FF660068FF660068EE66006834660068006600
6800660068006600680066006800660068006600680066006800660068006600
68006600682A660068E8660068FF660068FF660068FF660068EE660068BF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68A26600682A660068E8660068FF660068FF660068FF660068EE660068346600
6800660068006600680066006800660068006600680066006800660068006600
682A660068E8660068FF660068FF660068FF660068EE66006834660068926600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68A1660068006600682A660068E8660068FF660068FF660068FF660068EE6600
68346600680066006800660068006600680066006800660068006600682A6600
68E8660068FF660068FF660068FF660068EE6600683466006800660068916600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68A266006800660068006600682A660068E8660068FF660068FF660068FF6600
68EE66006825660068006600680066006800660068006600681C660068E86600
68FF660068FF660068FF660068EE660068346600680066006800660068926600
68FF660068FF660068F4FFFFFF00FFFFFF00701071BE660068FF660068FF6600
687D6600680066006800660068006600682A660068E8660068FF660068FF6600
68FF660068776600680066006800660068006600680066006867660068FF6600
68FF660068FF660068EE660068346600680066006800660068006600686D6600
68FF660068FF660068CEFFFFFF00FFFFFF007010711C660068906600687C6600
6807660068006600680066006800660068006600682A660068E8660068FF6600
68F9660068346600680066006800660068006600680066006828660068F56600
68FF660068EE660068348C408E008C408E008C408E008C408E008C408E038C40
8E768C408E948C408E23FFFFFF00FFFFFF007010710066006800660068006600
68006600680066006800660068006600680066006800660068206600687B6600
683A660068006600680066006800660068006600680066006800660068326600
687C6600682666006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600
6800660068006600680066006800660068006600680066006803660068336600
680E6600680066006800660068006600680066006800660068006600680C6600
68346600680566006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00701071036600684C660068386600
6800660068006600680066006800660068006600680C660068C0660068FF6600
68ED6600682F6600680066006800660068006600680066006825660068E76600
68FF660068CA66006811BC90BD00BC90BD00BC90BD00BC90BD00BC90BD00BC90
BD32BC90BD4FBC90BD06FFFFFF00FFFFFF007010719A660068FF660068FF6600
68596600680066006800660068006600680C660068C2660068FF660068FF6600
68FF6600688D660068006600680066006800660068006600687D660068FF6600
68FF660068FF660068CC660068116600680066006800660068006600684A6600
68FE660068FF660068AAFFFFFF00FFFFFF00701071E2660068FF660068FF6600
689F66006800660068006600680C660068C2660068FF660068FF660068FF6600
68FE6600684B660068006600680066006800660068006600683D660068FC6600
68FF660068FF660068FF660068CC6600681166006800660068006600688F6600
68FF660068FF660068F2FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68A1660068006600680C660068C2660068FF660068FF660068FF660068FE7B24
7D67D9C0DA00D9C0DA00D9C0DA00D9C0DA00D9C0DA00D9C0DA00833084596600
68FC660068FF660068FF660068FF660068CC6600681166006800660068916600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68A16600680C660068C2660068FF660068FF660068FF660068FE660068678330
8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600
6859660068FC660068FF660068FF660068FF660068CC66006811660068916600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68AD660068C2660068FF660068FF660068FF660068FE66006867660068008330
8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600
680066006859660068FC660068FF660068FF660068FF660068CC660068A36600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068FF660068FE6600686766006800660068008330
8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600
68006600680066006859660068FC660068FF660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068FE660068676600680066006800660068008330
8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600
6800660068006600680066006859660068FC660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068BD660068606600686066006860660068428330
8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600
683D660068606600686066006860660068B3660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF8330
846DFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E5E6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071DE660068FF660068FF6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF8330
84ACFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E9C6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
68FF660068FF660068EEFFFFFF00FFFFFF0070107157660068F5660068FF6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068F78330
8448FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E3C6600
68F3660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
68FF660068F866006865FFFFFF00FFFFFF00E5D3E500E3D0E30FE3D0E325E3D0
E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E30FE8D9
E800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00EADCEA00E3D0
E30DE3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0
E325E3D0E312E3D0E300FFFFFF00
}
end
object DiskMenu: TPopupMenu
@ -10078,7 +10359,7 @@ object GUIForm: TGUIForm
end
object MicroM8Process: TAsyncProcess
Active = False
Executable = 'C:/Users/aag65/Projects/octalyzer/GoPath/src/paleotronic.com/octalyzer/microM8.exe'
Executable = '/home/april/Projects/octalyzer/GoPath/src/paleotronic.com/octalyzer/microM8'
Parameters.Strings = (
'-control-port'
'-disable-border'
@ -10115,4 +10396,42 @@ object GUIForm: TGUIForm
left = 24
top = 216
end
object RecordingMenu: TPopupMenu
Images = ToolbarIcons
ImagesWidth = 32
left = 96
top = 216
object miStartDiskRec: TMenuItem
Caption = 'Start Disk Recording'
ImageIndex = 10
SubMenuImages = ToolbarIcons
OnClick = miRECStartFileClick
end
object miStartLiveRewindRecord: TMenuItem
Caption = 'Enable Live Rewind'
ImageIndex = 11
SubMenuImages = ToolbarIcons
OnClick = miRECLiveRewindClick
end
end
object ProfileMenu: TPopupMenu
left = 168
top = 216
object miPMApple2eEnh: TMenuItem
Caption = 'Apple //e Enhanced'
OnClick = miPRFIIeEnhancedClick
end
object miPMApple2eEnhCPM: TMenuItem
Caption = 'Apple //e Enhanced (Softcard)'
OnClick = miPRFIIeEnhancedSoftcardClick
end
object miPMApple2e: TMenuItem
Caption = 'Apple //e'
OnClick = miPRFIIeClick
end
object miPMApple2plus: TMenuItem
Caption = 'Apple ][+'
OnClick = miPRFIIplusClick
end
end
end

Binary file not shown.

Binary file not shown.

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<Compiler Value="C:\lazarus\fpc\3.0.4\bin\x86_64-win64\fpc.exe" Date="1313015448"/>
<Params Value=" -MObjFPC -Scghi -O1 -g -gl -WG -l -vewnhibq -FiC:\Users\aag65\Documents\poc\lib\x86_64-win64 -FuC:\Users\aag65\AppData\Local\lazarus\onlinepackagemanager\packages\Indy10\lib\x86_64-win64 -FuC:\lazarus\components\ideintf\units\x86_64-win64\win32 -FuC:\lazarus\components\opengl\lib\x86_64-win64\win32 -FuC:\lazarus\components\lazcontrols\lib\x86_64-win64\win32 -FuC:\lazarus\lcl\units\x86_64-win64\win32 -FuC:\lazarus\lcl\units\x86_64-win64 -FuC:\lazarus\components\lazutils\lib\x86_64-win64 -FuC:\lazarus\packager\units\x86_64-win64 -FuC:\Users\aag65\Documents\poc\ -FUC:\Users\aag65\Documents\poc\lib\x86_64-win64\ -FEC:\Users\aag65\Documents\poc\ -oC:\Users\aag65\Documents\poc\poc.exe -dLCL -dLCLwin32 poc.lpr"/>
<Params Value=" -MObjFPC -Scghi -O1 -g -gl -WG -l -vewnhibq -FiC:\Users\aag65\Documents\poc\lib\x86_64-win64 -FuC:\lazarus\components\opengl\lib\x86_64-win64\win32 -FuC:\lazarus\lcl\units\x86_64-win64\win32 -FuC:\lazarus\lcl\units\x86_64-win64 -FuC:\lazarus\components\lazutils\lib\x86_64-win64 -FuC:\lazarus\packager\units\x86_64-win64 -FuC:\Users\aag65\Documents\poc\ -FUC:\Users\aag65\Documents\poc\lib\x86_64-win64\ -FEC:\Users\aag65\Documents\poc\ -oC:\Users\aag65\Documents\poc\poc.exe -dLCL -dLCLwin32 poc.lpr"/>
</CONFIG>

Binary file not shown.

Binary file not shown.

326
main.lfm
View File

@ -1,13 +1,13 @@
object GUIForm: TGUIForm
Left = 2270
Height = 574
Top = 247
Width = 945
Left = 2260
Height = 668
Top = 311
Width = 1014
AlphaBlendValue = 128
Caption = 'microM8 GUI'
ClientHeight = 549
ClientWidth = 945
Constraints.MinWidth = 945
ClientHeight = 648
ClientWidth = 1014
Constraints.MinWidth = 1014
DoubleBuffered = False
Menu = MainMenu1
OnChangeBounds = FormChangeBounds
@ -27,16 +27,16 @@ object GUIForm: TGUIForm
LCLVersion = '2.0.0.4'
object StatusBar1: TStatusBar
Left = 0
Height = 19
Top = 530
Width = 945
Height = 23
Top = 625
Width = 1014
Panels = <>
end
object ToolBar1: TToolBar
Left = 0
Height = 36
Top = 0
Width = 945
Width = 1014
ButtonHeight = 32
ButtonWidth = 32
Caption = 'ToolBar1'
@ -44,89 +44,123 @@ object GUIForm: TGUIForm
TabOrder = 1
object tbTintMode: TToolButton
Left = 1
Hint = 'Tint mode'
Top = 2
Caption = 'tbTintMode'
ImageIndex = 0
OnClick = tbTintModeClick
ParentShowHint = False
ShowHint = True
end
object tbRMVoxels: TToolButton
Tag = 1
Left = 549
Hint = 'Voxel Render'
Top = 2
Caption = 'Voxels'
Down = True
Grouped = True
ImageIndex = 4
OnClick = tbRMClick
ParentShowHint = False
PopupMenu = RecordingMenu
ShowHint = True
Style = tbsCheck
end
object tbRMDots: TToolButton
Left = 585
Hint = 'Dot Render'
Top = 2
Caption = 'Dots'
Grouped = True
ImageIndex = 5
OnClick = tbRMClick
ParentShowHint = False
ShowHint = True
Style = tbsCheck
end
object tbRMRaster: TToolButton
Tag = 2
Left = 621
Hint = 'Raster Render'
Top = 2
Caption = 'Raster'
Grouped = True
ImageIndex = 6
OnClick = tbRMClick
ParentShowHint = False
ShowHint = True
Style = tbsCheck
end
object tbRMColor: TToolButton
Left = 657
Hint = 'Toggle Color/Mono'
Top = 2
Caption = 'tbRMColor'
ImageIndex = 7
OnClick = tbRMColorClick
ParentShowHint = False
ShowHint = True
end
object ToolButton4: TToolButton
object tbRECState: TToolButton
Left = 725
Hint = 'Start Recording'
Top = 2
Caption = 'ToolButton4'
Caption = 'tbRECState'
DropdownMenu = RecordingMenu
ImageIndex = 9
OnClick = miRECStartFileClick
ParentShowHint = False
ShowHint = True
end
object ToolButton5: TToolButton
Left = 761
Hint = 'Rewind'
Top = 2
Caption = 'ToolButton5'
ImageIndex = 12
OnClick = miRECRewindClick
ParentShowHint = False
ShowHint = True
end
object ToolButton6: TToolButton
Left = 797
Hint = 'Forwards'
Top = 2
Caption = 'ToolButton6'
ImageIndex = 13
OnClick = miRECPlayClick
ParentShowHint = False
ShowHint = True
end
object ToolButton7: TToolButton
Left = 833
Hint = 'Resume'
Top = 2
Caption = 'ToolButton7'
ImageIndex = 14
OnClick = miRECResumeClick
ParentShowHint = False
ShowHint = True
end
object ToolButton8: TToolButton
Left = 869
Hint = 'Stop Recording'
Top = 2
Caption = 'ToolButton8'
ImageIndex = 15
OnClick = miRECStopClick
ParentShowHint = False
ShowHint = True
end
object ToolButton9: TToolButton
Left = 905
Hint = 'Pause'
Top = 2
Caption = 'ToolButton9'
ImageIndex = 16
OnClick = ToolButton9Click
ParentShowHint = False
ShowHint = True
end
object ToolButton10: TToolButton
Left = 693
@ -136,31 +170,43 @@ object GUIForm: TGUIForm
end
object tbJoystickAxisSwitch: TToolButton
Left = 37
Hint = 'Swap Joystick Axis'
Top = 2
Caption = 'tbJoystickAxisSwitch'
ImageIndex = 21
OnClick = tbJoystickAxisSwitchClick
ParentShowHint = False
ShowHint = True
end
object tbCapsMode: TToolButton
Left = 73
Hint = 'Toggle CAPS mode'
Top = 2
Caption = 'tbCapsMode'
ImageIndex = 17
OnClick = tbCapsModeClick
ParentShowHint = False
ShowHint = True
end
object tbScanlines: TToolButton
Left = 109
Hint = 'Toggle Interlacing'
Top = 2
Caption = 'tbScanlines'
ImageIndex = 19
OnClick = tbScanlinesClick
ParentShowHint = False
ShowHint = True
end
object tbWebDebugger: TToolButton
Left = 145
Hint = 'Web Debugger'
Top = 2
Caption = 'tbWebDebugger'
ImageIndex = 28
OnClick = miToolsWebDebuggerClick
ParentShowHint = False
ShowHint = True
end
object ToolButton15: TToolButton
Left = 181
@ -170,19 +216,23 @@ object GUIForm: TGUIForm
end
object tbVolDown: TToolButton
Left = 213
Hint = 'Volume Down'
Top = 2
Caption = 'tbVolDown'
ImageIndex = 23
OnClick = tbVolDownClick
ParentShowHint = False
ShowHint = True
end
object tbMasterVolume: TTrackBar
Left = 249
Height = 38
Height = 32
Top = 2
Width = 64
OnChange = tbMasterVolumeChange
Position = 0
ScalePos = trBottom
TabStop = False
TickMarks = tmBoth
TickStyle = tsManual
OnKeyDown = FormKeyDown
@ -191,10 +241,13 @@ object GUIForm: TGUIForm
end
object tbVolUp: TToolButton
Left = 313
Hint = 'Volume Up'
Top = 2
Caption = 'tbVolUp'
ImageIndex = 24
OnClick = tbVolUpClick
ParentShowHint = False
ShowHint = True
end
object ToolButton3: TToolButton
Left = 349
@ -204,20 +257,24 @@ object GUIForm: TGUIForm
end
object tbSpeedDown: TToolButton
Left = 381
Hint = 'CPU Speed Down'
Top = 2
Caption = 'tbSpeedDown'
ImageIndex = 25
OnClick = tbSpeedDownClick
ParentShowHint = False
ShowHint = True
end
object TrackBar2: TTrackBar
Left = 417
Height = 38
Height = 32
Top = 2
Width = 64
Max = 4
OnChange = TrackBar2Change
Position = 0
ScalePos = trBottom
TabStop = False
TickMarks = tmBoth
TickStyle = tsManual
OnKeyDown = FormKeyDown
@ -226,10 +283,13 @@ object GUIForm: TGUIForm
end
object tbSpeedUp: TToolButton
Left = 481
Hint = 'CPU Speed Up'
Top = 2
Caption = 'tbSpeedUp'
ImageIndex = 26
OnClick = tbSpeedUpClick
ParentShowHint = False
ShowHint = True
end
object ToolButton18: TToolButton
Left = 517
@ -237,35 +297,51 @@ object GUIForm: TGUIForm
Caption = 'ToolButton18'
Enabled = False
end
object ToolButton1: TToolButton
Left = 941
Top = 2
Caption = 'ToolButton1'
Enabled = False
end
object tbFullscreen: TToolButton
Left = 973
Hint = 'Fullscreen'
Top = 2
Caption = 'tbFullscreen'
ImageIndex = 29
OnClick = tbFullscreenClick
ParentShowHint = False
ShowHint = True
end
end
object pnlContainer: TPanel
Left = 0
Height = 494
Height = 589
Top = 36
Width = 945
Width = 1014
Align = alClient
BevelOuter = bvNone
ClientHeight = 494
ClientWidth = 945
ClientHeight = 589
ClientWidth = 1014
Color = clAqua
ParentColor = False
TabOrder = 2
object sidecarPanel: TPanel
Left = 775
Height = 494
Left = 844
Height = 589
Top = 0
Width = 170
Align = alRight
BevelOuter = bvNone
Caption = 'sidecarPanel'
ClientHeight = 494
ClientHeight = 589
ClientWidth = 170
Color = clBlack
ParentColor = False
TabOrder = 0
object Image1: TImage
Left = 0
Height = 494
Height = 589
Top = 0
Width = 170
Align = alClient
@ -5358,13 +5434,13 @@ object GUIForm: TGUIForm
end
object embedPanel: TPanel
Left = 0
Height = 494
Height = 589
Top = 0
Width = 775
Width = 844
Align = alClient
BevelOuter = bvNone
ClientHeight = 494
ClientWidth = 775
ClientHeight = 589
ClientWidth = 844
Color = clBlack
Font.Color = clWhite
ParentColor = False
@ -5372,9 +5448,9 @@ object GUIForm: TGUIForm
TabOrder = 1
object backdrop: TImage
Left = 0
Height = 494
Height = 589
Top = 0
Width = 775
Width = 844
Align = alClient
OnClick = backdropClick
Stretch = True
@ -5856,6 +5932,14 @@ object GUIForm: TGUIForm
ShortCut = 32781
OnClick = MenuItem14Click
end
object N10: TMenuItem
Caption = '-'
end
object miVideoScreenshot: TMenuItem
Caption = 'Take Screenshot'
ShortCut = 24796
OnClick = miVideoScreenshotClick
end
end
object Input: TMenuItem
Caption = 'Input'
@ -6283,10 +6367,12 @@ object GUIForm: TGUIForm
end
object miRECRewind: TMenuItem
Caption = 'Rewind'
ShortCut = 24795
OnClick = miRECRewindClick
end
object miRECPlay: TMenuItem
Caption = 'Play'
ShortCut = 24797
OnClick = miRECPlayClick
end
object miRECResume: TMenuItem
@ -6322,15 +6408,25 @@ object GUIForm: TGUIForm
end
object miTools: TMenuItem
Caption = 'Tools'
OnClick = miToolsClick
object miToolsTracker: TMenuItem
Caption = 'microTracker'
OnClick = miToolsTrackerClick
end
object miToolsWebDebugger: TMenuItem
Caption = 'Web Debugger'
ShortCut = 24642
OnClick = miToolsWebDebuggerClick
end
end
object miHelp: TMenuItem
Caption = 'Help'
object miMMHelp: TMenuItem
Caption = 'microM8 Help'
ShortCut = 24648
OnClick = miMMHelpClick
end
end
end
object ToolbarIcons: TImageList
Height = 32
@ -6339,7 +6435,7 @@ object GUIForm: TGUIForm
left = 96
top = 48
Bitmap = {
4C691D0000002000000020000000CA9BCA00B16DB100B16DB100B16DB100B16D
4C691E0000002000000020000000CA9BCA00B16DB100B16DB100B16DB100B16D
B100B16DB100B16DB100B16DB100B16DB100B16DB100B16DB100AD72BB0E8C68
D54C6E5CEA805A52F69F5353FFB15353FFB15A52F69F6E5CEA808C68D54CAD72
BB0EB16DB100B16DB100FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
@ -10051,7 +10147,135 @@ object GUIForm: TGUIForm
ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED002D99B33C28C6
ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6ED0028C6
ED002B9EBB3528C6ED00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0070107137660068DD660068F76600
68F7660068F7660068F7660068F7660068F7660068F7660068F7660068D06600
68226600680066006800660068006600680066006800660068006600681A6600
68C9660068F7660068F7660068F7660068F7660068F7660068F7660068F76600
68F7660068E266006842FFFFFF00FFFFFF00701071CD660068FF660068FF6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
6891660068006600680066006800660068006600680066006800660068816600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
68FF660068FF660068DDFFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
6871660068006600680066006800660068006600680066006800660068616600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068BD6600688E6600688E6600688E660068686600
6802660068006600680066006800660068006600680066006800660068016600
68616600688E6600688E6600688E660068B6660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068EF660068346600680066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
680066006800660068006600682A660068E8660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068FF660068EE6600683466006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
6800660068006600682A660068E8660068FF660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68C6660068E8660068FF660068FF660068FF660068EE66006834660068006600
6800660068006600680066006800660068006600680066006800660068006600
68006600682A660068E8660068FF660068FF660068FF660068EE660068BF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68A26600682A660068E8660068FF660068FF660068FF660068EE660068346600
6800660068006600680066006800660068006600680066006800660068006600
682A660068E8660068FF660068FF660068FF660068EE66006834660068926600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68A1660068006600682A660068E8660068FF660068FF660068FF660068EE6600
68346600680066006800660068006600680066006800660068006600682A6600
68E8660068FF660068FF660068FF660068EE6600683466006800660068916600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68A266006800660068006600682A660068E8660068FF660068FF660068FF6600
68EE66006825660068006600680066006800660068006600681C660068E86600
68FF660068FF660068FF660068EE660068346600680066006800660068926600
68FF660068FF660068F4FFFFFF00FFFFFF00701071BE660068FF660068FF6600
687D6600680066006800660068006600682A660068E8660068FF660068FF6600
68FF660068776600680066006800660068006600680066006867660068FF6600
68FF660068FF660068EE660068346600680066006800660068006600686D6600
68FF660068FF660068CEFFFFFF00FFFFFF007010711C660068906600687C6600
6807660068006600680066006800660068006600682A660068E8660068FF6600
68F9660068346600680066006800660068006600680066006828660068F56600
68FF660068EE660068348C408E008C408E008C408E008C408E008C408E038C40
8E768C408E948C408E23FFFFFF00FFFFFF007010710066006800660068006600
68006600680066006800660068006600680066006800660068206600687B6600
683A660068006600680066006800660068006600680066006800660068326600
687C6600682666006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
6800660068006600680066006800660068006600680066006800660068006600
68006600680066006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007010710066006800660068006600
6800660068006600680066006800660068006600680066006803660068336600
680E6600680066006800660068006600680066006800660068006600680C6600
68346600680566006800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00701071036600684C660068386600
6800660068006600680066006800660068006600680C660068C0660068FF6600
68ED6600682F6600680066006800660068006600680066006825660068E76600
68FF660068CA66006811BC90BD00BC90BD00BC90BD00BC90BD00BC90BD00BC90
BD32BC90BD4FBC90BD06FFFFFF00FFFFFF007010719A660068FF660068FF6600
68596600680066006800660068006600680C660068C2660068FF660068FF6600
68FF6600688D660068006600680066006800660068006600687D660068FF6600
68FF660068FF660068CC660068116600680066006800660068006600684A6600
68FE660068FF660068AAFFFFFF00FFFFFF00701071E2660068FF660068FF6600
689F66006800660068006600680C660068C2660068FF660068FF660068FF6600
68FE6600684B660068006600680066006800660068006600683D660068FC6600
68FF660068FF660068FF660068CC6600681166006800660068006600688F6600
68FF660068FF660068F2FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68A1660068006600680C660068C2660068FF660068FF660068FF660068FE7B24
7D67D9C0DA00D9C0DA00D9C0DA00D9C0DA00D9C0DA00D9C0DA00833084596600
68FC660068FF660068FF660068FF660068CC6600681166006800660068916600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68A16600680C660068C2660068FF660068FF660068FF660068FE660068678330
8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600
6859660068FC660068FF660068FF660068FF660068CC66006811660068916600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68AD660068C2660068FF660068FF660068FF660068FE66006867660068008330
8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600
680066006859660068FC660068FF660068FF660068FF660068CC660068A36600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068FF660068FE6600686766006800660068008330
8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600
68006600680066006859660068FC660068FF660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068FE660068676600680066006800660068008330
8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600
6800660068006600680066006859660068FC660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068BD660068606600686066006860660068428330
8400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E006600
683D660068606600686066006860660068B3660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071E4660068FF660068FF6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF8330
846DFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E5E6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
68FF660068FF660068F4FFFFFF00FFFFFF00701071DE660068FF660068FF6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF8330
84ACFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E9C6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
68FF660068FF660068EEFFFFFF00FFFFFF0070107157660068F5660068FF6600
68FF660068FF660068FF660068FF660068FF660068FF660068FF660068F78330
8448FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008C408E3C6600
68F3660068FF660068FF660068FF660068FF660068FF660068FF660068FF6600
68FF660068F866006865FFFFFF00FFFFFF00E5D3E500E3D0E30FE3D0E325E3D0
E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E30FE8D9
E800FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00EADCEA00E3D0
E30DE3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0E325E3D0
E325E3D0E312E3D0E300FFFFFF00
}
end
object DiskMenu: TPopupMenu
@ -10172,4 +10396,42 @@ object GUIForm: TGUIForm
left = 24
top = 216
end
object RecordingMenu: TPopupMenu
Images = ToolbarIcons
ImagesWidth = 32
left = 96
top = 216
object miStartDiskRec: TMenuItem
Caption = 'Start Disk Recording'
ImageIndex = 10
SubMenuImages = ToolbarIcons
OnClick = miRECStartFileClick
end
object miStartLiveRewindRecord: TMenuItem
Caption = 'Enable Live Rewind'
ImageIndex = 11
SubMenuImages = ToolbarIcons
OnClick = miRECLiveRewindClick
end
end
object ProfileMenu: TPopupMenu
left = 168
top = 216
object miPMApple2eEnh: TMenuItem
Caption = 'Apple //e Enhanced'
OnClick = miPRFIIeEnhancedClick
end
object miPMApple2eEnhCPM: TMenuItem
Caption = 'Apple //e Enhanced (Softcard)'
OnClick = miPRFIIeEnhancedSoftcardClick
end
object miPMApple2e: TMenuItem
Caption = 'Apple //e'
OnClick = miPRFIIeClick
end
object miPMApple2plus: TMenuItem
Caption = 'Apple ][+'
OnClick = miPRFIIplusClick
end
end
end

140
main.pas
View File

@ -24,6 +24,16 @@ type
MenuItem14: TMenuItem;
MenuItem17: TMenuItem;
MenuItem18: TMenuItem;
miVideoScreenshot: TMenuItem;
N10: TMenuItem;
miPMApple2plus: TMenuItem;
miPMApple2e: TMenuItem;
miPMApple2eEnhCPM: TMenuItem;
miPMApple2eEnh: TMenuItem;
miStartLiveRewindRecord: TMenuItem;
miStartDiskRec: TMenuItem;
miMMHelp: TMenuItem;
miHelp: TMenuItem;
miVM8: TMenuItem;
miVM7: TMenuItem;
miVM6: TMenuItem;
@ -66,6 +76,8 @@ type
Image1: TImage;
odFreezeFiles: TOpenDialog;
pnlContainer: TPanel;
ProfileMenu: TPopupMenu;
RecordingMenu: TPopupMenu;
sdFreezeFiles: TSaveDialog;
SideImages: TImageList;
miWarp400: TMenuItem;
@ -174,6 +186,7 @@ type
sidecarPanel: TPanel;
FSTimer: TTimer;
tbVolDown: TToolButton;
ToolButton1: TToolButton;
ToolButton10: TToolButton;
tbJoystickAxisSwitch: TToolButton;
tbCapsMode: TToolButton;
@ -184,8 +197,9 @@ type
tbSpeedUp: TToolButton;
ToolButton18: TToolButton;
tbVolUp: TToolButton;
tbFullscreen: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
tbRECState: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
@ -368,6 +382,7 @@ type
procedure miJSAxisSwapClick(Sender: TObject);
procedure miJSXRevClick(Sender: TObject);
procedure miJSYRevClick(Sender: TObject);
procedure miMMHelpClick(Sender: TObject);
procedure miMonoDotsClick(Sender: TObject);
procedure miMonoRasterClick(Sender: TObject);
procedure miMonoVoxelsClick(Sender: TObject);
@ -409,17 +424,20 @@ type
procedure miSVOL000Click(Sender: TObject);
procedure miTintModeClick(Sender: TObject);
procedure miTMNoneClick(Sender: TObject);
procedure miToolsClick(Sender: TObject);
procedure miToolsTrackerClick(Sender: TObject);
procedure miToolsWebDebuggerClick(Sender: TObject);
procedure miVCRClick(Sender: TObject);
procedure miVD1Click(Sender: TObject);
procedure miVDClick(Sender: TObject);
procedure miVideoScreenshotClick(Sender: TObject);
procedure miVM1Click(Sender: TObject);
procedure miVMClick(Sender: TObject);
procedure miWarp25Click(Sender: TObject);
procedure MouseTimerTimer(Sender: TObject);
procedure sidecarPanelResize(Sender: TObject);
procedure tbCapsModeClick(Sender: TObject);
procedure tbFullscreenClick(Sender: TObject);
procedure tbJoystickAxisSwitchClick(Sender: TObject);
procedure tbRMClick(Sender: TObject);
procedure tbRMColorClick(Sender: TObject);
@ -467,6 +485,7 @@ type
procedure UpdateWarpSlider;
procedure UpdateAllCaps;
procedure UpdateScanlines;
procedure UpdateRecordState;
function IsMouseBtnDown(const AMouseBtn: TMouseBtnType): Boolean;
function IsMouseBtnDown: Boolean;
private
@ -564,7 +583,7 @@ begin
RepaintWindow;
if GetTitleOfActiveWindow <> 'microM8' then
HideM8;
StatusBar1.SimpleText := GetTitleOfActiveWindow;
//StatusBar1.SimpleText := GetTitleOfActiveWindow;
//Memo1.Lines.Add('app is deactivating');
end;
@ -609,7 +628,7 @@ begin
if (y >= 0) and (y < sideCarPanel.Height) then
begin
bi := y div Round(sideCarPanel.Height / 5);
StatusBar1.SimpleText := IntToStr(bi);
//StatusBar1.SimpleText := IntToStr(bi);
Image1.PopupMenu := nil;
case bi of
0: begin
@ -670,7 +689,16 @@ begin
end;
4: begin
SimpleGet(baseUrl + '/api/control/system/reboot');
if Button = mbRight then
begin
ProfileMenu.PopUp(Mouse.CursorPos.X, Mouse.CursorPos.Y);
end
else
begin
SimpleGet(baseUrl + '/api/control/system/reboot');
end;
end;
end;
@ -800,7 +828,7 @@ var
begin
// DHGR Enhanced menu
value := GetConfig('video/init.video.dhgrhighbit');
StatusBar1.SimpleText := value;
//.SimpleText := value;
if value <> '' then
begin
case value of
@ -906,7 +934,7 @@ var
begin
// GR Render Mode menu
value := GetConfig('video/init.video.grmode');
StatusBar1.SimpleText := value;
// StatusBar1.SimpleText := value;
if value <> '' then
begin
case value of
@ -978,7 +1006,7 @@ begin
MM_MOUSE_OFF = 4
}
value := GetConfig('input/init.mouse');
StatusBar1.SimpleText := value;
//StatusBar1.SimpleText := value;
if value <> '' then
begin
case value of
@ -1045,6 +1073,11 @@ begin
UpdateConfig( 'input/init.joystick.reversey', '1', true );
end;
procedure TGUIForm.miMMHelpClick(Sender: TObject);
begin
SimpleGet(baseUrl + '/api/control/system/help');
end;
procedure TGUIForm.miMonoDotsClick(Sender: TObject);
begin
UpdateConfig( 'video/init.video.hgrmode', '3', true );
@ -1119,7 +1152,7 @@ end;
procedure TGUIForm.miPRFIIplusClick(Sender: TObject);
begin
SimpleGet( baseUrl+'/api/control/system/profile/set/apple2plus' );
SimpleGet( baseUrl+'/api/control/system/profile/set/apple2-plus' );
end;
procedure TGUIForm.miPrinterPDFClick(Sender: TObject);
@ -1246,7 +1279,7 @@ var
begin
// SHR Render Mode menu
value := GetConfig('video/init.video.scanline');
StatusBar1.SimpleText := value;
//StatusBar1.SimpleText := value;
if value <> '' then
begin
case value of
@ -1296,7 +1329,7 @@ var
begin
// SHR Render Mode menu
value := GetConfig('video/init.video.shrmode');
StatusBar1.SimpleText := value;
//StatusBar1.SimpleText := value;
if value <> '' then
begin
case value of
@ -1468,6 +1501,11 @@ begin
UpdateTintMode;
end;
procedure TGUIForm.miToolsClick(Sender: TObject);
begin
end;
procedure TGUIForm.miToolsTrackerClick(Sender: TObject);
begin
LaunchCommand( 'fp', '/local', '@music.edit{}' );
@ -1510,6 +1548,11 @@ begin
end;
end;
procedure TGUIForm.miVideoScreenshotClick(Sender: TObject);
begin
SendKey( $e092, $e092, 1, 0 );
end;
procedure TGUIForm.miVM1Click(Sender: TObject);
begin
SimpleGet(baseUrl+'/api/control/vm/'+TMenuItem(sender).Caption);
@ -1571,6 +1614,12 @@ begin
UpdateAllCaps;
end;
procedure TGUIForm.tbFullscreenClick(Sender: TObject);
begin
UpdateConfig('video/current.fullscreen', '1', false);
isFS := true;
end;
procedure TGUIForm.UpdateAllCaps;
begin
case GetConfig( 'input/init.uppercase' ) of
@ -1731,6 +1780,24 @@ begin
SimpleGet(baseUrl+'/api/control/pause');
end;
procedure TGUIForm.UpdateRecordState;
begin
case SimpleGet(baseUrl+'/api/control/recorder' ) of
'0': begin
tbRECState.ImageIndex := 9;
tbRECState.Caption := 'Start Recording';
end;
'1': begin
tbRECState.ImageIndex := 11;
tbRECState.Caption := 'Live Rewind Active';
end;
'2': begin
tbRECState.ImageIndex := 10;
tbRECState.Caption := 'Disk Recording Active';
end;
end;
end;
procedure TGUIForm.ToolTimerTimer(Sender: TObject);
begin
UpdateRenderMode;
@ -1741,6 +1808,7 @@ begin
UpdateWarpSlider;
UpdateAllCaps;
UpdateScanlines;
UpdateRecordState;
end;
procedure TGUIForm.tbMasterVolumeChange(Sender: TObject);
@ -1839,7 +1907,7 @@ begin
if S.Size > 0 then
begin
filename := GetUserDir + PathSeparator + 'microm8scrn.png';
StatusBar1.SimpleText:='Got '+IntToStr(S.Size)+' bytes of PNG data';
//StatusBar1.SimpleText:='Got '+IntToStr(S.Size)+' bytes of PNG data';
S.SaveToFile(filename);
backdrop.Picture.LoadFromFile(filename);
S.Free;
@ -1880,7 +1948,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/window/position',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=S;
//self.StatusBar1.SimpleText:=S;
Respo.Destroy;
end;
@ -1894,7 +1962,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/system/launch',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=S;
//self.StatusBar1.SimpleText:=S;
Respo.Destroy;
end;
@ -1910,7 +1978,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/system/launch',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=S;
//self.StatusBar1.SimpleText:=S;
Respo.Destroy;
end;
@ -1924,7 +1992,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/system/launch',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=S;
//self.StatusBar1.SimpleText:=S;
Respo.Destroy;
end;
@ -1939,7 +2007,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/input/mouseevent',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=S;
//self.StatusBar1.SimpleText:=S;
Respo.Destroy;
end;
@ -1994,7 +2062,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/input/keyevent',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=S;
//self.StatusBar1.SimpleText:=S;
Respo.Destroy;
end;
@ -2013,7 +2081,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/hardware/disk/insert',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=json;
//self.StatusBar1.SimpleText:=json;
Respo.Destroy;
end;
@ -2033,7 +2101,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/settings/update',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=json;
//self.StatusBar1.SimpleText:=json;
Respo.Destroy;
end;
@ -2048,7 +2116,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/settings/get',json,Respo);
Result := Respo.DataString;
self.StatusBar1.SimpleText:=json;
//self.StatusBar1.SimpleText:=json;
Respo.Destroy;
end;
@ -2069,7 +2137,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/system/freeze/save',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=json;
//self.StatusBar1.SimpleText:=json;
Respo.Destroy;
end;
@ -2087,7 +2155,7 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/system/freeze/restore',json,Respo);
S := Respo.DataString;
self.StatusBar1.SimpleText:=json;
//self.StatusBar1.SimpleText:=json;
Respo.Destroy;
end;
@ -2095,14 +2163,14 @@ procedure TGUIForm.tbDisk1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
DiskMenu.Tag := TToolButton(Sender).Tag;
StatusBar1.SimpleText := 'Disk 1';
//StatusBar1.SimpleText := 'Disk 1';
end;
procedure TGUIForm.tbDisk2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
DiskMenu.Tag := TToolButton(Sender).Tag;
StatusBar1.SimpleText := 'Disk 2';
//StatusBar1.SimpleText := 'Disk 2';
end;
procedure TGUIForm.ToolButton5Click(Sender: TObject);
@ -2185,8 +2253,10 @@ begin
if GetTitleOfActiveWindow = 'microM8' then
begin
{$IFNDEF WINDOWS}
if IsMouseBtnDown then
exit;
{$ENDIF}
//Application.Restore;
Application.BringToFront;
@ -2209,10 +2279,22 @@ begin
inPopup := true;
end;
{$IFDEF WINDOWS}
const
EXENAME: string = 'microm8.exe';
{$ELSE}
const
EXENAME: string = 'microm8';
{$ENDIF}
procedure TGUIForm.FormCreate(Sender: TObject);
begin
self.httpc := TFPHttpClient.Create(Nil);
//ShowMessage( ExtractFilePath(Application.ExeName) + EXENAME );
MicroM8Process.Executable := ExtractFilePath(Application.ExeName) + EXENAME;
//if SimpleGet( baseUrl+'/api/control/health' ) <> 'ok' then
//begin
MicroM8Process.Active := true;
@ -2324,7 +2406,9 @@ begin
end;
VK_A..VK_Z:
begin
if ssShift in Shift then
if (ssCtrl in Shift) and (ssShift in Shift) then
Result := Integer(Key)
else if ssShift in Shift then
Result := Integer(Key)
else if ssCtrl in Shift then
begin
@ -2369,7 +2453,7 @@ end;
procedure TGUIForm.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
SendKey( MapKeyCode(Key, Shift), 0, 0, MapShiftState(Key, Shift) );
StatusBar1.SimpleText := 'keycode ' + IntToStr(Key);
//StatusBar1.SimpleText := 'keycode ' + IntToStr(Key);
end;
procedure TGUIForm.FormResize(Sender: TObject);
@ -2439,7 +2523,7 @@ var
begin
// HGR Render Mode menu
value := GetConfig('video/init.video.hgrmode');
StatusBar1.SimpleText := value;
//StatusBar1.SimpleText := value;
if value <> '' then
begin
case value of
@ -2459,7 +2543,7 @@ var
begin
// DHGR Render Mode menu
value := GetConfig('video/init.video.dhgrmode');
StatusBar1.SimpleText := value;
//StatusBar1.SimpleText := value;
if value <> '' then
begin
case value of

76
poc.lps
View File

@ -4,7 +4,7 @@
<PathDelim Value="\"/>
<Version Value="11"/>
<BuildModes Active="Default"/>
<Units Count="4">
<Units Count="5">
<Unit0>
<Filename Value="poc.lpr"/>
<IsPartOfProject Value="True"/>
@ -21,8 +21,8 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<TopLine Value="1513"/>
<CursorPos X="13" Y="1528"/>
<TopLine Value="1750"/>
<CursorPos X="51" Y="1777"/>
<UsageCount Value="323"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
@ -43,129 +43,137 @@
<EditorIndex Value="-1"/>
<TopLine Value="576"/>
<CursorPos X="49" Y="591"/>
<UsageCount Value="115"/>
<UsageCount Value="114"/>
</Unit3>
<Unit4>
<Filename Value="C:\lazarus\components\lazutils\utf8process.pp"/>
<UnitName Value="UTF8Process"/>
<EditorIndex Value="-1"/>
<TopLine Value="636"/>
<CursorPos Y="654"/>
<UsageCount Value="10"/>
</Unit4>
</Units>
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="main.pas"/>
<Caret Line="1371" Column="16" TopLine="1340"/>
<Caret Line="1514" Column="67" TopLine="1512"/>
</Position1>
<Position2>
<Filename Value="main.pas"/>
<Caret Line="1439" Column="12" TopLine="1408"/>
<Caret Line="1515" Column="3" TopLine="1513"/>
</Position2>
<Position3>
<Filename Value="main.pas"/>
<Caret Line="1717" Column="17" TopLine="1686"/>
<Caret Line="1528" Column="32" TopLine="1513"/>
</Position3>
<Position4>
<Filename Value="main.pas"/>
<Caret Line="1725" Column="17" TopLine="1694"/>
<Caret Line="1529" Column="32" TopLine="1514"/>
</Position4>
<Position5>
<Filename Value="main.pas"/>
<Caret Line="1740" Column="17" TopLine="1709"/>
<Caret Line="1531" Column="32" TopLine="1516"/>
</Position5>
<Position6>
<Filename Value="main.pas"/>
<Caret Line="1751" Column="17" TopLine="1720"/>
<Caret Line="1579" Column="35" TopLine="1577"/>
</Position6>
<Position7>
<Filename Value="main.pas"/>
<Caret Line="1859" Column="28" TopLine="1828"/>
<Caret Line="2440" TopLine="2437"/>
</Position7>
<Position8>
<Filename Value="main.pas"/>
<Caret Line="1891" Column="6" TopLine="1865"/>
<Caret Line="1580" Column="22" TopLine="1577"/>
</Position8>
<Position9>
<Filename Value="main.pas"/>
<Caret Line="544" Column="10" TopLine="512"/>
<Caret Line="2242" Column="62" TopLine="2215"/>
</Position9>
<Position10>
<Filename Value="main.pas"/>
<Caret Line="523" Column="22" TopLine="502"/>
<Caret Line="2240" Column="57" TopLine="2221"/>
</Position10>
<Position11>
<Filename Value="main.pas"/>
<Caret Line="504" Column="9" TopLine="495"/>
<Caret Line="1477" Column="3" TopLine="1475"/>
</Position11>
<Position12>
<Filename Value="main.pas"/>
<Caret Line="502" Column="44" TopLine="485"/>
<Caret Line="1478" Column="3" TopLine="1476"/>
</Position12>
<Position13>
<Filename Value="main.pas"/>
<Caret Line="507" Column="29" TopLine="484"/>
<Caret Line="1485" Column="3" TopLine="1483"/>
</Position13>
<Position14>
<Filename Value="main.pas"/>
<Caret Line="519" Column="19" TopLine="497"/>
<Caret Line="1057" Column="8" TopLine="1055"/>
</Position14>
<Position15>
<Filename Value="main.pas"/>
<Caret Line="457" Column="29" TopLine="448"/>
<Caret Line="902" Column="5" TopLine="900"/>
</Position15>
<Position16>
<Filename Value="main.pas"/>
<Caret Line="17"/>
<Caret Line="1062" Column="28" TopLine="1055"/>
</Position16>
<Position17>
<Filename Value="main.pas"/>
<Caret Line="521" Column="11" TopLine="498"/>
<Caret Line="2256" Column="14" TopLine="2244"/>
</Position17>
<Position18>
<Filename Value="main.pas"/>
<Caret Line="1596" Column="30" TopLine="1582"/>
<Caret Line="2396" Column="47" TopLine="2393"/>
</Position18>
<Position19>
<Filename Value="main.pas"/>
<Caret Line="2458" Column="3" TopLine="2430"/>
<Caret Line="2390" Column="17" TopLine="2378"/>
</Position19>
<Position20>
<Filename Value="main.pas"/>
<Caret Line="2459" Column="3" TopLine="2431"/>
<Caret Line="2406" Column="17" TopLine="2378"/>
</Position20>
<Position21>
<Filename Value="main.pas"/>
<Caret Line="2460" Column="3" TopLine="2432"/>
<Caret Line="2363" Column="37" TopLine="2349"/>
</Position21>
<Position22>
<Filename Value="main.pas"/>
<Caret Line="2461" Column="3" TopLine="2433"/>
<Caret Line="2364" Column="37" TopLine="2350"/>
</Position22>
<Position23>
<Filename Value="main.pas"/>
<Caret Line="2462" Column="3" TopLine="2434"/>
<Caret Line="2365" Column="37" TopLine="2351"/>
</Position23>
<Position24>
<Filename Value="main.pas"/>
<Caret Line="2463" Column="3" TopLine="2435"/>
<Caret Line="2366" Column="37" TopLine="2352"/>
</Position24>
<Position25>
<Filename Value="main.pas"/>
<Caret Line="2464" Column="3" TopLine="2436"/>
<Caret Line="480" Column="15" TopLine="465"/>
</Position25>
<Position26>
<Filename Value="main.pas"/>
<Caret Line="2465" Column="3" TopLine="2437"/>
<Caret Line="1772" Column="51" TopLine="1745"/>
</Position26>
<Position27>
<Filename Value="main.pas"/>
<Caret Line="2466" Column="3" TopLine="2438"/>
<Caret Line="1773" Column="51" TopLine="1746"/>
</Position27>
<Position28>
<Filename Value="main.pas"/>
<Caret Line="2473" Column="3" TopLine="2445"/>
<Caret Line="1774" Column="51" TopLine="1747"/>
</Position28>
<Position29>
<Filename Value="main.pas"/>
<Caret Line="1514" Column="67" TopLine="1512"/>
<Caret Line="1775" Column="51" TopLine="1748"/>
</Position29>
<Position30>
<Filename Value="main.pas"/>
<Caret Line="1515" Column="3" TopLine="1513"/>
<Caret Line="1776" Column="51" TopLine="1749"/>
</Position30>
</JumpHistory>
<RunParams>