├── .gitignore
├── .gitmodules
├── .vscode
├── launch.json
└── tasks.json
├── COPYING.txt
├── README.md
├── _work
├── VIAEMDEV.c
└── target_options.h
├── cfg
├── CNFGGLOB.h
├── EMCONFIG.h
├── MACII.h
├── MACPLUS.h
└── STRCONST.h
├── docs
├── about.html
├── bootdlg_model.png
├── bootdlg_start.png
├── change
│ ├── index.html
│ ├── v3.0.html
│ ├── v3.1.html
│ ├── v3.2.html
│ ├── v3.3.html
│ ├── v3.4.html
│ ├── v3.5.html
│ ├── v36.html
│ └── v37.html
├── contents.html
├── control.html
├── credits.html
├── develop.html
├── extras
│ ├── aspack
│ │ └── index.html
│ ├── asunpack
│ │ └── index.html
│ ├── autoquit
│ │ └── index.html
│ ├── autquit7
│ │ └── index.html
│ ├── binunpk
│ │ └── index.html
│ ├── blanks
│ │ └── index.html
│ ├── clipin
│ │ └── index.html
│ ├── clipout
│ │ └── index.html
│ ├── clockfix
│ │ └── index.html
│ ├── cnvtdc42
│ │ └── index.html
│ ├── copyroms
│ │ └── index.html
│ ├── dafkey
│ │ └── index.html
│ ├── daopener
│ │ └── index.html
│ ├── dc42chk
│ │ └── index.html
│ ├── dolaunch
│ │ └── index.html
│ ├── egretrom
│ │ └── index.html
│ ├── ejctquit
│ │ └── index.html
│ ├── exportfl
│ │ └── index.html
│ ├── exportps
│ │ └── index.html
│ ├── fdisasm
│ │ ├── a
│ │ │ ├── index.html
│ │ │ └── roms.html
│ │ ├── c
│ │ │ ├── index.html
│ │ │ └── roms.html
│ │ └── index.html
│ ├── findcode
│ │ └── index.html
│ ├── findres
│ │ └── index.html
│ ├── getpram
│ │ └── index.html
│ ├── getrsfrk
│ │ └── index.html
│ ├── icon2
│ │ └── index.html
│ ├── icons
│ │ └── index.html
│ ├── importfl
│ │ └── index.html
│ ├── index.html
│ ├── makekeys
│ │ └── index.html
│ ├── makerand
│ │ └── index.html
│ ├── md5fl
│ │ └── index.html
│ ├── md5im
│ │ └── index.html
│ ├── mkkeystl
│ │ └── index.html
│ ├── mnvmreg
│ │ └── index.html
│ ├── mpwextns
│ │ └── index.html
│ ├── pmakkeys
│ │ └── index.html
│ ├── pmurom
│ │ └── index.html
│ ├── psgcheck
│ │ └── index.html
│ ├── psgchktl
│ │ └── index.html
│ ├── psgwrite
│ │ └── index.html
│ ├── reasm
│ │ └── index.html
│ ├── setftype
│ │ └── index.html
│ ├── sigcheck
│ │ └── index.html
│ ├── sigchktl
│ │ └── index.html
│ ├── sigwrite
│ │ └── index.html
│ ├── sigwrttl
│ │ └── index.html
│ ├── sitpack
│ │ └── index.html
│ ├── slotrom
│ │ └── index.html
│ ├── testmnvm
│ │ └── index.html
│ └── testsync
│ │ └── index.html
├── faq.html
├── happy-mac-options.png
├── hardware.html
├── index.html
├── license.html
├── local
│ ├── catalan.html
│ ├── czech.html
│ ├── dutch.html
│ ├── english.html
│ ├── french.html
│ ├── german.html
│ ├── index.html
│ ├── italian.html
│ ├── polish.html
│ ├── pt_BR.html
│ ├── spanish.html
│ ├── sr_cyrl.html
│ └── sr_latn.html
├── macii.png
├── macplus.png
├── norom-mockup.gif
├── options.html
├── osx_note.html
├── ports.html
├── recipes
│ ├── brsys7in
│ │ ├── index.html
│ │ ├── p2.html
│ │ ├── p3.html
│ │ └── p4.html
│ ├── brsys7ut
│ │ ├── index.html
│ │ ├── p2.html
│ │ ├── p3.html
│ │ └── p4.html
│ ├── index.html
│ ├── lnrphntm
│ │ ├── index.html
│ │ ├── p2.html
│ │ ├── p3.html
│ │ └── p4.html
│ ├── sys6util
│ │ ├── index.html
│ │ ├── p2.html
│ │ ├── p3.html
│ │ └── p4.html
│ ├── sys7inst
│ │ ├── index.html
│ │ ├── p2.html
│ │ ├── p3.html
│ │ └── p4.html
│ └── sys7tnin
│ │ ├── index.html
│ │ ├── p2.html
│ │ ├── p3.html
│ │ └── p4.html
├── screens
│ ├── index.html
│ └── more.html
├── setupcfg.html
├── sit_alt.html
├── start.html
└── use.html
├── extras
├── mydriver
│ ├── disk
│ │ ├── README.txt
│ │ └── mydriver.a
│ └── video
│ │ └── firmware.a
└── trans.txt
├── gfx
├── bootdlg
│ ├── base.png
│ ├── model.png
│ ├── model_se30.png
│ └── start.png
└── norom
│ ├── norom-0.png
│ ├── norom-1.png
│ ├── norom-mockup.png
│ └── norom.gif
├── meson.build
├── rsrc
├── HAPPYMAC
│ ├── aside.xbm
│ ├── cheese.xbm
│ ├── evil.xbm
│ ├── horror.xbm
│ ├── lady.xbm
│ ├── moustache.xbm
│ ├── nerdy.xbm
│ ├── pirate.xbm
│ ├── sleepy.xbm
│ ├── sly.xbm
│ ├── sunglasses.xbm
│ ├── surprise.xbm
│ ├── tongue.xbm
│ ├── yuck.xbm
│ └── zombie.xbm
├── SONYDRV.bin
├── SONYICO.bin
├── WIN32
│ ├── ICONAPPW.ico
│ ├── ICONDSKW.ico
│ ├── ICONROMW.ico
│ ├── app.manifest
│ └── main.rc
└── macOS
│ ├── ICONAPPO.icns
│ ├── ICONDSKO.icns
│ └── ICONROMO.icns
└── src
├── CFGMAN.c
├── CFGMAN.h
├── ERRCODES.h
├── GLOBGLUE.c
├── GLOBGLUE.h
├── HW
├── ADB
│ ├── ADBEMDEV.c
│ ├── ADBEMDEV.h
│ └── ADBSHARE.h
├── DISK
│ ├── IWMEMDEV.c
│ ├── IWMEMDEV.h
│ ├── SONYEMDV.c
│ └── SONYEMDV.h
├── KBRD
│ ├── KBRDEMDV.c
│ ├── KBRDEMDV.h
│ └── KEYCODES.h
├── M68K
│ ├── DISAM68K.c
│ ├── DISAM68K.h
│ ├── FPCPEMDV.c
│ ├── FPCPEMDV.h
│ ├── FPMATHEM.h
│ ├── M68KITAB.c
│ ├── M68KITAB.h
│ ├── MINEM68K.c
│ └── MINEM68K.h
├── MOUSE
│ ├── MOUSEMDV.c
│ └── MOUSEMDV.h
├── POWERMAN
│ ├── PMUEMDEV.c
│ └── PMUEMDEV.h
├── RAM
│ └── RAMADDR.h
├── ROM
│ ├── ROMEMDEV.c
│ └── ROMEMDEV.h
├── RTC
│ ├── RTCEMDEV.c
│ └── RTCEMDEV.h
├── SCC
│ ├── SCCEMDEV.c
│ └── SCCEMDEV.h
├── SCREEN
│ ├── SCRNEMDV.c
│ ├── SCRNEMDV.h
│ └── SCRNTRNS.h
├── SCSI
│ ├── SCSIEMDV.c
│ └── SCSIEMDV.h
├── SOUND
│ ├── ASCEMDEV.c
│ ├── ASCEMDEV.h
│ ├── SNDEMDEV.c
│ └── SNDEMDEV.h
├── VIA
│ ├── VIA2EMDV.c
│ ├── VIA2EMDV.h
│ ├── VIAEMDEV.c
│ └── VIAEMDEV.h
└── VIDCARD
│ ├── VIDEMDEV.c
│ └── VIDEMDEV.h
├── LANG
├── INTLCHAR.c
├── INTLCHAR.h
├── STRCNCAT.h
├── STRCNCZE.h
├── STRCNDUT.h
├── STRCNENG.h
├── STRCNFRE.h
├── STRCNGER.h
├── STRCNITA.h
├── STRCNPOL.h
├── STRCNPTB.h
├── STRCNSPA.h
└── STRCNSRL.h
├── PATCHES
├── HPMCHACK.h
├── ROMEMDEV.c
├── ROMEMDEV.h
├── SCRNHACK.c
├── SCRNHACK.h
├── SONYDRV.c
└── SONYDRV.h
├── PROGMAIN.c
├── PROGMAIN.h
├── SYSDEPNS.h
├── UI
├── COMOSGLU.c
├── COMOSGLU.h
├── CONTROLM.c
├── CONTROLM.h
├── MYOSGLUE.h
└── SDL2
│ ├── CLIPBRD.c
│ ├── DBGLOG.c
│ ├── DRIVES.c
│ ├── INTL.c
│ ├── KEYBOARD.c
│ ├── MOUSE.c
│ ├── OSGLUSD2.c
│ ├── OSGLUSD2.h
│ ├── ROM.c
│ ├── SOUND.c
│ ├── TIMEDATE.c
│ └── VIDEO.c
└── UTIL
├── BPFILTER.h
├── DATE2SEC.c
├── DATE2SEC.h
├── ENDIANAC.h
└── PBUFSTDC.h
/.gitignore:
--------------------------------------------------------------------------------
1 | # Binaries
2 | *.exe
3 | *.obj
4 | *.dsk
5 | *.ROM
6 |
7 | # Visual Studio
8 | .vs/*
9 | .vs/
10 |
11 | # Visual Studio Code
12 | .vscode/*
13 | !.vscode/launch.json
14 | !.vscode/tasks.json
15 |
16 | # KDevelop 4
17 | *.kdev4
18 | *.pdb
19 |
20 | # Meson
21 | build/
22 | subprojects/
23 | reconfigure/
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "src/incbin"]
2 | path = lib/incbin
3 | url = https://github.com/graphitemaster/incbin
4 | [submodule "src/tomlc99"]
5 | path = lib/tomlc99
6 | url = https://github.com/cktan/tomlc99
7 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | "version": "0.2.0",
6 | "configurations": [
7 | {
8 | "name": "(Windows) Launch",
9 | "type": "cppvsdbg",
10 | "request": "launch",
11 | "program": "${workspaceFolder}/build/microvmac.exe",
12 | "args": [],
13 | "stopAtEntry": false,
14 | "cwd": "${workspaceFolder}/build/",
15 | "environment": [],
16 | "console": "externalTerminal",
17 | "preLaunchTask": "${defaultBuildTask}"
18 | }
19 | ]
20 | }
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | {
2 | "tasks": [
3 | {
4 | "type": "cppbuild",
5 | "label": "C/C++: compile with Meson",
6 | "command": "meson",
7 | "args": [
8 | "compile",
9 | ],
10 | "options": {
11 | "cwd": "${workspaceFolder}/build"
12 | },
13 | "problemMatcher": [
14 | "$msCompile"
15 | ],
16 | "group": {
17 | "kind": "build",
18 | "isDefault": true
19 | },
20 | }
21 | ],
22 | "version": "2.0.0"
23 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # µvMac 0.37.0
2 |
3 | Forked from Mini vMac v36.4 by Paul C. Pratt (http://www.gryphel.com/c/minivmac), which was forked from vMac by Philip "PC" Cummins (http://www.vmac.org/main.html)
4 |
5 | µvMac (micro vMac) is a small, simple emulator for early Motorola 68000 based emulators. Currently we support systems from the original Macintosh 128K all the way up to the Macintosh II.
6 |
7 | This fork was created to clean up and modernize the code base, make the project easier to compile and hack on, and allow for much easier user configuration. The intent of Mini vMac was to create a "emulator collection" of many very optimized "variations" of the same codebase. I consider this much more trouble than it's worth, and intend to focus more on maintainability and accuracy.
8 |
9 | µvMac is undergoing substansial and sporadic development and is unlikely to be in an usable state at this time.
10 |
11 | ## Supported Platforms
12 |
13 | µvMac *absolutely requires* SDL2. There are no plans to support platforms that SDL2 does not target. For 99% of users, this should not be a concern. Dropping support for esoteric platforms and exclusively using SDL2 vastly simplifies the complexity of the code.
14 |
15 | So far µvMac has only been tested on Windows and Linux. No other operating systems are supported at this time.
16 |
17 | ## Legal info
18 |
19 | You can redistribute µvMac and/or modify it under the terms
20 | of version 2 of the GNU General Public License as published by
21 | the Free Software Foundation. See the included file COPYING.txt
22 |
23 | µvMac is distributed in the hope that it will be useful,
24 | but WITHOUT ANY WARRANTY; without even the implied warranty of
25 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 | license for more details.
27 |
--------------------------------------------------------------------------------
/cfg/CNFGGLOB.h:
--------------------------------------------------------------------------------
1 | /*
2 | Configuration options used by both platform specific
3 | and platform independent code.
4 |
5 | Hopefully, one day, we can remove this file entirely.
6 | */
7 |
8 | #ifndef CNFGGLOB_H
9 | #define CNFGGLOB_H
10 |
11 | #include
12 |
13 | #define SmallGlobals 0
14 | #define cIncludeUnused 0
15 | #define UnusedParam(p) (void) p
16 |
17 | /* capabilities provided by platform specific code */
18 |
19 | #define SoundEnabled 1
20 | #define kLn2SoundSampSz 3
21 |
22 | #define dbglog_HAVE 0
23 | #define WantAbnormalReports 0
24 |
25 | #define NumDrives 6
26 | #define IncludeSonyRawMode 1
27 | #define IncludeSonyGetName 1
28 | #define IncludeSonyNew 1
29 | #define IncludeSonyNameNew 1
30 |
31 | #define IncludePbufs 1
32 | #define NumPbufs 4
33 |
34 | #define EnableMouseMotion 0
35 |
36 | #define IncludeHostTextClipExchange 0
37 | #define EmLocalTalk 0
38 | #define AutoLocation 1
39 | #define AutoTimeZone 1
40 |
41 | // Variable versions of configuration flags
42 | extern uint16_t vMacScreenHeight;
43 | extern uint16_t vMacScreenWidth;
44 | extern uint16_t vMacScreenDepth;
45 |
46 | #endif
47 |
--------------------------------------------------------------------------------
/cfg/EMCONFIG.h:
--------------------------------------------------------------------------------
1 | /*
2 | Configuration options used by platform independent code.
3 |
4 | This file is automatically generated by the build system,
5 | which tries to know what options are valid in what
6 | combinations. Avoid changing this file manually unless
7 | you know what you're doing.
8 | */
9 |
10 | #ifndef EMCONFIG_H
11 | #define EMCONFIG_H
12 |
13 | // Keybindings
14 | // TODO: Make these variable
15 | #define MKC_formac_Control MKC_CM
16 | #define MKC_formac_Command MKC_Command
17 | #define MKC_formac_Option MKC_Option
18 | #define MKC_formac_Shift MKC_Shift
19 | #define MKC_formac_CapsLock MKC_CapsLock
20 | #define MKC_formac_Escape MKC_Escape
21 | #define MKC_formac_BackSlash MKC_BackSlash
22 | #define MKC_formac_Slash MKC_Slash
23 | #define MKC_formac_Grave MKC_Grave
24 | #define MKC_formac_Enter MKC_Enter
25 | #define MKC_formac_PageUp MKC_PageUp
26 | #define MKC_formac_PageDown MKC_PageDown
27 | #define MKC_formac_Home MKC_Home
28 | #define MKC_formac_End MKC_End
29 | #define MKC_formac_Help MKC_Help
30 | #define MKC_formac_ForwardDel MKC_ForwardDel
31 | #define MKC_formac_F1 MKC_Option
32 | #define MKC_formac_F2 MKC_Command
33 | #define MKC_formac_F3 MKC_F3
34 | #define MKC_formac_F4 MKC_F4
35 | #define MKC_formac_F5 MKC_F5
36 | #define MKC_formac_RControl MKC_CM
37 | #define MKC_formac_RCommand MKC_Command
38 | #define MKC_formac_ROption MKC_Option
39 | #define MKC_formac_RShift MKC_Shift
40 | #define MKC_UnMappedKey MKC_Control
41 |
42 | #define MaxATTListN 32
43 | #define IncludeExtnPbufs 1
44 | // temporary
45 | #define IncludeExtnHostTextClipExchange 0
46 |
47 | #define Sony_SupportDC42 1
48 | #define Sony_SupportTags 0
49 | #define Sony_WantChecksumsUpdated 0
50 | #define Sony_VerifyChecksums 0
51 | #define CaretBlinkTime 0x03
52 | #define SpeakerVol 0x07
53 | #define DoubleClickTime 0x05
54 | #define MenuBlink 0x03
55 | #define AutoKeyThresh 0x06
56 | #define AutoKeyRate 0x03
57 |
58 | #define CurEmMd kEmMd_Plus
59 |
60 | //#if (CurEmMd == kEmMd_Plus)
61 | #include "MACPLUS.h"
62 | //#elif (CurEmMd == kEmMd_II)
63 | //#include "MACII.h"
64 | //#endif
65 |
66 | #define WantDisasm 0
67 | #define ExtraAbnormalReports 0
68 |
69 | #endif
70 |
--------------------------------------------------------------------------------
/cfg/STRCONST.h:
--------------------------------------------------------------------------------
1 | #include "LANG/STRCNENG.h"
2 |
--------------------------------------------------------------------------------
/docs/about.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | About µvMac
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | µvMac - About
15 | Back
16 |
17 |
18 |
19 |
20 | The µvMac emulator allows modern computers
21 | to run software made for early Macintosh
22 | computers, the computers that Apple sold from 1984 to 1996
23 | based upon Motorola's 680x0 microprocessors, most notably the
24 | Macintosh Plus .
25 |
26 |
27 | µvMac is maintained by InvisibleUp .
28 |
29 |
30 | µvMac began in 2020 as a spin off of the program Mini vMac. Mini vMac,
31 | while great, was inflexible and very difficult to maintain. This fork
32 | was created to clean up and modernize the code base, make the project
33 | easier to compile and hack on, and allow for much easier user
34 | configuration. The intent of Mini vMac was to create a "emulator
35 | collection" of many very optimized "variations" of the same codebase.
36 | I consider this much more trouble than it's worth, and intend to focus
37 | more on maintainability and accuracy.
38 |
39 |
40 |
41 | The “micro” in the name refers more to the side and simplicity
42 | of the codebase than of any particular binary. That said, having every
43 | possible system emulated by one single program would, in fact, be smaller.
44 | Also it was meant to imply that this comes "after" Mini vMac.
45 |
46 | Besides the Macintosh Plus, there
47 | are also emulations of the Macintosh 128K, 512K, 512Ke,
48 | SE, Classic, and SE FDHD.
49 | Work is in progress on Macintosh II emulation, which seems to be mostly
50 | stable from what testing I've done.
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/docs/bootdlg_model.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/docs/bootdlg_model.png
--------------------------------------------------------------------------------
/docs/bootdlg_start.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/docs/bootdlg_start.png
--------------------------------------------------------------------------------
/docs/change/index.html:
--------------------------------------------------------------------------------
1 |
Mini vMac Changes
Mini vMac
Changes
What has changed in each major branch of Mini vMac:
: : (see also Downloads
for these branches)
Mini vMac 37.xx is in alpha
Mini vMac 36.xx is the current stable version
Mini vMac 3.5.8
Mini vMac 3.4.1
Mini vMac 3.3.3
Mini vMac 3.2.3
Mini vMac 3.1.3
Mini vMac 3.0.4
:
If you find Mini vMac useful, please consider
helping the Gryphel Project ,
of which it is a part.
Next - Contents of Mini vMac source
--------------------------------------------------------------------------------
/docs/contents.html:
--------------------------------------------------------------------------------
1 |
Contents - Mini vMac
Mini vMac
Contents of the source distribution
See the Build page to
learn how to compile Mini vMac. The source archive contains:
src
Source code files for Mini vMac, most in C.
setup
Source code for the tool that configures
Mini vMac source code for compiling.
extras
mydriver
Source code for a replacement disk driver that
is patched into the emulated rom, and for
the video driver of the Macintosh II emulation.
tran
Some source files are simple transformations of other source
files. This is some MPW scripts to help keep them in sync.
README
Has link to Mini vMac home page, and some
license information.
COPYING
The GNU General Public License (GPL)
:
If you find Mini vMac useful, please consider
helping the Gryphel Project .
Next - Building Mini vMac
--------------------------------------------------------------------------------
/docs/extras/asunpack/index.html:
--------------------------------------------------------------------------------
1 |
asUnpack
asUnpack
Download
asunpack-1.0.0.zip
(74K) a zipped hfs disk image and checksum file.
The disk image can be mounted with Mini vMac.
Includes source code.
asUnpack is an application to unpack a file in AppleSingle format,
as created by
asPack .
It may not be able to unpack AppleSingle files created by other
programs; in particular, it only deals with version 2 of the format.
The program operates on a file named “bin”
in the same folder as the asUnpack application, and puts the
output file in that same folder, with the name specified inside
the AppleSingle file. If “bin” is
not found, the program prompts you to select the input file.
If the output file already exists, it
is overwritten with no further prompting.
Here is the md5 checksum for the download, signed with
Gryphel Key 5 :
--------- GRY SIGNED TEXT ---------
3fc9071e23f2759971b2b8b84e6924e4 asunpack-1.0.0.zip
------- BEGIN GRY SIGNATURE -------
Gry/4Xa8CFcUzxdN/ClWc16AUANsSmkn/QbUo+ZY2obHQFvtxRSXl8TjYCPO6/Ob
bxPS7TEBh5U8RV+BTUh9GPAtboOpCQuBAFMfBkmFdXI9NHkxiQ+W3SVmWNNMO2ji
Ia5QWXJrztQE7wC5XBIHRKIcyOgkKjcORUD9s0+hgewD9DWhe0eVD6uPVTRNWRlX
-------- END GRY SIGNATURE --------
See the
Compiling
page for instructions on compiling asUnpack from the source code.
You can redistribute asUnpack and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. See the included file COPYING.
asUnpack is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
license for more details.
:
If you find asUnpack useful, please consider
helping the Gryphel Project ,
of which it is a part.
--------------------------------------------------------------------------------
/docs/extras/binunpk/index.html:
--------------------------------------------------------------------------------
1 |
binUnpk
binUnpk
Download
binunpk-1.2.0.zip
(64K) a zipped hfs disk image and checksum file.
The disk image can be mounted with Mini vMac.
Includes source code.
binUnpk is an application to unpack files in MacBinary format. It is mostly
useful for unpacking the Stuffit Expander 4.0.1
archive. It can also unpack other MacBinary files, but there isn't much
need for it once you have Stuffit Expander. (Update - now that I'm hosting
StuffIt Expander in disk image format, there is even less need for
binUnpk.)
Since binUnpk comes as a zipped disk image, you don't need any other
unpacking software running on the emulated Macintosh to unpack it. You
just need to unpack the zip file on the real computer.
Here is the md5 checksum for the download, signed with
Gryphel Key 5 :
--------- GRY SIGNED TEXT ---------
641511e06df0fce5d072f07624d97085 binunpk-1.2.0.zip
------- BEGIN GRY SIGNATURE -------
Gry/4Xa8CFcUzxdN/LcRL3XK6XGT/MGCuWsdGJ99B5C83pb4vTleblATQuWdfcZJ
pJMJG0Q4ZgYmpfsvVEk4A2QcaTOqesnl5JF/cWnitw3mq7VYeTW5tKokO4SpWYd7
ZWIWOaHof+SR011OOjB5e3fIFkN9d5LPJ7v8PAs6c/6u+oWn2dd64qp2gKy/NtCH
-------- END GRY SIGNATURE --------
See the
Compiling
page for instructions on compiling binUnpk from the source code.
You can redistribute binUnpk and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. See the included file COPYING.
binUnpk is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
license for more details.
:
If you find binUnpk useful, please consider
helping the Gryphel Project ,
of which it is a part.
--------------------------------------------------------------------------------
/docs/extras/clipin/index.html:
--------------------------------------------------------------------------------
1 |
ClipIn
ClipIn
Download
clipin-1.1.0.zip
(20K) a zipped hfs disk image and checksum file.
The disk image can be mounted with Mini vMac.
Includes source code.
ClipIn is a Desk Accessory to use in Mini vMac 3.0.0 or later
to import the clipboard of the real computer into
the clipboard of the emulated computer.
When ClipIn is opened, a small window very briefly
appears. After it disappears the clipboard has
been imported.
ClipIn in provided in two formats.
The file 'ClipIn' is a Font/DA Mover suitcase for use in System 6
and earlier, containing a desk accessory named '6-ClipIn'.
(Use
Font/DA Mover
to install DAs in System 6 and earlier.)
The file '6-ClipIn' is a System 7 style desk accessory,
with icon and version resources. The actual desk accessory
code in both versions is identical.
ClipIn is intended to be used with
DAFKEY , to provide a keyboard
shortcut. That is why the name of the desk accessory
starts with '6-'.
If you would like to export the clipboard, see
ClipOut , the opposite of ClipIn.
If you would like to import entire files, see
ImportFl .
Here is the md5 checksum for the download, signed with
Gryphel Key 5 :
--------- GRY SIGNED TEXT ---------
e094de97d1c6c214a80fb74895124c3e clipin-1.1.0.zip
------- BEGIN GRY SIGNATURE -------
Gry/4Xa8CFcUzxdN/JPGCqMBv2wRwXvPf45SY/F4gMP04qsY36FmnBBOwfngkQ07
ojxmHG0TPIAc8JEiU6giXZX28U5RDXN9vMdnnTcJUKsF2rAQF1xHVJzEDRGTin15
Rpuznv0dQCMUKdkWa9gPd8v61YvS/GpOBr9DvwNuRwLoJeBNKgfnzQgvF9Kunnsi
-------- END GRY SIGNATURE --------
You can redistribute ClipIn and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. See the included file COPYING.
ClipIn is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
license for more details.
:
If you find ClipIn useful, please consider
helping the Gryphel Project ,
of which it is a part.
--------------------------------------------------------------------------------
/docs/extras/cnvtdc42/index.html:
--------------------------------------------------------------------------------
1 |
CnvtDC42
CnvtDC42
Download
cnvtdc42-1.0.0.zip
(64K) a zipped hfs disk image and checksum file.
The disk image can be mounted with Mini vMac.
Includes source code.
CnvtDC42 is an application to use in Mini vMac
(version 3.0.0 or later) to convert disk image files
created by Disk Copy 4.2 into the simpler format preferred
by Mini vMac (discarding tags, checksums, and header,
leaving just the raw image data).
This is useful because, as of version 3.2.2, Mini vMac
by default only allows read access to Disk Copy 4.2 images.
CnvtDC42 can be used to convert a Disk Copy 4.2 image
into a format that Mini vMac can both read and write.
(Previous versions of Mini vMac allowed write access,
but didn't support the tags and checksums, resulting
in an invalid image. Full read/write support, with
tags and checksums, is now a compile time option.)
A new image
file is created, and the old one is not changed. The
old and new images are on the host computer, not
the emulated one. So CnvtDC42 combines characteristics
of both ImportFl and
ExportFl .
Here is the md5 checksum for the download, signed with
Gryphel Key 5 :
--------- GRY SIGNED TEXT ---------
d5e40d113d2222ed25448cdd690987a3 cnvtdc42-1.0.0.zip
------- BEGIN GRY SIGNATURE -------
Gry/4Xa8CFcUzxdN/L3qp9KbSqUsBvWGcdyaBzRdXIOhQidnAluhEjkR31Q8WwtP
Em4O0G4MLYzy1g2e3DpQzOp/wjPG0Sazzn+jsfNbOqIWSp1AL0zwLGHkLpL2/wFl
imI7GRL6FEKXNEOFUlgSeIzdme//V8j05dELRWlbvgSRwAXoDDhIFRijN6FOO8MN
-------- END GRY SIGNATURE --------
See the
Compiling
page for instructions on compiling CnvtDC42 from the source code.
You can redistribute CnvtDC42 and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. See the included file COPYING.
CnvtDC42 is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
license for more details.
:
If you find CnvtDC42 useful, please consider
helping the Gryphel Project ,
of which it is a part.
--------------------------------------------------------------------------------
/docs/extras/daopener/index.html:
--------------------------------------------------------------------------------
1 |
DAOpener
DAOpener
Download
daopener-1.1.0.zip
(40K) a zipped hfs disk image.
The disk image can be mounted with Mini vMac.
Includes source code.
DAOpener is intended to be used with
AutoQuit .
AutoQuit is used to assist in 'wrapping' an application
so that you can use it much as you would a native application
for your machine. DAOpener allows you to wrap
a Desk Accessory within an application, which can
then be wrapped using AutoQuit, so that you
can use it much as you would a native application.
DAOpener is a simple application for Macintosh
system version 6.0.8 and earlier, that
just opens the first Desk Accessory from
the Apple Menu. You can then use that
Desk Accessory as normal. When all windows
are closed, the program quits.
Here is the md5 checksum for the download, signed with
Gryphel Key 5 :
--------- GRY SIGNED TEXT ---------
8334f153c6392a390078db2ea703b19b daopener-1.1.0.zip
------- BEGIN GRY SIGNATURE -------
Gry/4Xa8CFcUzxdN/ODrPE2EKdyfztQaqqO+fDEu6SG2tLjvTUN2zJ87dMPu/nbv
EaxdWv9/WUB6cUwUiJb+gevFT6b5/EPSSKIMVjFWgVqkflWRF1nqRQkcSHioDHhW
gOIh2yflxijGa1LtaAENIBc0mXcl/qcSSimbmWnqw8sIH2D2FcIZMfC3WU0zxjCm
-------- END GRY SIGNATURE --------
See the
Compiling
page for instructions on compiling DAOpener from the source code.
You can redistribute DAOpener and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. See the included file COPYING.
DAOpener is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
license for more details.
:
If you find DAOpener useful, please consider
helping the Gryphel Project ,
of which it is a part.
--------------------------------------------------------------------------------
/docs/extras/dc42chk/index.html:
--------------------------------------------------------------------------------
1 |
DC42Chk
DC42Chk
Download
dc42chk-1.0.0.zip
(66K) a zipped hfs disk image and checksum file.
The disk image can be mounted with Mini vMac.
Includes source code.
DC42Chk is an application to use in Mini vMac
(version 3.0.0 or later) to check that disk image files
in the format used by Disk Copy 4.2 have correct
checksums.
Mini vMac versions before 3.2.2 by default will mount
and write to Disk Copy 4.2 images without updating the
checksums, resulting in an invalid image.
Mini vMac 3.2.2 and later by default will mount such
images read only, but can be compiled to be able
to write to such images, in which case the checksums
will be updated when the image is unmounted.
It does not verify the checksums before mounting.
Hence this utility.
DC42Chk works similar to
ImportFl .
The image to check is on the host computer, not
the emulated one.
Upon scanning a valid image, DC42Chk will display
the message :
"Good - I think that is a valid Disk Copy 4.2 disk image."
Otherwise some other message will be displayed indicating
the problem.
Here is the md5 checksum for the download, signed with
Gryphel Key 5 :
--------- GRY SIGNED TEXT ---------
f8d7617bb52894c834768d5f53e3fb62 dc42chk-1.0.0.zip
------- BEGIN GRY SIGNATURE -------
Gry/4Xa8CFcUzxdN/A+bwP10hKMZYHEimltz1knBtJ9h56jezDcmeqETrzYmgec2
0XWeeWVA0uV/s2E+BUbfWVfNwHVqaC0NOQo5ttvqZQg6qRq8PNi/WUmgm8xFiF7H
7QP14nVdgJYGyDHoxhTBygjVV77iwYOsYMQzsZBy9KyFpN9bwYf0oCdhaUhtlRH4
-------- END GRY SIGNATURE --------
See the
Compiling
page for instructions on compiling DC42Chk from the source code.
You can redistribute DC42Chk and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. See the included file COPYING.
DC42Chk is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
license for more details.
:
If you find DC42Chk useful, please consider
helping the Gryphel Project ,
of which it is a part.
--------------------------------------------------------------------------------
/docs/extras/fdisasm/index.html:
--------------------------------------------------------------------------------
1 |
FDisasm
FDisasm
major branches:
branch 13 (Alpha)
branch 12 (Stable)
--------------------------------------------------------------------------------
/docs/extras/getrsfrk/index.html:
--------------------------------------------------------------------------------
1 |
GetRsFrk
GetRsFrk
Download
getrsfrk-1.1.0.zip
(60K) a zipped hfs disk image and checksum file.
The disk image can be mounted with Mini vMac.
Includes source code.
GetRsFrk is an application that gets the "resource fork" of a file
you select, and saves it to the "data fork" of a file named "bin" in the
same folder as the GetRsFrk application (creating "bin" if it
doesn't already exist).
This allows you to use the
FDisasm
tool (which disassembles the data fork of a file) on a Macintosh 680x0
application (which has the code in the resource fork).
After running GetRsFrk, you should next use
FindRes .
An alternative to GetRsFrk is
asPack ,
which also saves the data fork and the meta data into “bin”,
in AppleSingle format.
Here is the md5 checksum for the download, signed with
Gryphel Key 5 :
--------- GRY SIGNED TEXT ---------
f40b497c3469464cd0aca2aab22f08ff getrsfrk-1.1.0.zip
------- BEGIN GRY SIGNATURE -------
Gry/4Xa8CFcUzxdN/P6eKnoCzqDfoLRAWwg5qmuvx/KuCC7pdzOQM74eEEOFuBrj
9HeHIdGIGj1VZ5HBaEJGUt/kMW8qDoN1FZ8GlXVwzdqwArjIiEfoG9AaROZHxrqo
2hKXfk47oyFcfBv1ld4qzyOouYJ5TdPIJvAaoR9XzjuvLRO8MqaxZRvbP3gPq3YN
-------- END GRY SIGNATURE --------
See the
Compiling
page for instructions on compiling GetRsFrk from the source code.
You can redistribute GetRsFrk and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. See the included file COPYING.
GetRsFrk is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
license for more details.
:
If you find GetRsFrk useful, please consider
helping the Gryphel Project ,
of which it is a part.
--------------------------------------------------------------------------------
/docs/extras/icon2/index.html:
--------------------------------------------------------------------------------
1 |
Mini vMac - Retro Alternate Icon
vMac Retro
Alternate Icon
Download
vMac_Retro_Icon.zip
(37K) zipped files.
Joseph V. Barrile created this
replacement icon for Mini vMac in Macintosh OS X. It is too big to be appropriate as the
default icon for “Mini” vMac
(as any true OS X style icons must be), but this is not a real problem for
actual use.
To install this icon into a copy of the Mini vMac application, download
vMac_Retro_Icon.zip
and expand the archive to get the folder “vMac_Retro_Icon”,
which contains the files “AppIcon.icns” and
“README.txt”.
Control click on the Mini vMac application
(or right click with a two button mouse), and from
the pop up menu, choose "Show Package Contents".
Open the folder "Contents", which among other
things contains the folder "Resources". Move
the file "AppIcon.icns" into the "Resources" folder, replacing
the existing file with the same name.
Here is the md5 checksum for the download, signed with
Gryphel Key 5 :
--------- GRY SIGNED TEXT ---------
2f6209e62ac4cbb0dfc5f340d2402f1f vMac_Retro_Icon.zip
------- BEGIN GRY SIGNATURE -------
Gry/4Xa8CFcUzxdN/FTXvT15ORUTnuACxYZrB4UJ99YXQC9vRh6nPJxa/0c3nuTE
BVywIQs3cLwK7Ib75afAL+2is8goYZbq4S2SetFt5TCFiShd1Z/4uE6vCYpY7rMj
5QNnINqpZRb71uZAIE2+t4R2uaLJ/BI7Y9PRctiiSCY3J1IWUF0FfqkjSkA22h9r
-------- END GRY SIGNATURE --------
“Copying/License:
I’m offering this as free software to be used as an
application icon for Paul C. Pratt and his Mini vMac software project
(http://minivmac.sourceforge.net) only and may not be sold or
repackaged in any other manner. Joseph V. Barrile must be identified
as the author of this work.”
--------------------------------------------------------------------------------
/docs/extras/icons/index.html:
--------------------------------------------------------------------------------
1 |
Icons
Icons
Download
icnsosx-1.0.0.zip
(60K) zipped files.
David Sibley created this nice set of
replacement icons for Mini vMac in Macintosh OS X. They are too big to be appropriate as the
default set of icons for “Mini” vMac, larger than the entire rest
of the program (as any true OS X style icons must be), but this is not a real problem for
actual use.
To install these icons into a copy of the Mini vMac application, download
icnsosx-1.0.0.zip
and expand the archive to get the folder 'icnsosx-1.0.0', which
contains the folder "icons". The folder "icons" contains the files
"AppIcon.icns", "DskIcon.icns", and "RomIcon.icns".
Control click on the Mini vMac application
(or right click with a two button mouse), and from
the pop up menu, choose "Show Package Contents".
Open the folder "Contents", which among other
things contains the folder "Resources". Move
the files "AppIcon.icns", "DskIcon.icns", and "RomIcon.icns"
into the "Resources" folder, replacing the existing
files with the same names.
In Mini vMac 3.0.3 or later, the ROM and Disk icons are
not used unless Mini vMac is compiled with the option
'-im 1 '.
(So if you don't use '-im 1', you only need "AppIcon.icns".)
Here are the md5 checksums for the downloads, signed with
Gryphel Key 5 :
--------- GRY SIGNED TEXT ---------
2af006506de7549be14f94317918d59a icnsosx-1.0.0.zip
e6586af918c0cf75823739ad9c8b01b3 minivmim-3.0.4-umch.bin.tgz
------- BEGIN GRY SIGNATURE -------
Gry/4Xa8CFcUzxdN/C6M+dsOn5yKjfwAaH185UcA0S1bkGkqzhs69JQdmlmRWcu7
1+hD07g74d2cAZaQJlOvO+oDT0pdON0uvIqtY+Vi8odz0qn2M+1YZMOghrvBnLIM
OuRSX7zC12kEdA3qJLOX5BVmvOUt9bkbNJpC1cHRoGWsmmKsyTKdGcOfeHi7xWOG
-------- END GRY SIGNATURE --------
IcnsOSX is copyright (C) 2007
David Sibley .
You can redistribute IcnsOSX and/or modify it under them terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. See the included file COPYING.
IcnsOSX is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
license for more details.
--------------------------------------------------------------------------------
/docs/extras/md5fl/index.html:
--------------------------------------------------------------------------------
1 |
Md5Fl
Md5Fl
Download
md5fl-1.2.0.zip
(68K) a zipped hfs disk image and checksum file.
The disk image can be mounted with Mini vMac.
Includes source code.
Md5Fl is an application for 680x0 Macintosh to calculate or verify
an md5 checksum of a file.
(The related application
Md5Im
combines the functionality of
Md5Fl and the
ImportFl
application, so as to conveniently checksum
files on the real computer.)
The calculated md5 checksum will be displayed in Md5Fl's
window. The checksum will also be placed on the clipboard.
Before replacing the contents of the clipboard it will
examine the old contents and see if matches the new value. If
it matches, an "equals" sign is displayed on the right side of Md5Fl's
window. If it doesn't match, but the old content looks like an md5 checksum,
then a "not equals" sign is displayed. Otherwise, if the old content
doesn't look like an md5 checksum, no extra symbol is displayed.
Md5Fl was created using md5 code from glibc-2.3.4, copyright
the Free Software Foundation, and written by Ulrich Drepper.
The name "Md5Fl" stands for "MD5 of FiLe".
Here is the md5 checksum for the download, signed with
Gryphel Key 5 :
--------- GRY SIGNED TEXT ---------
2a66cfc85f7dc26d570b17d09a17f0e1 md5fl-1.2.0.zip
------- BEGIN GRY SIGNATURE -------
Gry/4Xa8CFcUzxdN/KSrN+dhysxRZ3CJUzWmSDnhry+g6TTVHu5Tl3rCnwpVaSTi
eDqvqLtxNCM4vV285GreNdxsEisPwTyOC0NfdnLv6eisnUVpkTEDTanAtIXAvycj
7xiO90AkNJSesQHNVaBY5mi8Ys+iOcQDpzjBcNPfKLZXQ6ijfkIU+lI1A9Y35HmR
-------- END GRY SIGNATURE --------
See the
Compiling
page for instructions on compiling Md5Fl from the source code.
You can redistribute Md5Fl and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. See the included file COPYING.
Md5Fl is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
license for more details.
:
If you find Md5Fl useful, please consider
helping the Gryphel Project ,
of which it is a part.
--------------------------------------------------------------------------------
/docs/extras/mkkeystl/index.html:
--------------------------------------------------------------------------------
1 |
MkKeysTl
MkKeysTl
Download
MkKeysTl-1.01.zip
(74K) a zipped hfs disk image and checksum file.
The disk image can be mounted with Mini vMac.
Includes source code.
MkKeysTl is a command line version of
MakeKeys .
It can be used in Macintosh Programmer’s Workshop to
automate generating secret and public key pairs.
It is written to be platform independent, using the C standard library,
and would probably be easy to port to other platforms (but that is not
supported).
It takes three arguments: First, a path to a text file containing
truly random bytes in hexadecimal (not psuedo-random).
Second, a path to a new output file in which to put the secret key.
And third, a path to a new output file in which to put the public key.
MkKeysTl is in part descended from MacPGP source code, which, as far as
I can tell, allows derived works for noncommercial use.
Here is the md5 checksum for the download, signed with
Gryphel Key 5 :
--------- GRY SIGNED TEXT ---------
5e24c49d468815be31f8c03dcb571c6a MkKeysTl-1.01.zip
------- BEGIN GRY SIGNATURE -------
Gry/4Xa8CFcUzxdN/MHhkmj0G2/yrT2Hn2Rx6UQwG3cZRA0BKusTm89ylU0rnot5
U9dJjYCxGEsGiqzfsMWha1pJbBOcEmzUB4kl7qDdZpwKXqRQe+DAoEoRr+WoMF98
q1rVfHEX2jWmMWVU2wmtNJIuM9of8MMW3vzff+mMgIXUGjLJbEFGw26qDfu8S5KF
-------- END GRY SIGNATURE --------
:
If you find MkKeysTl useful, please consider
helping the Gryphel Project ,
of which it is a part.
--------------------------------------------------------------------------------
/docs/extras/mnvmreg/index.html:
--------------------------------------------------------------------------------
1 |
MnvMreg
MnvMreg
Download
mnvmreg-1.0.0.zip
(20K) zip archive. Includes source code.
update - MnvMreg is obsolete as of Mini vMac 3.0.3 and later.
Instead, use the
'-im 1 '
compile time option.
MnvMreg is a utility to install Mini vMac
into the Microsoft Windows registry, so that
double clicking on a disk image file with
the extension '.dsk' will open it with Mini
vMac, and so that such disk image files and
also '.rom' files will be displayed with
custom icons.
Prior to version 1.0.0 of Mini vMac,
every launch of the Mini vMac application
would reinstall it in the registry.
But since this could conflict with other
applications that want to use the '.dsk'
and '.rom' extensions, this feature
was removed. MnvMreg brings this
back as a 'use at your own risk'
optional feature.
To use MnvMreg, move 'MnvMreg.exe'
application into the same folder as the
'minivmac.exe' that you want to use.
Then double click on it to launch it.
It should give a confirmation dialog
to indicate it succeeded, and then
quit. If it fails, it should display
a dialog with a brief error message.
If you move the Mini vMac application,
you will need to run MnvMreg again.
Here is the md5 checksum for the download, signed with
Gryphel Key 5 :
--------- GRY SIGNED TEXT ---------
8ce24f4a9ea518bc563f68218b496988 mnvmreg-1.0.0.zip
------- BEGIN GRY SIGNATURE -------
Gry/4Xa8CFcUzxdN/N/In8YSWZpg29ecgjEwjYSn4ggzacdVVztLfiTbd26d/tSy
Px8vLvzUewks/1y5r0OY4TSvyaUMscf/Hf0oyN4J8BTZsoZ0pt5ignOmt35dEk1X
0gvSAqha2e6y+y1ddxJRebMs4smFlmQaVCFO58+rqtxm8OikHbr/Zv90DxFlgD9w
-------- END GRY SIGNATURE --------
You can redistribute MnvMreg and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. See the included file COPYING.
MnvMreg is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
license for more details.
:
If you find MnvMreg useful, please consider
helping the Gryphel Project ,
of which it is a part.
--------------------------------------------------------------------------------
/docs/extras/pmakkeys/index.html:
--------------------------------------------------------------------------------
1 |
PMakKeys
PMakKeys
Download
pmakkeys-1.1.0.zip
(131K) a zipped hfs disk image and checksum file.
The disk image can be mounted with Mini vMac.
Includes source code.
PMakKeys is a tool to make
secret and public key pairs for use in writing and verifying
digital signatures, just like
MakeKeys ,
except that it uses a different format that is more
or less compatible with the program MacPGP.
The tools
PSgWrite
and
PSgCheck
use the keys generated by PMakKeys.
PMakKeys is in part descended from MacPGP source code, which, as far as
I can tell, allows derived works for noncommercial use. PMakKeys is
generally compatible with MacPGP, but it is easier to legally
distribute, since it doesn’t do cryptography. Since it only does
one thing it should also be easier to use.
PMakKeys generates keys compatibile with MacPGP, but it
does not encrypt the secret key.
Another difference with MacPGP is that PMakKeys sets the user name
field to "anon", rather than asking for one.
Here is the md5 checksum for the download, signed with
Gryphel Key 5 :
--------- GRY SIGNED TEXT ---------
6318e745d955ac70113a6a753ad7d164 pmakkeys-1.1.0.zip
------- BEGIN GRY SIGNATURE -------
Gry/4Xa8CFcUzxdN/JVgrzW5vjrPsNUQZyOWjePPTd5P+eWvhzDon3PnGsqVZ1hm
7h+mr3hloz+sND7zxIEgXONJnNUYfwON1Syw7Gw4+dEyDNVSzM3XqmiSgtnxeFfn
Q+oHCQnLIIZKqRk5ucLoiRnoYTfwM7cyNQSjUB0hEzVSFCna6mScBMcuDieoi5tH
-------- END GRY SIGNATURE --------
See the
Compiling
page for instructions on compiling PMakKeys from the source code.
:
If you find PMakKeys useful, please consider
helping the Gryphel Project ,
of which it is a part.
--------------------------------------------------------------------------------
/docs/extras/psgchktl/index.html:
--------------------------------------------------------------------------------
1 |
PSgChkTl
PSgChkTl
Download
PSgChkTl-1.01.zip
(70K) a zipped hfs disk image and checksum file.
The disk image can be mounted with Mini vMac.
Includes source code.
PSgChkTl is a command line version of
PSgCheck .
It can be used in Macintosh Programmer’s Workshop to
automate checking digital signatures in MacPGP format.
It is written to be platform independent, using the C standard library,
and would probably be easy to port to other platforms (but that is not
supported).
It takes two arguments: First, a path to a file containing
a signed message. And second, a path to a file containing a public
key, in ascii armored format.
If the signature is correctly signed, PSgChkTl will return
a zero result ("{status}" in MPW). Otherwise the result
will be non-zero.
PSgChkTl is in part descended from MacPGP source code, which, as far as
I can tell, allows derived works for noncommercial use.
Here is the md5 checksum for the download, signed with
Gryphel Key 5 :
--------- GRY SIGNED TEXT ---------
619f66c2e6aa20bc1a996b35e3c662ab PSgChkTl-1.01.zip
------- BEGIN GRY SIGNATURE -------
Gry/4Xa8CFcUzxdN/C144FRwrUWDsAm4foX3HOd4Fs4BF8uyzDksfn7dO3RPvk3T
PB8u5Z0hJkUQQYA4Pdg7G69amjF4oMtjK+1XPspxlSg8aa+8Gbww00SeFwbJDvnH
f6k2UEr7Ulet1iEelRmPkedX8K/zoiSzoENpUA76C+ii92JNym9UH+MU4xQNVDnI
-------- END GRY SIGNATURE --------
:
If you find PSgChkTl useful, please consider
helping the Gryphel Project ,
of which it is a part.
--------------------------------------------------------------------------------
/docs/extras/psgwrite/index.html:
--------------------------------------------------------------------------------
1 |
PSgWrite
PSgWrite
Download
psgwrite-1.2.0.zip
(131K) a zipped hfs disk image and checksum file.
The disk image can be mounted with Mini vMac.
Includes source code.
PSgWrite is a tool for creating digital signatures, just like
SigWrite ,
except that it uses a different format that is more
or less compatible with the program MacPGP.
The related tool
PSgCheck
can check digital signatures created with PSgWrite.
PSgWrite is in part descended from MacPGP source code, which, as far as
I can tell, allows derived works for noncommercial use. PSgWrite is
generally compatible with MacPGP, but it is easier to legally
distribute, since it doesn’t do cryptography. Since it only does
one thing it should also be easier to use.
PSgWrite only handles a subset of secret keys that MacPGP does.
For one thing, it does not handle encrypted keys, which is what
MacPGP would normally generate.
Here is the md5 checksum for the download, signed with
Gryphel Key 5 :
--------- GRY SIGNED TEXT ---------
b66c8c36d27247975de97b233ae45273 psgwrite-1.2.0.zip
------- BEGIN GRY SIGNATURE -------
Gry/4Xa8CFcUzxdN/Os4hAUa0bhgqJjPpyUXzATV8DG/5EDaTK4lPqoAbuuRG7/X
iekeQnXQuEI5+pW78BMjRA51JkCxwDDIA5CvhevVlo4olDjHh3z0+kPqA9CBmm2w
IdScDaenBObgQxwc2GFi1EcxXQqJicUuQYr5cVHSouLofjUTI+msWdxyLmOzt5vC
-------- END GRY SIGNATURE --------
See the
Compiling
page for instructions on compiling PSgWrite from the source code.
:
If you find PSgWrite useful, please consider
helping the Gryphel Project ,
of which it is a part.
--------------------------------------------------------------------------------
/docs/extras/reasm/index.html:
--------------------------------------------------------------------------------
1 |
ReAsm
ReAsm (Alpha)
Download
reasm-200105.zip
(info )
a zipped hfs disk image and checksum file.
The disk image can be mounted with Mini vMac.
Includes source code.
ReAsm is for reassembling the output of
FDisasm .
Unlike other Macintosh Assemblers, ReAsm has no awareness
of the structure of a Macintosh application, or even the structure
of a Macintosh resource fork. Instead it can be used to produce
any arbitrary flat data file. This makes it better suited
for reassembling output of FDisasm, especially ROM images.
A Macintosh application (with resource fork, file type,
and file creator) can be produced by assembling an
AppleSingle format file and then using
asUnpack .
Example source files are included. To assemble them,
move the ReAsm application into the “example” folder
and run it, which creates the output file “bin”.
Nothing about ReAsm should be relied on yet. In particular,
the syntax for the source file will change.
See the
Compiling
page for instructions on compiling ReAsm from the source code.
You can redistribute ReAsm and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. See the included file COPYING.
ReAsm is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
license for more details.
:
If you find ReAsm useful, please consider
helping the Gryphel Project ,
of which it is a part.
--------------------------------------------------------------------------------
/docs/extras/sigchktl/index.html:
--------------------------------------------------------------------------------
1 |
SigChkTl
SigChkTl
Download
SigChkTl-1.01.zip
(58K) a zipped hfs disk image and checksum file.
The disk image can be mounted with Mini vMac.
Includes source code.
SigChkTl is a command line version of
SigCheck .
It can be used in Macintosh Programmer’s Workshop to
automate checking digital signatures through out this website.
It is written to be platform independent, using the C standard library,
and would probably be easy to port to other platforms (but that is not
supported).
It takes two arguments: First, a path to a file containing
a signed message. And second, a path to a file containing a public
key, in ascii armored format.
If the signature is correctly signed, SigChkTl will return
a zero result ("{status}" in MPW). Otherwise the result
will be non-zero.
SigChkTl is in part descended from MacPGP source code, which, as far as
I can tell, allows derived works for noncommercial use.
Here is the md5 checksum for the download, signed with
Gryphel Key 5 :
--------- GRY SIGNED TEXT ---------
ff5ae9d24788cbe4ed821d3ab52c9cfd SigChkTl-1.01.zip
------- BEGIN GRY SIGNATURE -------
Gry/4Xa8CFcUzxdN/H9iEmRVaYKIOk5+LVbSgVo/cGdjvjs7CiPbr/q6A4BuDvQe
1JWNhIWY9F2EOGlGwoCIi2JwSrWNtFENSEfBHP1bNKGUTZt5iGq+NtxwlECFc99G
JX7hkSrHKXZtwf12qpXym9KOfSnhBHbhMcoZKYk31DuRwgPoMhn3TKwNWisd/i0G
-------- END GRY SIGNATURE --------
:
If you find SigChkTl useful, please consider
helping the Gryphel Project ,
of which it is a part.
--------------------------------------------------------------------------------
/docs/extras/sigwrttl/index.html:
--------------------------------------------------------------------------------
1 |
SigWrtTl
SigWrtTl
Download
SigWrtTl-1.01.zip
(57K) a zipped hfs disk image and checksum file.
The disk image can be mounted with Mini vMac.
Includes source code.
SigWrtTl is a command line version of
SigWrite .
It can be used in Macintosh Programmer’s Workshop to
automate creating digital signatures.
It is written to be platform independent, using the C standard library,
and would probably be easy to port to other platforms (but that is not
supported).
It takes three arguments: First, a path to a file contained
a message to be signed. Second, a path to a file containing a secret
key, in ascii armored format.
And third, a path to a new output file in which to put the signed message.
SigWrtTl is in part descended from MacPGP source code, which, as far as
I can tell, allows derived works for noncommercial use.
Here is the md5 checksum for the download, signed with
Gryphel Key 5 :
--------- GRY SIGNED TEXT ---------
757a695fde185fceb6131d5e65276282 SigWrtTl-1.01.zip
------- BEGIN GRY SIGNATURE -------
Gry/4Xa8CFcUzxdN/NR+XtA5N7yDydifGmerpis7tA3FX2zcFzrUee9aUXkb17ja
iWhLoLm9u7k5V9s74ebYnRO8U/Yck+C6BXvqH4nP37ceffA/YodO1I+h9HfrjsF4
BAs8mjOD45JvfwpB67ol4smVWzyV00QBaVmPlPLv3MyybSVpaQZ3jNSEcp06wV5M
-------- END GRY SIGNATURE --------
:
If you find SigWrtTl useful, please consider
helping the Gryphel Project ,
of which it is a part.
--------------------------------------------------------------------------------
/docs/extras/sitpack/index.html:
--------------------------------------------------------------------------------
1 |
sitPack
sitPack
Download
sitpack-1.0.0.zip
(64K) a zipped hfs disk image and checksum file.
The disk image can be mounted with Mini vMac.
Includes source code.
sitPack is an application to pack files and folders into
uncompressed ".sit" format.
The main thing gained by implementing this was to
learn how to customize the open file dialog
to allow selecting folders. (With help from Apple
sample code and sample code from
Disinfectant.)
Here is the md5 checksum for the download, signed with
Gryphel Key 5 :
--------- GRY SIGNED TEXT ---------
b49f7a412037622ab3121da1e7e8a500 sitpack-1.0.0.zip
------- BEGIN GRY SIGNATURE -------
Gry/4Xa8CFcUzxdN/AWWrSW4IQcZtgwF8f6IDIMc7ctgkmUza/3rLlpiblpktgRk
T1l8TQkJBj0DpjtVricSX11pZMK4Ya8BnBBWFZWb7sS13xk4vLrkhMxLpjKaOy2/
OS8p3mDLl+axDUQ47ZkfKBMMNUemnYWMN8k5JLCto539dunXb/J7XWqxRIbRRH9T
-------- END GRY SIGNATURE --------
See the
Compiling
page for instructions on compiling sitPack from the source code.
You can redistribute sitPack and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. See the included file COPYING.
sitPack is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
license for more details.
:
If you find sitPack useful, please consider
helping the Gryphel Project ,
of which it is a part.
--------------------------------------------------------------------------------
/docs/happy-mac-options.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/docs/happy-mac-options.png
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | µvMac - early Macintosh emulator
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | µvMac
16 | An emulator for early (68000-based) Macintoshes
17 |
18 |
19 |
20 |
21 |
22 | Summary: µvMac (micro vMac) is an emulator allows modern computers
23 | to run software made for early Macintosh
24 | computers, the computers that Apple sold from 1984 to 1996
25 | based upon Motorola's 680x0 microprocessors.
26 | This is a fork of Mini vMac, maintained by
27 | InvisibleUp . The original page for Mini
28 | vMac is hosted at gryphel.com .
29 |
30 |
31 |
32 |
33 | What it looks like. For example, a Macintosh Plus running System 7.5.5:
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | How to Use
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 | Development reference
52 |
53 |
54 | Compile options (obsolete, for dev reference only)
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/docs/macii.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/docs/macii.png
--------------------------------------------------------------------------------
/docs/macplus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/docs/macplus.png
--------------------------------------------------------------------------------
/docs/norom-mockup.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/docs/norom-mockup.gif
--------------------------------------------------------------------------------
/docs/ports.html:
--------------------------------------------------------------------------------
1 |
Mini vMac Ports
Mini vMac
Ports
On the main Mini vMac
download
page I provide versions of Mini vMac
compiled for several platforms.
Other people have ported Mini vMac
to other platforms. I've listed
the ports that I know of on this
page below.
Note that I don't maintain these ports,
and can not help you with them.
If you port Mini vMac to another platform,
please let
me
know.
Android
port by Gil Osher
iOS
port by
“zydeco”
Nintendo 3DS
port by Tara Keeling
Windows RT
compiled by maintainer of “Windows ARM” website
Pocket PC
port by Fabio Concas
Solaris 10
(SPARC and x86)
packages by Luc Pauwels
:
Next - Localization
--------------------------------------------------------------------------------
/docs/recipes/brsys7in/p2.html:
--------------------------------------------------------------------------------
1 |
British System 7.0.1 install images - Recipe for Mini vMac, Page 2
British System 7.0.1 install images
Recipe for Mini vMac, Page 2
Previous Page
:
Launch the "ImportFl" application, such as by double clicking on its icon.
...
Import the file "Disk_Tools.image.sea.bin", such as by dragging
the icon of the file onto the Mini vMac window.
Click the "Drive" button to switch to the "Untitled" disk.
...
Click the "Save" button to save the imported archive to the "Untitled" disk.
...
Choose "Quit" from the "File" menu.
...
:
Next Page
--------------------------------------------------------------------------------
/docs/recipes/brsys7in/p3.html:
--------------------------------------------------------------------------------
1 |
British System 7.0.1 install images - Recipe for Mini vMac, Page 3
British System 7.0.1 install images
Recipe for Mini vMac, Page 3
Previous Page
:
Click in "Page Up" area to scroll to the top of the "Untitled" window.
...
Launch the "binUnpk" application, such as by double clicking on its icon.
...
Choose "Open" from the "File" menu.
Click the "Drive" button to switch to the "Untitled" disk.
...
Select the archive file.
Click the "Open" button.
...
:
Next Page
--------------------------------------------------------------------------------
/docs/recipes/brsys7in/p4.html:
--------------------------------------------------------------------------------
1 |
British System 7.0.1 install images - Recipe for Mini vMac, Page 4
British System 7.0.1 install images
Recipe for Mini vMac, Page 4
Previous Page
:
Click the "Save" button.
...
Choose "Quit" from the "File" menu.
...
Launch the Self Extracting Image (".sea) application, such as by double clicking on its icon.
...
Click the "Continue" button.
...
Click the "Save" button.
...
...
:
Next Page
--------------------------------------------------------------------------------
/docs/recipes/brsys7ut/p2.html:
--------------------------------------------------------------------------------
1 |
British System 7.0.1 utility disk - Recipe for Mini vMac, Page 2
British System 7.0.1 utility disk
Recipe for Mini vMac, Page 2
Previous Page
:
Click to select "System Software for any Macintosh".
Click the "Install" button.
...
...
...
...
Click the "Quit" button.
...
Choose "Restart" from the "Special" menu.
...
:
Next Page
--------------------------------------------------------------------------------
/docs/recipes/brsys7ut/p3.html:
--------------------------------------------------------------------------------
1 |
British System 7.0.1 utility disk - Recipe for Mini vMac, Page 3
British System 7.0.1 utility disk
Recipe for Mini vMac, Page 3
Previous Page
:
Mount again the "004M.dsk" image in Mini vMac.
Double click on the "Untitled" icon to open it.
...
Click in the zoom box in the upper right of the "Untitled" window to resize it.
...
Select the icons "Teach Text" and "Read Me", by dragging a rectangle around them.
...
...
Drag the selected icons to the "Wastebasket" (What the
"Trash" is called in the British version).
...
...
:
Next Page
--------------------------------------------------------------------------------
/docs/recipes/brsys7ut/p4.html:
--------------------------------------------------------------------------------
1 |
British System 7.0.1 utility disk - Recipe for Mini vMac, Page 4
British System 7.0.1 utility disk
Recipe for Mini vMac, Page 4
Previous Page
:
Choose "Empty Wastebasket..." from the "Special" menu.
...
Click the "OK" button.
...
Resize the "Untitled" window.
...
Mount the image file "Sys6Util", such as by dragging
the icon of the image onto the Mini vMac window.
Drag "Sys6Util" window lower.
...
...
:
Next Page
--------------------------------------------------------------------------------
/docs/recipes/index.html:
--------------------------------------------------------------------------------
1 |
Recipes for Mini vMac
Recipes
for Mini vMac
These recipes assume you have read the
Getting started with Mini vMac
page,
and have the Mini vMac application
(the standard variation version that is appropriate for your operating system),
a ROM image from a Macintosh Plus, and System 6.0.8 install disk images.
System 6 utility disk
Wrapped Lunar Phantom game
British System 7.0.1 install images
British System 7.0.1 utility disk
System 7.0.1 install images
System 7 Tune-Up install image
:
If you find these recipes useful, please consider
helping the Gryphel Project ,
of which it is a part.
Next - Mini vMac User Interface
--------------------------------------------------------------------------------
/docs/recipes/lnrphntm/index.html:
--------------------------------------------------------------------------------
1 |
Wrapped Lunar Phantom - Recipe for Mini vMac
Wrapped Lunar Phantom
Recipe for Mini vMac
Quick Summary
Install the game "Lunar Phantom" into a bootable
disk image with "AutoQuit". This "wraps" the application,
so that it can be used more as you would a native
application.
Ingredients
The "Sys6Util.dsk" disk image file, from the
"System 6 utility disk recipe ".
The "Blanks " collection.
The "AutoQuit " disk image.
The "Lunar Phantom " disk image.
Start
Launch Mini vMac
Mount the image file "Sys6Util"
Unzip the file "1440K.zip" from the
Blanks collection.
Mount the resulting "1440K.dsk" image in Mini vMac.
Open the "Untitled" disk, such as by double clicking on its icon.
...
Make the "Untitled" window larger.
...
...
Drag the "Untitled" window lower.
...
...
:
Next Page
--------------------------------------------------------------------------------
/docs/recipes/lnrphntm/p2.html:
--------------------------------------------------------------------------------
1 |
Wrapped Lunar Phantom - Recipe for Mini vMac, Page 2
Wrapped Lunar Phantom
Recipe for Mini vMac, Page 2
Previous Page
:
Drag the "System Folder" icon onto the "Untitled" disk icon.
(This copies the "System Folder" to the "Untitled" disk image, and automatically
places the icon in a good place in the "Untitled" window.)
...
...
...
Mount "AutoQuit " disk image.
Drag the "AutoQuit" application icon onto the Untitled disk icon.
...
...
Start renaming the duplicate "AutoQuit" application by clicking
on the icon name.
...
:
Next Page
--------------------------------------------------------------------------------
/docs/recipes/lnrphntm/p3.html:
--------------------------------------------------------------------------------
1 |
Wrapped Lunar Phantom - Recipe for Mini vMac, Page 3
Wrapped Lunar Phantom
Recipe for Mini vMac, Page 3
Previous Page
:
Type the new name exactly - "Finder". (Six characters, don't
type the quotes.)
Type the "return" key to finish renaming.
Drag this "Finder" icon onto the "System Folder" icon.
This will replace the "Finder" that is already in the
"System Folder". You will be asked if you really want to
do this. (If you are not asked, then you didn't name
the replacement exactly to "Finder".)
...
...
Click the "OK" button.
...
Drag the "AutoQuit" disk icon to the trash to eject the disk image.
...
...
:
Next Page
--------------------------------------------------------------------------------
/docs/recipes/lnrphntm/p4.html:
--------------------------------------------------------------------------------
1 |
Wrapped Lunar Phantom - Recipe for Mini vMac, Page 4
Wrapped Lunar Phantom
Recipe for Mini vMac, Page 4
Previous Page
:
Mount "Lunar Phantom " disk image.
Drag the "Lunar Phantom 1.0" application icon onto the Untitled disk icon.
...
...
Drag the "Lunar_Phantom" disk icon to the trash to eject the disk image.
...
...
Click in "Page Left" area.
...
...
:
Next Page
--------------------------------------------------------------------------------
/docs/recipes/sys6util/p2.html:
--------------------------------------------------------------------------------
1 |
System 6 utility disk - Recipe for Mini vMac, Page 2
System 6 utility disk
Recipe for Mini vMac, Page 2
Previous Page
:
Hold down the shift key, and click to add
"32-Bit QuickDraw".
(Without this, color won't work in System 6, in the
current state of Mini vMac Mac II emulation).
Click the "Install" button.
...
...
Click the "Quit" button.
...
Choose "Restart" from the "Special" menu.
...
Mount the "Sys6Util" disk image.
Double click on the "Sys6Util" icon to open it.
:
Next Page
--------------------------------------------------------------------------------
/docs/recipes/sys6util/p3.html:
--------------------------------------------------------------------------------
1 |
System 6 utility disk - Recipe for Mini vMac, Page 3
System 6 utility disk
Recipe for Mini vMac, Page 3
Previous Page
:
Make the "Sys6Util" window larger.
...
...
Choose "Clean Up Window" from the "Special" menu.
...
Click in "Page Up" area to scroll to top.
...
Click in "Page Left" area.
...
:
Next Page
--------------------------------------------------------------------------------
/docs/recipes/sys6util/p4.html:
--------------------------------------------------------------------------------
1 |
System 6 utility disk - Recipe for Mini vMac, Page 4
System 6 utility disk
Recipe for Mini vMac, Page 4
Previous Page
:
Drag "Sys6Util" window to bottom half of screen.
...
...
Mount "ImportFl " disk image.
Drag "ImportFl" application icon on Sys6Util disk icon.
(This copies the "ImportFl" application to the "Sys6Util" disk image, and automatically
places the icon in a good place in the "Sys6Util" window.)
...
...
...
Drag "ImportFl" disk icon to the trash to eject the disk image.
...
...
...
:
Next Page
--------------------------------------------------------------------------------
/docs/recipes/sys7inst/p2.html:
--------------------------------------------------------------------------------
1 |
System 7.0.1 install images - Recipe for Mini vMac, Page 2
System 7.0.1 install images
Recipe for Mini vMac, Page 2
Previous Page
:
Click the "Save" button.
...
Choose "Quit" from the "File" menu.
...
Open the "Untitled" disk, such as by double clicking on its icon.
...
Drag the "System_7.0.1.smi.bin" icon onto the "binUnpk" application icon.
...
...
Click the "Desktop" button.
...
:
Next Page
--------------------------------------------------------------------------------
/docs/recipes/sys7inst/p3.html:
--------------------------------------------------------------------------------
1 |
System 7.0.1 install images - Recipe for Mini vMac, Page 3
System 7.0.1 install images
Recipe for Mini vMac, Page 3
Previous Page
:
Double click on "Untitled".
...
Click the "Save" button.
...
Click in the zoom box in the upper right of the "Untitled" window to resize it.
...
Launch the "System_7.0.1.smi" application, such as by double clicking on its icon.
...
:
Next Page
--------------------------------------------------------------------------------
/docs/recipes/sys7inst/p4.html:
--------------------------------------------------------------------------------
1 |
System 7.0.1 install images - Recipe for Mini vMac, Page 4
System 7.0.1 install images
Recipe for Mini vMac, Page 4
Previous Page
:
Click the "Agree" button.
...
...
Open the "7.0.1 (1440k.images)" disk, such as by double clicking on its icon.
...
Drag the "7.0.1 (1440k.images)" window lower.
...
...
Choose "Select All" from the "Edit" menu.
...
:
Next Page
--------------------------------------------------------------------------------
/docs/recipes/sys7tnin/p2.html:
--------------------------------------------------------------------------------
1 |
System 7 Tune-Up install image - Recipe for Mini vMac, Page 2
System 7 Tune-Up install image
Recipe for Mini vMac, Page 2
Previous Page
:
Launch the "ImportFl" application, such as by double clicking on its icon.
...
Import the file "System7_Tune-Up_1.1.1.sea.bin", such as by dragging
the icon of the file onto the Mini vMac window.
Click the "Drive" button to switch to the "Untitled" disk.
...
Click the "Save" button to save the imported archive to the "Untitled" disk.
...
Choose "Quit" from the "File" menu.
...
:
Next Page
--------------------------------------------------------------------------------
/docs/recipes/sys7tnin/p3.html:
--------------------------------------------------------------------------------
1 |
System 7 Tune-Up install image - Recipe for Mini vMac, Page 3
System 7 Tune-Up install image
Recipe for Mini vMac, Page 3
Previous Page
:
Click in "Page Up" area to scroll to the top of the "Untitled" window.
...
Launch the "binUnpk" application, such as by double clicking on its icon.
...
Choose "Open" from the "File" menu.
...
Click the "Drive" button to switch to the "Untitled" disk.
...
Select the archive file.
Click the "Open" button.
...
:
Next Page
--------------------------------------------------------------------------------
/docs/recipes/sys7tnin/p4.html:
--------------------------------------------------------------------------------
1 |
System 7 Tune-Up install image - Recipe for Mini vMac, Page 4
System 7 Tune-Up install image
Recipe for Mini vMac, Page 4
Previous Page
:
Click the "Save" button.
...
Choose "Quit" from the "File" menu.
...
Launch the Self Extracting Image (".sea) application, such as by double clicking on its icon.
...
Click the "Save" button.
...
...
Launch the "ExportFl" application, such as by double clicking on its icon.
...
:
Next Page
--------------------------------------------------------------------------------
/docs/screens/index.html:
--------------------------------------------------------------------------------
1 |
Mini vMac Screenshots
Mini vMac
Screenshots
All screenshots are of windowed mode. Full Screen mode
looks the same in all versions.
Some computer monitors have trouble displaying the 50 percent
gray pattern commonly used on old Macintosh computers and seen in these
screenshots. The Magnify mode of Mini vMac helps to alleviate
this problem.
Host OS: Macintosh OS X v10.6 Snow Leopard
Emulated: Macintosh System Software 6.0.8
(This copy of Snow Leopard for Mini vMac development
was
sponsored
by
ClockWise
of
E-Maculation .)
Host OS: Microsoft Windows 7
Emulated: HeartQuest 1.1 by Ingemar Ragnemalm, listed on the
arcade games
page
(This copy of Windows 7 for Mini vMac development
was
sponsored
by
Andrew Johnstone.
It is running in VMware Fusion 3, sponsored by Pedro Maciel, Greg Lee,
and ClockWise.)
Host OS: Linux - Ubuntu 8.04 LTS (Hardy Heron)
Emulated: Lunar Phantom 1.0 by Rolf Staflin, listed on the
arcade games
page
More Screenshots
:
Next - Testimonials
Or skip to - Download Mini vMac
--------------------------------------------------------------------------------
/docs/screens/more.html:
--------------------------------------------------------------------------------
1 |
More Mini vMac Screenshots
More Mini vMac
Screenshots
Here are some additional Mini vMac screenshots. The latest screenshots
are back on the main
Mini vMac screenshots
page.
Host OS: Macintosh OS X, 10.3.4
Emulated: System Software 7.5.5 is the last version that will run
on the Macintosh Plus.
Host OS: Microsoft Windows XP
Emulated: Continuum by Randall H. Wilson and Brian Wilson
is listed on the
arcade games
page.
Host OS: Red Hat Linux 9
Emulated: MacAstro by Nicolas Mercouroff
is listed on the
Astronomy
page.
This screenshot was edited, since that was easier
than figuring out how to set the screen resolution
to 640 by 480.
Host OS: Macintosh OS 9.2.2
Emulated: "The Fool's Errand" by Cliff Johnson
is listed on the
other games
page.
Host OS: Microsoft Windows 98 Second Edition
Emulated: Space Station Pheta 2.7 by T&T Software, listed on the
other games
page
Host OS: Macintosh System 7.5.5
Emulated: Macintosh System Software 1.1 (System 3.2 / Finder 5.3).
--------------------------------------------------------------------------------
/extras/mydriver/disk/README.txt:
--------------------------------------------------------------------------------
1 | Mini vMac: mydriver/README
2 | Paul C. Pratt
3 | www.gryphel.com
4 | February 23, 2002
5 |
6 | The mydriver folder contains source code
7 | for a replacement disk driver that is patched
8 | into the emulated rom.
9 |
10 | The compiled driver is already in ROMEMDEV.c
11 | (the initialization of sony_driver variable),
12 | so this source code is not needed for building
13 | Mini vMac. It is only needed if you want
14 | to change this driver.
15 |
16 | To compile the driver, use MPW commands
17 | such as:
18 |
19 | set srcdir hd4:Topaz:MinivMac:mydriver:
20 | asm -case on {srcdir}mydriver.a -o {srcdir}mydriver.a.o
21 | c {srcdir}mydriver.c -r -b -mbg off -opt full -o {srcdir}mydriver.c.o
22 | link {srcdir}mydriver.a.o {srcdir}mydriver.c.o -rt DRVR=128 -o {srcdir}mydriver
23 |
24 | Then you can use ResEdit to copy the hex data out
25 | of the DRVR 128 resource, format it a bit, and
26 | replace the initialization data of the variable
27 | sony_driver in the file ROMEMDEV.c
28 |
29 | (note: this is using the old c compiler, to use
30 | the current c compiler, use:
31 | SC {srcdir}mydriver.c -w 17 -proto strict -b -mbg off -opt all -o {srcdir}mydriver.c.o
32 | )
33 |
--------------------------------------------------------------------------------
/extras/trans.txt:
--------------------------------------------------------------------------------
1 | # Some source files are simple transformations of other source
2 | # files. Here are some MPW scripts to help keep them in sync.
3 |
4 | Set x "rd:t1.txt"
5 |
6 |
7 | Catenate "{project_d}"data:src:VIAEMDEV.c > "{x}"
8 | Open "{x}"
9 | Set CaseSensitive 1
10 | Find � "{x}"
11 | Replace -c � /'VIA1'/ 'VIA2' "{x}"
12 | Find � "{x}"
13 | Replace -c � /'VIAEMDEV'/ 'VIA2EMDV' "{x}"
14 | Find � "{x}"
15 | Replace -c � /'0x04'([0-9A-FX][0-9A-FX])�1/ '0x05'�1 "{x}"
16 | Unset SearchType
17 |
18 | Compare "{project_d}"data:src:VIA2EMDV.c "{x}"
19 |
20 |
21 | Catenate "{project_d}"data:src:VIA2EMDV.c > "{x}"
22 | Open "{x}"
23 | Set CaseSensitive 1
24 | Find � "{x}"
25 | Replace -c � /'VIA2EMDV'/ 'VIAEMDEV' "{x}"
26 | Find � "{x}"
27 | Replace -c � /'VIA2'/ 'VIA1' "{x}"
28 | Find � "{x}"
29 | Replace -c � /'0x05'([0-9A-FX][0-9A-FX])�1/ '0x04'�1 "{x}"
30 | Unset SearchType
31 |
32 | Compare "{project_d}"data:src:VIAEMDEV.c "{x}"
33 |
--------------------------------------------------------------------------------
/gfx/bootdlg/base.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/gfx/bootdlg/base.png
--------------------------------------------------------------------------------
/gfx/bootdlg/model.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/gfx/bootdlg/model.png
--------------------------------------------------------------------------------
/gfx/bootdlg/model_se30.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/gfx/bootdlg/model_se30.png
--------------------------------------------------------------------------------
/gfx/bootdlg/start.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/gfx/bootdlg/start.png
--------------------------------------------------------------------------------
/gfx/norom/norom-0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/gfx/norom/norom-0.png
--------------------------------------------------------------------------------
/gfx/norom/norom-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/gfx/norom/norom-1.png
--------------------------------------------------------------------------------
/gfx/norom/norom-mockup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/gfx/norom/norom-mockup.png
--------------------------------------------------------------------------------
/gfx/norom/norom.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/gfx/norom/norom.gif
--------------------------------------------------------------------------------
/rsrc/HAPPYMAC/aside.xbm:
--------------------------------------------------------------------------------
1 | #define HMAC_ASIDE_WIDTH 16
2 | #define HMAC_ASIDE_HEIGHT 10
3 | static unsigned char HMAC_ASIDE_BITS[] = {
4 | 0x00, 0x00,
5 | 0x39, 0x38,
6 | 0x21, 0x20,
7 | 0x01, 0x00,
8 | 0x01, 0x00,
9 | 0x03, 0x00,
10 | 0x00, 0x00,
11 | 0x00, 0x00,
12 | 0x07, 0x80,
13 | 0x00, 0x00
14 | };
--------------------------------------------------------------------------------
/rsrc/HAPPYMAC/cheese.xbm:
--------------------------------------------------------------------------------
1 | #define HMAC_CHEESE_WIDTH 16
2 | #define HMAC_CHEESE_HEIGHT 10
3 | static unsigned char HMAC_CHEESE_BITS[] = {
4 | 0x10, 0x10,
5 | 0x28, 0x28,
6 | 0x00, 0x00,
7 | 0x00, 0x00,
8 | 0x3F, 0xF8,
9 | 0x20, 0x08,
10 | 0x20, 0x08,
11 | 0x20, 0x08,
12 | 0x10, 0x10,
13 | 0x0F, 0xE0,
14 | };
--------------------------------------------------------------------------------
/rsrc/HAPPYMAC/evil.xbm:
--------------------------------------------------------------------------------
1 | #define HMAC_EVIL_WIDTH 16
2 | #define HMAC_EVIL_HEIGHT 10
3 | static unsigned char HMAC_EVIL_BITS[] = {
4 | 0x00, 0x00,
5 | 0x10, 0x10,
6 | 0x08, 0x20,
7 | 0x0C, 0x60,
8 | 0x00, 0x00,
9 | 0x20, 0x08,
10 | 0x20, 0x08,
11 | 0x1F, 0xF0,
12 | 0x00, 0x00,
13 | 0x00, 0x00
14 | };
--------------------------------------------------------------------------------
/rsrc/HAPPYMAC/horror.xbm:
--------------------------------------------------------------------------------
1 | #define HMAC_HORROR_WIDTH 16
2 | #define HMAC_HORROR_HEIGHT 10
3 | static unsigned char HMAC_HORROR_BITS[] = {
4 | 0x38, 0x38,
5 | 0x44, 0x44,
6 | 0x44, 0x44,
7 | 0x44, 0x44,
8 | 0x38, 0x38,
9 | 0x03, 0x80,
10 | 0x03, 0x80,
11 | 0x03, 0x80,
12 | 0x03, 0x80,
13 | 0x03, 0x80
14 | };
--------------------------------------------------------------------------------
/rsrc/HAPPYMAC/lady.xbm:
--------------------------------------------------------------------------------
1 | #define HMAC_LADY_WIDTH 16
2 | #define HMAC_LADY_HEIGHT 10
3 | static unsigned char HMAC_LADY_BITS[] = {
4 | 0x38, 0x38,
5 | 0x45, 0x44,
6 | 0x55, 0x54,
7 | 0x45, 0x44,
8 | 0x39, 0x38,
9 | 0x03, 0x00,
10 | 0x00, 0x00,
11 | 0x00, 0x00,
12 | 0x07, 0x80,
13 | 0x03, 0x00
14 | };
--------------------------------------------------------------------------------
/rsrc/HAPPYMAC/moustache.xbm:
--------------------------------------------------------------------------------
1 | #define HMAC_MOUSTACHE_WIDTH 16
2 | #define HMAC_MOUSTACHE_HEIGHT 10
3 | static unsigned char HMAC_MOUSTACHE_BITS[] = {
4 | 0x00, 0x00,
5 | 0x11, 0x10,
6 | 0x11, 0x10,
7 | 0x01, 0x00,
8 | 0x01, 0x00,
9 | 0x03, 0x00,
10 | 0x1F, 0xE0,
11 | 0x00, 0x00,
12 | 0x08, 0x40,
13 | 0x07, 0x80
14 | };
--------------------------------------------------------------------------------
/rsrc/HAPPYMAC/nerdy.xbm:
--------------------------------------------------------------------------------
1 | #define HMAC_NERDY_WIDTH 16
2 | #define HMAC_NERDY_HEIGHT 10
3 | static unsigned char HMAC_NERDY_BITS[] = {
4 | 0x38, 0x38,
5 | 0x45, 0x45,
6 | 0xD7, 0xD6,
7 | 0x45, 0x44,
8 | 0x39, 0x38,
9 | 0x03, 0x00,
10 | 0x00, 0x00,
11 | 0x00, 0x00,
12 | 0x0F, 0xC0,
13 | 0x00, 0x00
14 | };
--------------------------------------------------------------------------------
/rsrc/HAPPYMAC/pirate.xbm:
--------------------------------------------------------------------------------
1 | #define HMAC_PIRATE_WIDTH 16
2 | #define HMAC_PIRATE_HEIGHT 10
3 | static unsigned char HMAC_PIRATE_BITS[] = {
4 | 0x00, 0x81,
5 | 0x00, 0x7E,
6 | 0x11, 0x7E,
7 | 0x11, 0x3C,
8 | 0x01, 0x3C,
9 | 0x01, 0x18,
10 | 0x03, 0x00,
11 | 0x00, 0x00,
12 | 0x08, 0x40,
13 | 0x07, 0x80
14 | };
--------------------------------------------------------------------------------
/rsrc/HAPPYMAC/sleepy.xbm:
--------------------------------------------------------------------------------
1 | #define HMAC_SLEEPY_WIDTH 16
2 | #define HMAC_SLEEPY_HEIGHT 10
3 | static unsigned char HMAC_SLEEPY_BITS[] = {
4 | 0x00, 0x00,
5 | 0x1C, 0x70,
6 | 0x22, 0x88,
7 | 0x00, 0x00,
8 | 0x1C, 0x70,
9 | 0x08, 0x20,
10 | 0x00, 0x00,
11 | 0x00, 0x00,
12 | 0x03, 0x80,
13 | 0x00, 0x00
14 | };
--------------------------------------------------------------------------------
/rsrc/HAPPYMAC/sly.xbm:
--------------------------------------------------------------------------------
1 | #define HMAC_SLY_WIDTH 16
2 | #define HMAC_SLY_HEIGHT 10
3 | static unsigned char HMAC_SLY_BITS[] = {
4 | 0x00, 0x00,
5 | 0x08, 0x20,
6 | 0x14, 0x50,
7 | 0x00, 0x00,
8 | 0x00, 0x00,
9 | 0x20, 0x08,
10 | 0x3F, 0xF8,
11 | 0x00, 0x00,
12 | 0x00, 0x00,
13 | 0x00, 0x00
14 | };
--------------------------------------------------------------------------------
/rsrc/HAPPYMAC/sunglasses.xbm:
--------------------------------------------------------------------------------
1 | #define HMAC_SUNGLASSES_WIDTH 16
2 | #define HMAC_SUNGLASSES_HEIGHT 10
3 | static unsigned char HMAC_SUNGLASSES_BITS[] = {
4 | 0x00, 0x00,
5 | 0xFF, 0xFE,
6 | 0x7D, 0x7C,
7 | 0x7D, 0x7C,
8 | 0x39, 0x38,
9 | 0x03, 0x00,
10 | 0x00, 0x00,
11 | 0x1F, 0xF0,
12 | 0x00, 0x00,
13 | 0x00, 0x00
14 | };
--------------------------------------------------------------------------------
/rsrc/HAPPYMAC/surprise.xbm:
--------------------------------------------------------------------------------
1 | #define HMAC_SURPRISE_WIDTH 16
2 | #define HMAC_SURPRISE_HEIGHT 10
3 | static unsigned char HMAC_SURPRISE_BITS[] = {
4 | 0x1C, 0x70,
5 | 0x22, 0x88,
6 | 0x41, 0x04,
7 | 0x49, 0x24,
8 | 0x41, 0x04,
9 | 0x22, 0x88,
10 | 0x1C, 0x70,
11 | 0x01, 0x00,
12 | 0x03, 0x80,
13 | 0x03, 0x80
14 | };
--------------------------------------------------------------------------------
/rsrc/HAPPYMAC/tongue.xbm:
--------------------------------------------------------------------------------
1 | #define HMAC_TONGUE_WIDTH 16
2 | #define HMAC_TONGUE_HEIGHT 10
3 | static unsigned char HMAC_TONGUE_BITS[] = {
4 | 0x00, 0x00,
5 | 0x1E, 0x78,
6 | 0x00, 0x00,
7 | 0x00, 0x00,
8 | 0x20, 0x04,
9 | 0x3F, 0xFC,
10 | 0x05, 0x40,
11 | 0x05, 0x40,
12 | 0x04, 0x40,
13 | 0x03, 0x80
14 | };
--------------------------------------------------------------------------------
/rsrc/HAPPYMAC/yuck.xbm:
--------------------------------------------------------------------------------
1 | #define HMAC_YUCK_WIDTH 16
2 | #define HMAC_YUCK_HEIGHT 10
3 | static unsigned char HMAC_YUCK_BITS[] = {
4 | 0x00, 0x00,
5 | 0x18, 0x30,
6 | 0x04, 0x40,
7 | 0x02, 0x80,
8 | 0x00, 0x00,
9 | 0x00, 0x00,
10 | 0x1F, 0xF0,
11 | 0x15, 0x50,
12 | 0x04, 0x40,
13 | 0x03, 0x80
14 | };
--------------------------------------------------------------------------------
/rsrc/HAPPYMAC/zombie.xbm:
--------------------------------------------------------------------------------
1 | #define HMAC_ZOMBIE_WIDTH 16
2 | #define HMAC_ZOMBIE_HEIGHT 10
3 | static unsigned char HMAC_ZOMBIE_BITS[] = {
4 | 0x70, 0x7C,
5 | 0x88, 0x82,
6 | 0x88, 0x8A,
7 | 0xA8, 0x8A,
8 | 0x70, 0x82,
9 | 0x00, 0x42,
10 | 0x00, 0x3C,
11 | 0x1E, 0x00,
12 | 0x3F, 0x00,
13 | 0x3F, 0x00
14 | };
--------------------------------------------------------------------------------
/rsrc/SONYDRV.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/rsrc/SONYDRV.bin
--------------------------------------------------------------------------------
/rsrc/SONYICO.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/rsrc/SONYICO.bin
--------------------------------------------------------------------------------
/rsrc/WIN32/ICONAPPW.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/rsrc/WIN32/ICONAPPW.ico
--------------------------------------------------------------------------------
/rsrc/WIN32/ICONDSKW.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/rsrc/WIN32/ICONDSKW.ico
--------------------------------------------------------------------------------
/rsrc/WIN32/ICONROMW.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/rsrc/WIN32/ICONROMW.ico
--------------------------------------------------------------------------------
/rsrc/WIN32/app.manifest:
--------------------------------------------------------------------------------
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 | true
33 | system
34 |
35 |
36 |
--------------------------------------------------------------------------------
/rsrc/WIN32/main.rc:
--------------------------------------------------------------------------------
1 | #include "winresrc.h"
2 |
3 | LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
4 |
5 | // Application manifest
6 | CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "app.manifest"
7 |
8 | // Icons
9 | ICO_APP ICON DISCARDABLE "ICONAPPW.ico"
10 | ICO_DSK ICON DISCARDABLE "ICONDSKW.ico"
11 | ICO_ROM ICON DISCARDABLE "ICONROMW.ico"
12 |
13 | // Binary data
14 | SONY_DRV RCDATA "../SONYDRV.bin"
15 | SONY_ICO RCDATA "../SONYICO.bin"
16 |
17 | // Version information
18 | VS_VERSION_INFO VERSIONINFO
19 | FILEVERSION 0,37,0,0
20 | PRODUCTVERSION 0,37,0,0
21 | FILESUBTYPE 0
22 | BEGIN
23 | BLOCK "StringFileInfo"
24 | BEGIN
25 | BLOCK "040904E4"
26 | BEGIN
27 | VALUE "CompanyName", "InvisibleUp\0"
28 | VALUE "Comments", ""
29 | VALUE "FileDescription", "A 68k Macintosh emulator\0"
30 | VALUE "FileVersion", "v0.37.0\0"
31 | VALUE "InternalName", "microvmac\0"
32 | VALUE "LegalCopyright", "(c)1996-2023 various contributors. Licensed under the GPL v2.\0"
33 | VALUE "OriginalFilename", "microvmac.exe\0"
34 | VALUE "ProductName", "micro vMac\0"
35 | VALUE "ProductVersion", "v0.37.0\0"
36 | END
37 | END
38 | END
39 |
--------------------------------------------------------------------------------
/rsrc/macOS/ICONAPPO.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/rsrc/macOS/ICONAPPO.icns
--------------------------------------------------------------------------------
/rsrc/macOS/ICONDSKO.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/rsrc/macOS/ICONDSKO.icns
--------------------------------------------------------------------------------
/rsrc/macOS/ICONROMO.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/InvisibleUp/uvmac/c399d9ba58390182fc2f22946219665ae3526732/rsrc/macOS/ICONROMO.icns
--------------------------------------------------------------------------------
/src/CFGMAN.h:
--------------------------------------------------------------------------------
1 | /*
2 | * CFGMAN.h
3 | *
4 | * Configuration Management
5 | *
6 | */
7 |
8 | /* Load or create config and prepare for use */
9 | #pragma once
10 | #include
11 |
12 | bool Config_TryInit();
13 |
14 | /* Check if key exists */
15 | bool Config_KeyExists(const char table[], const char key[]);
16 | /* Read a boolean */
17 | bool Config_GetBool(const char table[], const char key[], bool *value, bool defaultValue);
18 | /* Read an integer */
19 | bool Config_GetInt(const char table[], const char key[], int64_t *value, int64_t defaultValue);
20 | /* Read a double-precision floating point number */
21 | bool Config_GetFloat(const char table[], const char key[], double *value, double defaultValue);
22 | /* Read a string value */
23 | bool Config_GetString(const char table[], const char key[], char **value, const char *defaultValue);
24 |
25 | /* List of known tables and keys */
26 | #define CONFIG_SCC_REALPORT(MACPORT) "SCC_#MACPORT", "RealPort"
27 | #define CONFIG_SCC_REALPORT(MACPORT) "SCC_#MACPORT", "RealPort"
28 |
29 | #define CONFIG_VIDEO_BLACK "Video", "ColorBlack"
30 | #define CONFIG_VIDEO_WHITE "Video", "ColorWhite"
31 | #define CONFIG_VIDEO_WIDTH "Video", "Width"
32 | #define CONFIG_VIDEO_HEIGHT "Video", "Height"
33 | #define CONFIG_VIDEO_DEPTH "Video", "Depth"
34 | #define CONFIG_VIDEO_USEHACK "Video", "UseLargeScreenHack"
35 |
36 | #define DISK_PATH(NUM) "Disk", "Path#NUM"
37 |
--------------------------------------------------------------------------------
/src/ERRCODES.h:
--------------------------------------------------------------------------------
1 | /*
2 | error codes returned by Mini vMac extensions
3 | (passed back to the emulated 68k code).
4 | */
5 |
6 | #ifndef ERRCODES_H
7 | #define ERRCODES_H
8 |
9 | typedef enum MacErr {
10 | mnvm_noErr = 0x0000, /* 0 - No Error */
11 | mnvm_miscErr = 0xFFFF, /* 1 - Should probably replace these */
12 | mnvm_controlErr = 0xFFEF, /* 17 - I/O System Errors */
13 | mnvm_statusErr = 0xFFEE, /* 18 - Driver can't respond to Status call */
14 | mnvm_closErr = 0xFFE8, /* 24 - I/O System Errors */
15 | mnvm_eofErr = 0xFFD9, /* 39 - End of file */
16 | mnvm_tmfoErr = 0xFFD6, /* 42 - too many files open */
17 | mnvm_fnfErr = 0xFFD5, /* 43 - File not found */
18 | mnvm_wPrErr = 0xFFD4, /* 44 - diskette is write protected */
19 | mnvm_vLckdErr = 0xFFD2, /* 46 - volume is locked */
20 | mnvm_dupFNErr = 0xFFD0, /* 48 - duplicate filename */
21 | mnvm_opWrErr = 0xFFCF, /* 49 - file already open with with write permission */
22 | mnvm_paramErr = 0xFFCE, /* 50 - error in parameter list */
23 | mnvm_permErr = 0xFFCA, /* 54 - permissions error (on file open) */
24 | mnvm_nsDrvErr = 0xFFC8, /* 56 - No Such Drive */
25 | mnvm_wrPermErr = 0xFFC3, /* 61 - write permissions error */
26 | mnvm_offLinErr = 0xFFBF, /* 65 - off-line drive */
27 | mnvm_dirNFErr = 0xFF88, /* 120 - directory not found */
28 | mnvm_afpAccessDenied = 0xEC78, /* 5000 - Insufficient access privileges for operation */
29 | } MacErr_t;
30 |
31 | #endif // ERRCODES_H
32 |
--------------------------------------------------------------------------------
/src/HW/ADB/ADBEMDEV.h:
--------------------------------------------------------------------------------
1 | /*
2 | ADBEMDEV.h
3 |
4 | Copyright (C) 2008 Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | #ifdef ADBEMDEV_H
18 | #error "header already included"
19 | #else
20 | #define ADBEMDEV_H
21 | #endif
22 |
23 |
24 | extern void ADBstate_ChangeNtfy(void);
25 | extern void ADB_DoNewState(void);
26 | extern void ADB_DataLineChngNtfy(void);
27 | extern void ADB_Update(void);
28 |
--------------------------------------------------------------------------------
/src/HW/DISK/IWMEMDEV.h:
--------------------------------------------------------------------------------
1 | /*
2 | IWMEVDEV.h
3 |
4 | Copyright (C) 2004 Philip Cummins, Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | #ifndef IWMEVDEV_H
18 | #define IWMEVDEV_H
19 |
20 | extern void IWM_Reset(void);
21 |
22 | extern uint32_t IWM_Access(uint32_t Data, bool WriteMem, CPTR addr);
23 |
24 | #endif
--------------------------------------------------------------------------------
/src/HW/DISK/SONYEMDV.h:
--------------------------------------------------------------------------------
1 | /*
2 | HW/DISK/SONYEMDV.h
3 |
4 | Copyright (C) 2004 Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | #ifdef SONYEMDV_H
18 | #error "header already included"
19 | #else
20 | #define SONYEMDV_H
21 | #endif
22 |
23 | extern void ExtnDisk_Access(CPTR p);
24 | extern void ExtnSony_Access(CPTR p);
25 |
26 | extern void Sony_SetQuitOnEject(void);
27 |
28 | extern void Sony_EjectAllDisks(void);
29 | extern void Sony_Reset(void);
30 |
31 | extern void Sony_Update(void);
32 |
--------------------------------------------------------------------------------
/src/HW/KBRD/KBRDEMDV.h:
--------------------------------------------------------------------------------
1 | /*
2 | HW/KBRD/KBRDEMDV.h
3 |
4 | Copyright (C) 2003 Philip Cummins, Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | #ifdef KBRDEMDV_H
18 | #error "header already included"
19 | #else
20 | #define KBRDEMDV_H
21 | #endif
22 |
23 |
24 | extern void Kybd_DataLineChngNtfy(void);
25 | extern void DoKybd_ReceiveEndCommand(void);
26 | extern void DoKybd_ReceiveCommand(void);
27 | extern void KeyBoard_Update(void);
28 |
--------------------------------------------------------------------------------
/src/HW/M68K/DISAM68K.h:
--------------------------------------------------------------------------------
1 | /*
2 | DISAM68K.h
3 |
4 | Copyright (C) 2010 Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | /*
18 | DISAssemble Motorola 68K instructions.
19 | */
20 |
21 | #ifndef DIS1M68K_H
22 | #define DIS1M68K_H
23 |
24 | extern void DisasmOneOrSave(uint32_t pc);
25 | extern void m68k_WantDisasmContext(void);
26 |
27 | #endif
28 |
--------------------------------------------------------------------------------
/src/HW/M68K/FPCPEMDV.h:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/HW/M68K/MINEM68K.h:
--------------------------------------------------------------------------------
1 | /*
2 | MINEM68K.h
3 |
4 | Copyright (C) 2004 Bernd Schmidt, Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | #ifndef MINEM68K_H
18 | #define MINEM68K_H
19 |
20 | extern void MINEM68K_Init(
21 | uint8_t *fIPL);
22 | #if SmallGlobals
23 | extern void MINEM68K_ReserveAlloc(void);
24 | #endif
25 |
26 | extern void m68k_IPLchangeNtfy(void);
27 | extern void DiskInsertedPsuedoException(CPTR newpc, uint32_t data);
28 | extern void m68k_reset(void);
29 |
30 | extern int32_t GetCyclesRemaining(void);
31 | extern void SetCyclesRemaining(int32_t n);
32 |
33 | extern void m68k_go_nCycles(uint32_t n);
34 |
35 | /*
36 | general purpose access of address space
37 | of emulated computer. (memory and
38 | memory mapped hardware.)
39 | */
40 |
41 | extern uint8_t get_vm_byte(CPTR addr);
42 | extern uint16_t get_vm_word(CPTR addr);
43 | extern uint32_t get_vm_long(CPTR addr);
44 |
45 | extern void put_vm_byte(CPTR addr, uint8_t b);
46 | extern void put_vm_word(CPTR addr, uint16_t w);
47 | extern void put_vm_long(CPTR addr, uint32_t l);
48 |
49 | extern void SetHeadATTel(ATTep p);
50 | extern ATTep FindATTel(CPTR addr);
51 |
52 | #endif
53 |
--------------------------------------------------------------------------------
/src/HW/MOUSE/MOUSEMDV.c:
--------------------------------------------------------------------------------
1 | /*
2 | MOUSEMDV.c
3 |
4 | Copyright (C) 2006 Philip Cummins, Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | /*
18 | MOUSe EMulated DeVice
19 |
20 | Emulation of the mouse in the Mac Plus.
21 |
22 | This code descended from "Mouse-MacOS.c" in Richard F. Bannister's
23 | Macintosh port of vMac, by Philip Cummins.
24 | */
25 |
26 | #ifndef AllFiles
27 | #include "SYSDEPNS.h"
28 | #include "UI/MYOSGLUE.h"
29 | #include "UTIL/ENDIANAC.h"
30 | #include "EMCONFIG.h"
31 | #include "GLOBGLUE.h"
32 | #include "HW/SCC/SCCEMDEV.h"
33 | #include "HW/M68K/MINEM68K.h"
34 | #endif
35 |
36 | #include "HW/MOUSE/MOUSEMDV.h"
37 |
38 | void Mouse_Update(void)
39 | {
40 | #if HaveMasterEvtQLock
41 | if (0 != MasterEvtQLock) {
42 | --MasterEvtQLock;
43 | }
44 | #endif
45 |
46 | /*
47 | Check mouse position first. After mouse button or key event,
48 | can't process another mouse position until following tick,
49 | otherwise button or key will be in wrong place.
50 | */
51 |
52 | /*
53 | if start doing this too soon after boot,
54 | will mess up memory check
55 | */
56 | if (Mouse_Enabled()) {
57 | EvtQEl *p;
58 |
59 | if (
60 | #if HaveMasterEvtQLock
61 | (0 == MasterEvtQLock) &&
62 | #endif
63 | (nullpr != (p = EvtQOutP())))
64 | {
65 | #if EmClassicKbrd
66 | #if EnableMouseMotion
67 | if (EvtQElKindMouseDelta == p->kind) {
68 |
69 | if ((p->u.pos.h != 0) || (p->u.pos.v != 0)) {
70 | put_ram_word(0x0828,
71 | get_ram_word(0x0828) + p->u.pos.v);
72 | put_ram_word(0x082A,
73 | get_ram_word(0x082A) + p->u.pos.h);
74 | put_ram_byte(0x08CE, get_ram_byte(0x08CF));
75 | /* Tell MacOS to redraw the Mouse */
76 | }
77 | EvtQOutDone();
78 | } else
79 | #endif
80 | #endif
81 | if (EvtQElKindMousePos == p->kind) {
82 | uint32_t NewMouse = (p->u.pos.v << 16) | p->u.pos.h;
83 |
84 | if (get_ram_long(0x0828) != NewMouse) {
85 | put_ram_long(0x0828, NewMouse);
86 | /* Set Mouse Position */
87 | put_ram_long(0x082C, NewMouse);
88 | #if EmClassicKbrd
89 | put_ram_byte(0x08CE, get_ram_byte(0x08CF));
90 | /* Tell MacOS to redraw the Mouse */
91 | #else
92 | put_ram_long(0x0830, NewMouse);
93 | put_ram_byte(0x08CE, 0xFF);
94 | /* Tell MacOS to redraw the Mouse */
95 | #endif
96 | }
97 | EvtQOutDone();
98 | }
99 | }
100 | }
101 |
102 | #if EmClassicKbrd
103 | {
104 | EvtQEl *p;
105 |
106 | if (
107 | #if HaveMasterEvtQLock
108 | (0 == MasterEvtQLock) &&
109 | #endif
110 | (nullpr != (p = EvtQOutP())))
111 | {
112 | if (EvtQElKindMouseButton == p->kind) {
113 | MouseBtnUp = p->u.press.down ? 0 : 1;
114 | EvtQOutDone();
115 | MasterEvtQLock = 4;
116 | }
117 | }
118 | }
119 | #endif
120 | }
121 |
122 | void Mouse_EndTickNotify(void)
123 | {
124 | if (Mouse_Enabled()) {
125 | /* tell platform specific code where the mouse went */
126 | CurMouseV = get_ram_word(0x082C);
127 | CurMouseH = get_ram_word(0x082E);
128 | }
129 | }
130 |
--------------------------------------------------------------------------------
/src/HW/MOUSE/MOUSEMDV.h:
--------------------------------------------------------------------------------
1 | /*
2 | HW/MOUSE/MOUSEMDV.h
3 |
4 | Copyright (C) 2003 Philip Cummins, Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | #ifdef MOUSEMDV_H
18 | #error "header already included"
19 | #else
20 | #define MOUSEMDV_H
21 | #endif
22 |
23 | extern void Mouse_Update(void);
24 | extern void Mouse_EndTickNotify(void);
25 |
--------------------------------------------------------------------------------
/src/HW/POWERMAN/PMUEMDEV.h:
--------------------------------------------------------------------------------
1 | /*
2 | PMUEMDEV.h
3 |
4 | Copyright (C) 2008 Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | #ifdef PMUEMDEV_H
18 | #error "header already included"
19 | #else
20 | #define PMUEMDEV_H
21 | #endif
22 |
23 | extern void PmuToReady_ChangeNtfy(void);
24 | extern void PMU_DoTask(void);
25 |
--------------------------------------------------------------------------------
/src/HW/RAM/RAMADDR.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | /* map of address space */
4 |
5 | #define kRAM_Base 0x00000000 /* when overlay off */
6 | #if (CurEmMd == kEmMd_PB100)
7 | #define kRAM_ln2Spc 23
8 | #elif (CurEmMd == kEmMd_II) || (CurEmMd == kEmMd_IIx)
9 | #define kRAM_ln2Spc 23
10 | #else
11 | #define kRAM_ln2Spc 22
12 | #endif
13 |
14 | #if IncludeVidMem
15 | #if CurEmMd == kEmMd_PB100
16 | #define kVidMem_Base 0x00FA0000
17 | #define kVidMem_ln2Spc 16
18 | #else
19 | #define kVidMem_Base 0x00540000
20 | #define kVidMem_ln2Spc 18
21 | #endif
22 | #endif
23 |
24 | #if CurEmMd == kEmMd_PB100
25 | #define kSCSI_Block_Base 0x00F90000
26 | #define kSCSI_ln2Spc 16
27 | #else
28 | #define kSCSI_Block_Base 0x00580000
29 | #define kSCSI_ln2Spc 19
30 | #endif
31 |
32 | #define kRAM_Overlay_Base 0x00600000 /* when overlay on */
33 | #define kRAM_Overlay_Top 0x00800000
34 |
35 | #if CurEmMd == kEmMd_PB100
36 | #define kSCCRd_Block_Base 0x00FD0000
37 | #define kSCC_ln2Spc 16
38 | #else
39 | #define kSCCRd_Block_Base 0x00800000
40 | #define kSCC_ln2Spc 22
41 | #endif
42 |
43 | #if CurEmMd != kEmMd_PB100
44 | #define kSCCWr_Block_Base 0x00A00000
45 | #define kSCCWr_Block_Top 0x00C00000
46 | #endif
47 |
48 | #if CurEmMd == kEmMd_PB100
49 | #define kIWM_Block_Base 0x00F60000
50 | #define kIWM_ln2Spc 16
51 | #else
52 | #define kIWM_Block_Base 0x00C00000
53 | #define kIWM_ln2Spc 21
54 | #endif
55 |
56 | #if CurEmMd == kEmMd_PB100
57 | #define kVIA1_Block_Base 0x00F70000
58 | #define kVIA1_ln2Spc 16
59 | #else
60 | #define kVIA1_Block_Base 0x00E80000
61 | #define kVIA1_ln2Spc 19
62 | #endif
63 |
64 | #if CurEmMd == kEmMd_PB100
65 | #define kASC_Block_Base 0x00FB0000
66 | #define kASC_ln2Spc 16
67 | #endif
68 | #define kASC_Mask 0x00000FFF
69 |
70 |
71 | /* implementation of read/write for everything but RAM and ROM */
72 |
73 | #define kSCC_Mask 0x03
74 |
75 | #define kVIA1_Mask 0x00000F
76 | #if EmVIA2
77 | #define kVIA2_Mask 0x00000F
78 | #endif
79 |
80 | #define kIWM_Mask 0x00000F /* Allocated Memory Bandwidth for IWM */
81 |
82 | #if CurEmMd <= kEmMd_512Ke
83 | #define ROM_CmpZeroMask 0
84 | #elif CurEmMd <= kEmMd_Plus
85 | #if kROM_Size > 0x00020000
86 | #define ROM_CmpZeroMask 0 /* For hacks like Mac ROM-inator */
87 | #else
88 | #define ROM_CmpZeroMask 0x00020000
89 | #endif
90 | #elif CurEmMd <= kEmMd_PB100
91 | #define ROM_CmpZeroMask 0
92 | #elif CurEmMd <= kEmMd_IIx
93 | #define ROM_CmpZeroMask 0
94 | #else
95 | #error "ROM_CmpZeroMask not defined"
96 | #endif
97 |
98 | #define kROM_cmpmask (0x00F00000 | ROM_CmpZeroMask)
99 |
100 | #if CurEmMd <= kEmMd_512Ke
101 | #define Overlay_ROM_CmpZeroMask 0x00100000
102 | #elif CurEmMd <= kEmMd_Plus
103 | #define Overlay_ROM_CmpZeroMask 0x00020000
104 | #elif CurEmMd <= kEmMd_Classic
105 | #define Overlay_ROM_CmpZeroMask 0x00300000
106 | #elif CurEmMd <= kEmMd_PB100
107 | #define Overlay_ROM_CmpZeroMask 0
108 | #elif CurEmMd <= kEmMd_IIx
109 | #define Overlay_ROM_CmpZeroMask 0
110 | #else
111 | #error "Overlay_ROM_CmpZeroMask not defined"
112 | #endif
113 |
--------------------------------------------------------------------------------
/src/HW/ROM/ROMEMDEV.c:
--------------------------------------------------------------------------------
1 | #include
2 | #include "GLOBGLUE.h"
3 | #include "HW/ROM/ROMEMDEV.h"
4 | #include "UTIL/ENDIANAC.h"
5 |
6 | uint8_t * ROM = nullpr;
7 | bool ROM_loaded = false;
8 |
9 | uint32_t Calc_Checksum(uint8_t *rom, uint32_t len)
10 | {
11 | uint32_t i;
12 | uint32_t CheckSum = 0;
13 | uint8_t * p = 4 + rom;
14 |
15 | for (i = (len - 4) >> 1; --i >= 0; ) {
16 | CheckSum += do_get_mem_word(p);
17 | p += 2;
18 | }
19 |
20 | return CheckSum;
21 | }
22 |
23 | bool ROM_IsValid(void)
24 | {
25 | /*if(CheckRomCheckSum) {
26 | uint32_t CheckSum = Calc_Checksum();
27 |
28 | if (CheckSum != do_get_mem_long(ROM)) {
29 | // Check against internal checksum
30 | WarnMsgCorruptedROM();
31 | return mnvm_miscErr;
32 | } else if (!(
33 | CheckSum == kRomCheckSum1 ||
34 | CheckSum == kRomCheckSum2 ||
35 | CheckSum == kRomCheckSum3
36 | )) {
37 | // Unsupported ROM
38 | WarnMsgUnsupportedROM();
39 | return mnvm_miscErr;
40 | }
41 | }*/
42 |
43 | ROM_loaded = true;
44 | SpeedStopped = false;
45 |
46 | return true;
47 | }
48 |
49 | // Loop for when there's nothing to do but tell the user they're missing a ROM
50 | // TODO: Hijack this for config mode?
51 | bool WaitForRom(void)
52 | {
53 | return true;
54 | }
55 |
--------------------------------------------------------------------------------
/src/HW/ROM/ROMEMDEV.h:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | extern uint8_t * ROM;
5 | extern bool ROM_loaded;
6 |
7 | uint32_t Calc_Checksum(uint8_t *rom, uint32_t len);
8 | bool ROM_IsValid(void);
9 | bool WaitForRom(void);
10 |
--------------------------------------------------------------------------------
/src/HW/RTC/RTCEMDEV.h:
--------------------------------------------------------------------------------
1 | /*
2 | HW/RTC/RTCEMDEV.h
3 |
4 | Copyright (C) 2003 Philip Cummins, Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | #ifndef RTCEMDEV_H
18 | #define RTCEMDEV_H
19 |
20 | extern bool RTC_Init(void);
21 | extern void RTC_Interrupt(void);
22 |
23 | extern void RTCunEnabled_ChangeNtfy(void);
24 | extern void RTCclock_ChangeNtfy(void);
25 | extern void RTCdataLine_ChangeNtfy(void);
26 |
27 | #endif
--------------------------------------------------------------------------------
/src/HW/SCC/SCCEMDEV.h:
--------------------------------------------------------------------------------
1 | /*
2 | HW/SCC/SCCEMDEV.h
3 |
4 | Copyright (C) 2004 Philip Cummins, Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | #ifndef SCCEMDEV_H
18 | #define SCCEMDEV_H
19 |
20 | extern void SCC_Reset(void);
21 |
22 | extern uint32_t SCC_Access(uint32_t Data, bool WriteMem, CPTR addr);
23 |
24 | extern bool SCC_InterruptsEnabled(void);
25 |
26 | #if EmLocalTalk
27 | extern void LocalTalkTick(void);
28 | extern int InitLocalTalk(void);
29 | #endif
30 |
31 | #endif
32 |
--------------------------------------------------------------------------------
/src/HW/SCREEN/SCRNEMDV.h:
--------------------------------------------------------------------------------
1 | /*
2 | HW/SCREEN/SCRNEMDV.h
3 |
4 | Copyright (C) 2006 Philip Cummins, Richard F. Bannister,
5 | Paul C. Pratt
6 |
7 | You can redistribute this file and/or modify it under the terms
8 | of version 2 of the GNU General Public License as published by
9 | the Free Software Foundation. You should have received a copy
10 | of the license along with this file; see the file COPYING.
11 |
12 | This file is distributed in the hope that it will be useful,
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | license for more details.
16 | */
17 |
18 | #ifndef SCRNEMDV_H
19 | #define SCRNEMDV_H
20 |
21 | bool Screen_LoadCfg(void);
22 | bool Screen_Init(void);
23 | void Screen_EndTickNotify(void);
24 |
25 | extern uint16_t vMacScreenHeight;
26 | extern uint16_t vMacScreenWidth;
27 | extern uint16_t vMacScreenDepth;
28 | extern uint32_t vMacScreenNumPixels;
29 | extern uint32_t vMacScreenNumBits;
30 | extern uint32_t vMacScreenNumBytes;
31 | extern uint32_t vMacScreenBitWidth;
32 | extern uint32_t vMacScreenByteWidth;
33 | extern uint32_t vMacScreenMonoNumBytes;
34 | extern uint32_t vMacScreenMonoByteWidth;
35 | extern bool UseLargeScreenHack;
36 | extern char *ScreenColorBlack;
37 | extern char *ScreenColorWhite;
38 |
39 | #endif
40 |
--------------------------------------------------------------------------------
/src/HW/SCSI/SCSIEMDV.h:
--------------------------------------------------------------------------------
1 | /*
2 | HW/SCSI/SCSIEMDV.h
3 |
4 | Copyright (C) 2004 Philip Cummins, Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | #ifndef SCSIEMDV_H
18 | #define SCSIEMDV_H
19 |
20 | extern void SCSI_Reset(void);
21 |
22 | extern uint32_t SCSI_Access(uint32_t Data, bool WriteMem, CPTR addr);
23 |
24 | #endif
25 |
--------------------------------------------------------------------------------
/src/HW/SOUND/ASCEMDEV.h:
--------------------------------------------------------------------------------
1 | /*
2 | HW/SOUND/ASCEMDEV.h
3 |
4 | Copyright (C) 2008 Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | #ifndef ASCEMDEV_H
18 | #define ASCEMDEV_H
19 |
20 | extern uint32_t ASC_Access(uint32_t Data, bool WriteMem, CPTR addr);
21 | extern void ASC_SubTick(int SubTick);
22 |
23 | #endif
24 |
--------------------------------------------------------------------------------
/src/HW/SOUND/SNDEMDEV.h:
--------------------------------------------------------------------------------
1 | /*
2 | HW/SOUND/SNDEMDEV.h
3 |
4 | Copyright (C) 2003 Philip Cummins, Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | #ifdef SNDEMDEV_H
18 | #error "header already included"
19 | #else
20 | #define SNDEMDEV_H
21 | #endif
22 |
23 | #if SoundEnabled
24 | extern void MacSound_SubTick(int SubTick);
25 | #endif
26 |
--------------------------------------------------------------------------------
/src/HW/VIA/VIA2EMDV.h:
--------------------------------------------------------------------------------
1 | /*
2 | HW/VIA/VIA2EMDV.h
3 |
4 | Copyright (C) 2004 Philip Cummins, Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | #ifndef VIA2EMDV_H
18 | #define VIA2EMDV_H
19 |
20 | extern void VIA2_Zap(void);
21 | extern void VIA2_Reset(void);
22 |
23 | extern uint32_t VIA2_Access(uint32_t Data, bool WriteMem, CPTR addr);
24 |
25 | extern void VIA2_ExtraTimeBegin(void);
26 | extern void VIA2_ExtraTimeEnd(void);
27 | #ifdef VIA2_iCA1_PulseNtfy
28 | extern void VIA2_iCA1_PulseNtfy(void);
29 | #endif
30 | #ifdef VIA2_iCA2_PulseNtfy
31 | extern void VIA2_iCA2_PulseNtfy(void);
32 | #endif
33 | #ifdef VIA2_iCB1_PulseNtfy
34 | extern void VIA2_iCB1_PulseNtfy(void);
35 | #endif
36 | #ifdef VIA2_iCB2_PulseNtfy
37 | extern void VIA2_iCB2_PulseNtfy(void);
38 | #endif
39 | extern void VIA2_DoTimer1Check(void);
40 | extern void VIA2_DoTimer2Check(void);
41 |
42 | extern uint16_t VIA2_GetT1InvertTime(void);
43 |
44 | extern void VIA2_ShiftInData(uint8_t v);
45 | extern uint8_t VIA2_ShiftOutData(void);
46 |
47 | #endif
48 |
--------------------------------------------------------------------------------
/src/HW/VIA/VIAEMDEV.h:
--------------------------------------------------------------------------------
1 | /*
2 | HW/VIA/VIAEMDEV.h
3 |
4 | Copyright (C) 2004 Philip Cummins, Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | #ifndef VIAEMDEV_H
18 | #define VIAEMDEV_H
19 | #include
20 |
21 | bool VIA1_Zap(void);
22 | void VIA1_Reset(void);
23 |
24 | uint32_t VIA1_Access(uint32_t Data, bool WriteMem, uint32_t addr);
25 |
26 | void VIA1_ExtraTimeBegin(void);
27 | void VIA1_ExtraTimeEnd(void);
28 | void VIA1_iCA1_PulseNtfy(void);
29 | void VIA1_iCA2_PulseNtfy(void);
30 | void VIA1_iCB1_PulseNtfy(void);
31 | void VIA1_iCB2_PulseNtfy(void);
32 | void VIA1_DoTimer1Check(void);
33 | void VIA1_DoTimer2Check(void);
34 |
35 | uint16_t VIA1_GetT1InvertTime(void);
36 |
37 | void VIA1_ShiftInData(uint8_t v);
38 | uint8_t VIA1_ShiftOutData(void);
39 |
40 | #endif
41 |
--------------------------------------------------------------------------------
/src/HW/VIDCARD/VIDEMDEV.h:
--------------------------------------------------------------------------------
1 | /*
2 | VIDEMDEV.h
3 |
4 | Copyright (C) 2008 Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | #ifndef VIDEMDEV_H
18 | #define VIDEMDEV_H
19 |
20 | extern bool Vid_Init(void);
21 | extern uint16_t Vid_Reset(void);
22 | extern void Vid_Update(void);
23 |
24 | extern void ExtnVideo_Access(CPTR p);
25 |
26 | #endif
27 |
--------------------------------------------------------------------------------
/src/PATCHES/HPMCHACK.h:
--------------------------------------------------------------------------------
1 | /*
2 | HPMCHACK.c
3 |
4 | Copyright (C) 2016 Steve Chamberlin, Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | /*
18 | HaPpy MaCintosh Hack
19 |
20 | Patch the ROM for alternatives to the
21 | Happy Macintosh icon displayed on boot
22 | when a disk is inserted.
23 |
24 | Bitmaps from http://www.bigmessowires.com/mac-rom-inator/
25 | */
26 |
27 | #include
28 | #include "SYSDEPNS.h"
29 | #include "UI/COMOSGLU.h"
30 |
31 | // Enum of alternate icons
32 | typedef enum AHM_types {
33 | kAHM_aside,
34 | kAHM_cheese,
35 | kAHM_evil,
36 | kAHM_horror,
37 | kAHM_lady_mac,
38 | kAHM_moustache,
39 | kAHM_nerdy,
40 | kAHM_pirate,
41 | kAHM_sleepy,
42 | kAHM_sly,
43 | kAHM_sunglasses,
44 | kAHM_surprise,
45 | kAHM_tongue,
46 | kAHM_yuck,
47 | kAHM_zombie
48 | } AHM_t;
49 |
50 | // Bitmap includes
51 | #include "aside.xbm"
52 | #include "cheese.xbm"
53 | #include "evil.xbm"
54 | #include "horror.xbm"
55 | #include "lady.xbm"
56 | #include "moustache.xbm"
57 | #include "nerdy.xbm"
58 | #include "pirate.xbm"
59 | #include "sleepy.xbm"
60 | #include "sly.xbm"
61 | #include "sunglasses.xbm"
62 | #include "surprise.xbm"
63 | #include "tongue.xbm"
64 | #include "yuck.xbm"
65 | #include "zombie.xbm"
66 |
67 | // Lookup table
68 | unsigned char * HMAC_BITS[] = {
69 | HMAC_ASIDE_BITS,
70 | HMAC_CHEESE_BITS
71 | };
72 |
73 | #if CurEmMd <= kEmMd_Twig43
74 | #define HappyMacBase 0xA34
75 | #elif CurEmMd <= kEmMd_Twiggy
76 | #define HappyMacBase 0x8F4
77 | #elif CurEmMd <= kEmMd_128K
78 | #define HappyMacBase 0x8A0
79 | #elif CurEmMd <= kEmMd_Plus
80 | #define HappyMacBase 0xFD2
81 | #elif CurEmMd <= kEmMd_Classic
82 | #define HappyMacBase 0x125C
83 | #elif CurEmMd <= kEmMd_PB100
84 | #define HappyMacBase 0x2BB0 - 0x18
85 | #elif (CurEmMd == kEmMd_II) || (CurEmMd == kEmMd_IIx)
86 | #define HappyMacBase 0x1948 - 0x18
87 | #endif
88 |
89 | static void PatchHappyMac(AHM_t ahm)
90 | {
91 | uint8_t *dst = ROM + HappyMacBase + 0x18;
92 | uint8_t *src = HMAC_BITS[ahm];
93 | memcpy(dst, src, 20);
94 | }
95 |
--------------------------------------------------------------------------------
/src/PATCHES/ROMEMDEV.c:
--------------------------------------------------------------------------------
1 | /*
2 | ROMEMDEV.c
3 |
4 | Copyright (C) 2007 Philip Cummins, Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | /*
18 | Read Only Memory EMulated DEVice
19 |
20 | Checks the header of the loaded ROM image, and then patches
21 | the ROM image.
22 |
23 | This code descended from "ROM.c" in vMac by Philip Cummins.
24 |
25 | Support for "Twiggy" Mac by Mathew Hybler.
26 | */
27 |
28 | #include "EMCONFIG.h"
29 | #include "SYSDEPNS.h"
30 | #include "GLOBGLUE.h"
31 | #include "UI/MYOSGLUE.h"
32 | #include "UTIL/ENDIANAC.h"
33 | #include "PATCHES/ROMEMDEV.h"
34 | #include "PATCHES/SCRNHACK.h"
35 | #include "PATCHES/SONYDRV.h"
36 | #ifdef CurAltHappyMac
37 | #include "HPMCHACK.h"
38 | #endif
39 |
40 | #ifdef ln2mtb
41 | static void ROMscrambleForMTB(void)
42 | {
43 | int32_t j;
44 | uint8_t * p = ROM;
45 | uint8_t * p2 = ROM + (1 << ln2mtb);
46 |
47 | for (j = kROM_Size / (1 << ln2mtb) / 2; --j >= 0; ) {
48 | int32_t i;
49 |
50 | for (i = (1 << ln2mtb); --i >= 0; ) {
51 | uint8_t t0 = *p;
52 | uint8_t t1 = *p2;
53 | *p++ = t1;
54 | *p2++ = t0;
55 | }
56 |
57 | p += (1 << ln2mtb);
58 | p2 += (1 << ln2mtb);
59 | }
60 | }
61 | #endif
62 |
63 | bool ROM_Init(void)
64 | {
65 | #if DisableRomCheck
66 |
67 | /* skip the rom checksum */
68 | #if CurEmMd <= kEmMd_Twig43
69 | /* no checksum code */
70 | #elif CurEmMd <= kEmMd_Twiggy
71 | do_put_mem_word(0x136 + ROM, 0x6004);
72 | #elif CurEmMd <= kEmMd_128K
73 | do_put_mem_word(0xE2 + ROM, 0x6004);
74 | #elif CurEmMd <= kEmMd_Plus
75 | do_put_mem_word(0xD7A + ROM, 0x6022);
76 | #elif CurEmMd <= kEmMd_Classic
77 | do_put_mem_word(0x1C68 + ROM, 0x6008);
78 | #elif (CurEmMd == kEmMd_II) || (CurEmMd == kEmMd_IIx)
79 | do_put_mem_word(0x2AB0 + ROM, 0x6008);
80 | #endif
81 |
82 | #endif /* DisableRomCheck */
83 |
84 |
85 | #if DisableRamTest
86 |
87 | #if CurEmMd <= kEmMd_128K
88 | #elif CurEmMd <= kEmMd_Plus
89 | do_put_mem_word(3752 + ROM, 0x4E71);
90 | /* shorten the ram check read */
91 | do_put_mem_word(3728 + ROM, 0x4E71);
92 | /* shorten the ram check write */
93 | #elif CurEmMd <= kEmMd_Classic
94 | do_put_mem_word(134 + ROM, 0x6002);
95 | do_put_mem_word(286 + ROM, 0x6002);
96 | #elif (CurEmMd == kEmMd_II) || (CurEmMd == kEmMd_IIx)
97 | do_put_mem_word(0xEE + ROM, 0x6002);
98 | do_put_mem_word(0x1AA + ROM, 0x6002);
99 | #endif
100 |
101 | #endif /* DisableRamTest */
102 |
103 | #ifdef CurAltHappyMac
104 | PatchHappyMac();
105 | #endif
106 |
107 | /* do_put_mem_word(862 + ROM, 0x4E71); */ /* shorten set memory */
108 |
109 | Sony_Install();
110 | //ScreenHack_Install(); in above fcn temporarily
111 |
112 | #ifdef ln2mtb
113 | ROMscrambleForMTB();
114 | #endif
115 |
116 | return true;
117 | }
118 |
--------------------------------------------------------------------------------
/src/PATCHES/ROMEMDEV.h:
--------------------------------------------------------------------------------
1 | /*
2 | PATCHES/ROMEMDEV.h
3 |
4 | Copyright (C) 2003 Philip Cummins, Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | #ifndef ROMEMDEV_H
18 | #define ROMEMDEV_H
19 |
20 |
21 | #ifndef DisableRomCheck
22 | #define DisableRomCheck 1
23 | #endif
24 | #ifndef DisableRamTest
25 | #define DisableRamTest 1
26 | #endif
27 |
28 | #define kVidMem_Base 0x00540000
29 |
30 |
31 | extern bool ROM_Init(void);
32 |
33 |
34 | #endif
35 |
--------------------------------------------------------------------------------
/src/PATCHES/SCRNHACK.h:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | void ScreenHack_Install(uint8_t **pto);
4 |
--------------------------------------------------------------------------------
/src/PATCHES/SONYDRV.c:
--------------------------------------------------------------------------------
1 | /*
2 | Replacement for .Sony driver
3 | 68k machine code, compiled from mydriver.a
4 | Included in the resource file for WIN32 builds
5 | */
6 | #include
7 | #include
8 | #include "incbin/incbin.h"
9 | #ifdef _MSC_VER
10 | #include
11 | #endif
12 |
13 | #include "EMCONFIG.h"
14 | #include "GLOBGLUE.h"
15 | #include "UTIL/ENDIANAC.h"
16 | #include "UI/MYOSGLUE.h"
17 | #include "PATCHES/SONYDRV.h"
18 | #include "PATCHES/ROMEMDEV.h"
19 | //#include "PATCHES/SCRNHACK.h"
20 |
21 | // temporary screenhack stuff
22 | #include "HW/SCREEN/SCRNEMDV.h"
23 |
24 | // Include binaries
25 | #ifndef _MSC_VER
26 | INCBIN(SonyDriver, "rsrc/SONYDRV.bin");
27 | INCBIN(SonyIcon, "rsrc/SONYICO.bin");
28 | #endif
29 |
30 | void Sony_LoadDriver(uint8_t *pto, int *size)
31 | {
32 | #ifdef _MSC_VER
33 | HRSRC hDrvInfo = FindResource(NULL, "SONY_DRV", RT_RCDATA);
34 | HGLOBAL hDrv = LoadResource(NULL, hDrvInfo);
35 | DWORD sDrv = SizeofResource(NULL, hDrvInfo);
36 | void *pDrv = LockResource(hDrv);
37 | memcpy(pto, pDrv, sDrv);
38 | *size = sDrv;
39 | #else
40 | memcpy(pto, gSonyDriverData, gSonyDriverSize);
41 | *size = gSonyDriverSize;
42 | #endif
43 | }
44 |
45 | void Sony_LoadIcon(uint8_t *pto, int *icoSize)
46 | {
47 | disk_icon_addr = (pto - ROM) + kROM_Base;
48 | #ifdef _MSC_VER
49 | HRSRC hIcoInfo = FindResource(NULL, "SONY_ICO", RT_RCDATA);
50 | HGLOBAL hIco = LoadResource(NULL, hIcoInfo);
51 | DWORD sIco = SizeofResource(NULL, hIcoInfo);
52 | void *pIco = LockResource(hIco);
53 | memcpy(pto, pIco, sIco);
54 | pto += sizeof(sIco);
55 | #else
56 | memcpy(pto, gSonyIconData, gSonyIconSize);
57 | *icoSize = gSonyIconSize;
58 | #endif
59 | }
60 |
61 | void Sony_TwiggyPatch(uint8_t *pto)
62 | {
63 | if (CurEmMd == kEmMd_Twiggy || CurEmMd == kEmMd_Twig43) {
64 | /* 'Disk' instead of 'Sony' */
65 | do_put_mem_long(pto + 0x14, 0x4469736B);
66 | if (CurEmMd == kEmMd_Twig43) {
67 | do_put_mem_word(pto + 0xEA, 0x0C8A);
68 | } else {
69 | do_put_mem_word(pto + 0xEA, 0x0B74);
70 | }
71 | }
72 | }
73 |
74 | void Sony_CallPatch(uint8_t *pto, int drvSize)
75 | {
76 | do_put_mem_word(pto, kcom_callcheck);
77 | do_put_mem_word(pto+2, kExtnSony);
78 | do_put_mem_long(pto+4, kExtn_Block_Base); /* pokeaddr */
79 | }
80 |
81 | void Sony_Install(void)
82 | {
83 | uint8_t * pto = Sony_DriverBase + ROM;
84 | int drvSize, icoSize;
85 | if (!UseSonyPatch) { return; }
86 | Sony_LoadDriver(pto, &drvSize);
87 | Sony_TwiggyPatch(pto);
88 |
89 | pto += drvSize;
90 | Sony_CallPatch(pto, drvSize);
91 | pto += 8;
92 |
93 | Sony_LoadIcon(pto, &icoSize);
94 | pto += icoSize;
95 |
96 | // currently broken
97 | //ScreenHack_Install(&pto);
98 | }
--------------------------------------------------------------------------------
/src/PATCHES/SONYDRV.h:
--------------------------------------------------------------------------------
1 | #define UseSonyPatch \
2 | ((CurEmMd <= kEmMd_Classic) || (CurEmMd == kEmMd_II) \
3 | || (CurEmMd == kEmMd_IIx))
4 |
5 | #if CurEmMd <= kEmMd_Twig43
6 | #define Sony_DriverBase 0x1836
7 | #elif CurEmMd <= kEmMd_Twiggy
8 | #define Sony_DriverBase 0x16E4
9 | #elif CurEmMd <= kEmMd_128K
10 | #define Sony_DriverBase 0x1690
11 | #elif CurEmMd <= kEmMd_Plus
12 | #define Sony_DriverBase 0x17D30
13 | #elif CurEmMd <= kEmMd_Classic
14 | #define Sony_DriverBase 0x34680
15 | #elif (CurEmMd == kEmMd_II) || (CurEmMd == kEmMd_IIx)
16 | #define Sony_DriverBase 0x2D72C
17 | #endif
18 |
19 | void Sony_Install();
--------------------------------------------------------------------------------
/src/PROGMAIN.h:
--------------------------------------------------------------------------------
1 | /*
2 | PROGMAIN.h
3 |
4 | Copyright (C) 2009 Philip Cummins, Richard F. Bannister,
5 | Paul C. Pratt
6 |
7 | You can redistribute this file and/or modify it under the terms
8 | of version 2 of the GNU General Public License as published by
9 | the Free Software Foundation. You should have received a copy
10 | of the license along with this file; see the file COPYING.
11 |
12 | This file is distributed in the hope that it will be useful,
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | license for more details.
16 | */
17 |
18 | #ifndef PROGMAIN_H
19 | #define PROGMAIN_H
20 |
21 | extern void EmulationReserveAlloc(void);
22 | extern void ProgramMain(void);
23 |
24 | #endif
--------------------------------------------------------------------------------
/src/SYSDEPNS.h:
--------------------------------------------------------------------------------
1 | /*
2 | SYSDEPNS.h
3 |
4 | Copyright (C) 2006 Bernd Schmidt, Philip Cummins, Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | /*
18 | SYStem DEPeNdencies.
19 | */
20 |
21 | #ifndef SYSDEPNS_H
22 | #define SYSDEPNS_H
23 |
24 | #include
25 | #include
26 | #include "CNFGGLOB.h"
27 |
28 | /*
29 | Largest efficiently supported
30 | representation types. uimr should be
31 | large enough to hold number of elements
32 | of any array we will deal with.
33 | */
34 | typedef uint32_t uimr;
35 | typedef int32_t simr;
36 |
37 | #define nullpr ((void *) 0)
38 |
39 | #define anyp uint8_t *
40 |
41 | /* pascal string, single byte characters */
42 | #define ps3p uint8_t *
43 |
44 | #ifndef reg_call
45 | #define reg_call
46 | #endif
47 |
48 | #ifndef osglu_call
49 | #define osglu_call
50 | #endif
51 |
52 | #define GLOBALOSGLUFUNC osglu_call
53 | #define EXPORTOSGLUFUNC extern osglu_call
54 | #define GLOBALOSGLUPROC osglu_call void
55 | #define EXPORTOSGLUPROC extern osglu_call void
56 | /*
57 | For functions in operating system glue that
58 | are called by rest of program.
59 | */
60 |
61 | /*
62 | best type for uint16_t that is probably in register
63 | (when compiler messes up otherwise)
64 | */
65 |
66 | #ifndef BigEndianUnaligned
67 | #define BigEndianUnaligned 0
68 | #endif
69 |
70 | #ifndef LittleEndianUnaligned
71 | #define LittleEndianUnaligned 0
72 | #endif
73 |
74 | #ifndef align_8
75 | #define align_8
76 | #endif
77 |
78 | #ifndef cond_rare
79 | #define cond_rare(x) (x)
80 | #endif
81 |
82 | #ifndef Have_ASR
83 | #define Have_ASR 0
84 | #endif
85 |
86 | #ifndef HaveSwapUi5r
87 | #define HaveSwapUi5r 0
88 | #endif
89 |
90 | #endif
--------------------------------------------------------------------------------
/src/UI/CONTROLM.c:
--------------------------------------------------------------------------------
1 | /*
2 | UI/CONTROLM.c
3 |
4 | Copyright (C) 2007 Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | /*
18 | CONTROL Mode
19 | */
20 |
21 | #include "SYSDEPNS.h"
22 | #include "CNFGGLOB.h"
23 | #include "CNFGRAPI.h"
24 | #include "STRCONST.h"
25 | #include "ERRCODES.h"
26 |
27 | #include "LANG/INTLCHAR.h"
28 | #include "UI/COMOSGLU.h"
29 | #include "UI/MYOSGLUE.h"
30 | #include "UTIL/ENDIANAC.h"
31 |
32 | #include "UI/CONTROLM.h"
33 | #include
34 | #include "UI/SDL2/OSGLUSD2.h"
35 |
36 | /* Constants and globals */
37 |
38 | uimr SpecialModes = 0;
39 | bool NeedWholeScreenDraw = false;
40 | uint8_t * CntrlDisplayBuff = nullpr;
41 |
42 | #define ControlBoxh0 0
43 | #define ControlBoxw 62
44 | #define ControlBoxv0 0
45 |
46 | #define hLimit (ControlBoxh0 + ControlBoxw - 1)
47 | #define hStart (ControlBoxh0 + 1)
48 |
49 | typedef void (*SpclModeBody) (void);
50 |
51 | #define Keyboard_UpdateKeyMap1 Keyboard_UpdateKeyMap
52 | #define DisconnectKeyCodes1 DisconnectKeyCodes
53 |
54 | void MacMsgOverride(char *title, char *msg)
55 | {
56 | SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, title, msg, main_wind);
57 | }
58 |
59 | static void WarnMsgCorruptedROM(void)
60 | {
61 | MacMsgOverride(kStrCorruptedROMTitle, kStrCorruptedROMMessage);
62 | }
63 |
64 | static void WarnMsgUnsupportedROM(void)
65 | {
66 | MacMsgOverride(kStrUnsupportedROMTitle,
67 | kStrUnsupportedROMMessage);
68 | }
69 |
70 |
--------------------------------------------------------------------------------
/src/UI/CONTROLM.h:
--------------------------------------------------------------------------------
1 | /*
2 | CONTROL Mode
3 | */
4 |
5 | #ifndef CONTROLM_H
6 | #define CONTROLM_H
7 |
8 | #include "SYSDEPNS.h"
9 | #include "ERRCODES.h"
10 |
11 | /* Globals */
12 |
13 | extern uimr SpecialModes;
14 | extern bool NeedWholeScreenDraw;
15 | extern uint8_t * CntrlDisplayBuff;
16 |
17 | /* Public Functions */
18 | void MacMsgOverride(char *title, char *msg);
19 |
20 | #endif // CONTROLM_H
21 |
--------------------------------------------------------------------------------
/src/UI/SDL2/DBGLOG.c:
--------------------------------------------------------------------------------
1 | /* --- sending debugging info to file --- */
2 |
3 | #include
4 | #include
5 | #include
6 | #include "SYSDEPNS.h"
7 | #include "UI/MYOSGLUE.h"
8 |
9 | #if dbglog_HAVE
10 |
11 | #ifndef dbglog_ToStdErr
12 | #define dbglog_ToStdErr 0
13 | #endif
14 | #ifndef dbglog_ToSDL_Log
15 | #define dbglog_ToSDL_Log 0
16 | #endif
17 |
18 | #if ! dbglog_ToStdErr
19 | static FILE *dbglog_File = NULL;
20 | #endif
21 |
22 | static bool dbglog_open0(void)
23 | {
24 | #if dbglog_ToStdErr || dbglog_ToSDL_Log
25 | return true;
26 | #else
27 | if (NULL == app_parent) {
28 | dbglog_File = fopen("dbglog.txt", "w");
29 | } else {
30 | char *t;
31 |
32 | if (mnvm_noErr == ChildPath(app_parent, "dbglog.txt", &t)) {
33 | dbglog_File = fopen(t, "w");
34 | free(t);
35 | }
36 | }
37 |
38 | return (NULL != dbglog_File);
39 | #endif
40 | }
41 |
42 | static void dbglog_write0(char *s, uimr L)
43 | {
44 | #if dbglog_ToStdErr
45 | (void) fwrite(s, 1, L, stderr);
46 | #elif dbglog_ToSDL_Log
47 | char t[256 + 1];
48 |
49 | if (L > 256) {
50 | L = 256;
51 | }
52 | (void) memcpy(t, s, L);
53 | t[L] = 1;
54 |
55 | SDL_Log("%s", t);
56 | #else
57 | if (dbglog_File != NULL) {
58 | (void) fwrite(s, 1, L, dbglog_File);
59 | }
60 | #endif
61 | }
62 |
63 | static void dbglog_close0(void)
64 | {
65 | #if ! dbglog_ToStdErr
66 | if (dbglog_File != NULL) {
67 | fclose(dbglog_File);
68 | dbglog_File = NULL;
69 | }
70 | #endif
71 | }
72 |
73 | #endif
74 |
--------------------------------------------------------------------------------
/src/UI/SDL2/INTL.c:
--------------------------------------------------------------------------------
1 |
2 | /* --- control mode and internationalization --- */
3 |
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include "CNFGRAPI.h"
9 | #include "SYSDEPNS.h"
10 | #include "UTIL/ENDIANAC.h"
11 | #include "UI/MYOSGLUE.h"
12 | #include "STRCONST.h"
13 | #include "LANG/INTLCHAR.h"
14 |
15 | #ifndef CanGetAppPath
16 | #define CanGetAppPath 1
17 | #endif
18 |
19 | static char *d_arg = NULL;
20 | static char *n_arg = NULL;
21 |
22 | #if CanGetAppPath
23 | static char *app_parent = NULL;
24 | static char *pref_dir = NULL;
25 | #endif
26 |
27 | #ifdef _WIN32
28 | #define PathSep '\\'
29 | #else
30 | #define PathSep '/'
31 | #endif
32 |
33 | MacErr_t ChildPath(char *x, char *y, char **r)
34 | {
35 | MacErr_t err = mnvm_miscErr;
36 | int nx = strlen(x);
37 | int ny = strlen(y);
38 | {
39 | if ((nx > 0) && (PathSep == x[nx - 1])) {
40 | --nx;
41 | }
42 | {
43 | int nr = nx + 1 + ny;
44 | char *p = malloc(nr + 1);
45 | if (p != NULL) {
46 | char *p2 = p;
47 | (void) memcpy(p2, x, nx);
48 | p2 += nx;
49 | *p2++ = PathSep;
50 | (void) memcpy(p2, y, ny);
51 | p2 += ny;
52 | *p2 = 0;
53 | *r = p;
54 | err = mnvm_noErr;
55 | }
56 | }
57 | }
58 |
59 | return err;
60 | }
61 |
62 | void MayFree(char *p)
63 | {
64 | if (NULL != p) {
65 | free(p);
66 | }
67 | }
68 |
69 |
70 | /* --- text translation --- */
71 |
72 | void NativeStrFromCStr(char *r, char *s)
73 | {
74 | uint8_t ps[ClStrMaxLength];
75 | int i;
76 | int L;
77 |
78 | ClStrFromSubstCStr(&L, ps, s);
79 |
80 | for (i = 0; i < L; ++i) {
81 | r[i] = Cell2PlainAsciiMap[ps[i]];
82 | }
83 |
84 | r[L] = 0;
85 | }
86 |
--------------------------------------------------------------------------------
/src/UI/SDL2/OSGLUSD2.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | #include
5 | #include
6 | #include "UI/MYOSGLUE.h"
7 |
8 | /* --- defines and macros and such --- */
9 |
10 | // video defines
11 | #ifndef UseSDLscaling
12 | #define UseSDLscaling 0
13 | #endif
14 |
15 | #if 1 && ! UseSDLscaling
16 | #define MaxScale WindowScale
17 | #else
18 | #define MaxScale 1
19 | #endif
20 |
21 | #define CLUT_finalsz (256 * 8 * 4 * MaxScale)
22 |
23 | // sound defines
24 | #define kLn2SoundBuffers 4 /* kSoundBuffers must be a power of two */
25 | #define kSoundBuffers (1 << kLn2SoundBuffers)
26 | #define kSoundBuffMask (kSoundBuffers - 1)
27 |
28 | #define DesiredMinFilledSoundBuffs 3
29 | /*
30 | if too big then sound lags behind emulation.
31 | if too small then sound will have pauses.
32 | */
33 |
34 | #define kLnOneBuffLen 9
35 | #define kLnAllBuffLen (kLn2SoundBuffers + kLnOneBuffLen)
36 | #define kOneBuffLen (1UL << kLnOneBuffLen)
37 | #define kAllBuffLen (1UL << kLnAllBuffLen)
38 | #define kLnOneBuffSz (kLnOneBuffLen + kLn2SoundSampSz - 3)
39 | #define kLnAllBuffSz (kLnAllBuffLen + kLn2SoundSampSz - 3)
40 | #define kOneBuffSz (1UL << kLnOneBuffSz)
41 | #define kAllBuffSz (1UL << kLnAllBuffSz)
42 | #define kOneBuffMask (kOneBuffLen - 1)
43 | #define kAllBuffMask (kAllBuffLen - 1)
44 | #define dbhBufferSize (kAllBuffSz + kOneBuffSz)
45 |
46 | #define dbglog_SoundStuff (0 && dbglog_HAVE)
47 | #define dbglog_SoundBuffStats (0 && dbglog_HAVE)
48 |
49 | #ifndef UseRWops
50 | #define UseRWops 0
51 | #endif
52 |
53 | #if UseRWops
54 | #define FilePtr SDL_RWops *
55 | #define Seek SDL_RWseek
56 | #define SeekSet RW_SEEK_SET
57 | #define SeekCur RW_SEEK_CUR
58 | #define SeekEnd RW_SEEK_END
59 | #define FileRead(ptr, size, nmemb, stream) \
60 | SDL_RWread(stream, ptr, size, nmemb)
61 | #define FileWrite(ptr, size, nmemb, stream) \
62 | SDL_RWwrite(stream, ptr, size, nmemb)
63 | #define FileTell SDL_RWtell
64 | #define FileClose SDL_RWclose
65 | #define FileOpen SDL_RWFromFile
66 | #else
67 | #define FilePtr FILE *
68 | #define Seek fseek
69 | #define SeekSet SEEK_SET
70 | #define SeekCur SEEK_CUR
71 | #define SeekEnd SEEK_END
72 | #define FileRead fread
73 | #define FileWrite fwrite
74 | #define FileTell ftell
75 | #define FileClose fclose
76 | #define FileOpen fopen
77 | #define FileEof feof
78 | #endif
79 |
80 |
81 |
82 | /* --- globals --- */
83 |
84 | #if MayFullScreen
85 | extern int hOffset;
86 | extern int vOffset;
87 | #endif
88 | extern bool UseFullScreen;
89 | extern bool UseMagnify;
90 |
91 | extern uint32_t TrueEmulatedTime;
92 | extern uint32_t LastTime;
93 | extern uint32_t NextIntTime;
94 | extern uint32_t NextFracTime;
95 |
96 | extern bool gBackgroundFlag;
97 | extern bool gTrueBackgroundFlag;
98 | extern bool CurSpeedStopped;
99 |
100 | extern SDL_Window *main_wind;
101 | extern SDL_Renderer *renderer;
102 | extern SDL_Texture *texture;
103 | extern SDL_PixelFormat *format;
104 |
105 | extern uint8_t * ScalingBuff;
106 | extern uint8_t * CLUT_final;
107 |
108 | extern bool HaveCursorHidden;
109 | extern bool WantCursorHidden;
110 |
111 | extern tpSoundSamp TheSoundBuffer;
112 |
113 | // Functions
114 |
115 | void DoKeyCode(SDL_Keysym *r, bool down);
116 |
--------------------------------------------------------------------------------
/src/UI/SDL2/ROM.c:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "SYSDEPNS.h"
5 | #include "ERRCODES.h"
6 | #include "STRCONST.h"
7 | #include "UI/MYOSGLUE.h"
8 | #include "UI/COMOSGLU.h"
9 | #include "UI/CONTROLM.h"
10 | #include "UI/SDL2/OSGLUSD2.h"
11 | #include "HW/ROM/ROMEMDEV.h"
12 |
13 | /* --- ROM --- */
14 |
15 | static char *rom_path = NULL;
16 |
17 | #if CanGetAppPath
18 | static MacErr_t LoadMacRomFromPrefDir(void)
19 | {
20 | MacErr_t err;
21 | char *t = NULL;
22 | char *t2 = NULL;
23 |
24 | if (NULL == pref_dir) {
25 | err = mnvm_fnfErr;
26 | } else
27 | if (mnvm_noErr != (err =
28 | ChildPath(pref_dir, "mnvm_rom", &t)))
29 | {
30 | /* fail */
31 | } else
32 | if (mnvm_noErr != (err =
33 | ChildPath(t, RomFileName, &t2)))
34 | {
35 | /* fail */
36 | } else
37 | {
38 | err = LoadMacRomFrom(t2);
39 | }
40 |
41 | MayFree(t2);
42 | MayFree(t);
43 |
44 | return err;
45 | }
46 | #endif
47 |
48 | #if CanGetAppPath
49 | static MacErr_t LoadMacRomFromAppPar(void)
50 | {
51 | MacErr_t err;
52 | char *d = (NULL == d_arg) ? app_parent : d_arg;
53 | char *t = NULL;
54 |
55 | if (NULL == d) {
56 | err = mnvm_fnfErr;
57 | } else
58 | if (mnvm_noErr != (err =
59 | ChildPath(d, RomFileName, &t)))
60 | {
61 | /* fail */
62 | } else
63 | {
64 | err = LoadMacRomFrom(t);
65 | }
66 |
67 | MayFree(t);
68 |
69 | return err;
70 | }
71 | #endif
72 |
73 | bool LoadMacRom(void)
74 | {
75 | MacErr_t err;
76 |
77 | if ((NULL == rom_path)
78 | || (mnvm_fnfErr == (err = LoadMacRomFrom(rom_path))))
79 | #if CanGetAppPath
80 | if (mnvm_fnfErr == (err = LoadMacRomFromAppPar()))
81 | if (mnvm_fnfErr == (err = LoadMacRomFromPrefDir()))
82 | #endif
83 | if (mnvm_fnfErr == (err = LoadMacRomFrom(RomFileName)))
84 | {
85 | }
86 |
87 | return true; /* keep launching Mini vMac, regardless */
88 | }
89 |
90 | MacErr_t LoadMacRomFrom(char *path)
91 | {
92 | MacErr_t err;
93 | FilePtr ROM_File;
94 | int File_Size;
95 |
96 | ROM_File = FileOpen(path, "rb");
97 | if (NULL == ROM_File) {
98 | err = mnvm_fnfErr;
99 | } else {
100 | File_Size = FileRead(ROM, 1, kROM_Size, ROM_File);
101 | if (File_Size != kROM_Size) {
102 | #ifdef FileEof
103 | if (FileEof(ROM_File))
104 | #else
105 | if (File_Size > 0)
106 | #endif
107 | {
108 | MacMsgOverride(kStrShortROMTitle,
109 | kStrShortROMMessage);
110 | err = mnvm_eofErr;
111 | } else {
112 | MacMsgOverride(kStrNoReadROMTitle,
113 | kStrNoReadROMMessage);
114 | err = mnvm_miscErr;
115 | }
116 | } else {
117 | err = ROM_IsValid();
118 | }
119 | FileClose(ROM_File);
120 | }
121 |
122 | return err;
123 | }
124 |
125 |
--------------------------------------------------------------------------------
/src/UI/SDL2/TIMEDATE.c:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include
5 | #include
6 | #include "CNFGRAPI.h"
7 | #include "SYSDEPNS.h"
8 | #include "UTIL/ENDIANAC.h"
9 | #include "UI/MYOSGLUE.h"
10 | #include "STRCONST.h"
11 |
12 | /* --- time, date, location --- */
13 |
14 | #define dbglog_TimeStuff (0 && dbglog_HAVE)
15 |
16 | uint32_t TrueEmulatedTime = 0;
17 |
18 | #define InvTimeDivPow 16
19 | #define InvTimeDiv (1 << InvTimeDivPow)
20 | #define InvTimeDivMask (InvTimeDiv - 1)
21 | #define InvTimeStep 1089590 /* 1000 / 60.14742 * InvTimeDiv */
22 |
23 | uint32_t LastTime;
24 | uint32_t NextIntTime;
25 | uint32_t NextFracTime;
26 |
27 | void IncrNextTime(void)
28 | {
29 | NextFracTime += InvTimeStep;
30 | NextIntTime += (NextFracTime >> InvTimeDivPow);
31 | NextFracTime &= InvTimeDivMask;
32 | }
33 |
34 | void InitNextTime(void)
35 | {
36 | NextIntTime = LastTime;
37 | NextFracTime = 0;
38 | IncrNextTime();
39 | }
40 |
41 | static uint32_t NewMacDateInSeconds;
42 |
43 | bool UpdateTrueEmulatedTime(void)
44 | {
45 | Uint32 LatestTime;
46 | int32_t TimeDiff;
47 |
48 | LatestTime = SDL_GetTicks();
49 | if (LatestTime != LastTime) {
50 |
51 | NewMacDateInSeconds = LatestTime / 1000;
52 | /* no date and time api in SDL */
53 |
54 | LastTime = LatestTime;
55 | TimeDiff = (LatestTime - NextIntTime);
56 | /* this should work even when time wraps */
57 | if (TimeDiff >= 0) {
58 | if (TimeDiff > 256) {
59 | /* emulation interrupted, forget it */
60 | ++TrueEmulatedTime;
61 | InitNextTime();
62 |
63 | #if dbglog_TimeStuff
64 | dbglog_writelnNum("emulation interrupted",
65 | TrueEmulatedTime);
66 | #endif
67 | } else {
68 | do {
69 | ++TrueEmulatedTime;
70 | IncrNextTime();
71 | TimeDiff = (LatestTime - NextIntTime);
72 | } while (TimeDiff >= 0);
73 | }
74 | return true;
75 | } else {
76 | if (TimeDiff < -256) {
77 | #if dbglog_TimeStuff
78 | dbglog_writeln("clock set back");
79 | #endif
80 | /* clock goofed if ever get here, reset */
81 | InitNextTime();
82 | }
83 | }
84 | }
85 | return false;
86 | }
87 |
88 |
89 | bool CheckDateTime(void)
90 | {
91 | if (CurMacDateInSeconds != NewMacDateInSeconds) {
92 | CurMacDateInSeconds = NewMacDateInSeconds;
93 | return true;
94 | } else {
95 | return false;
96 | }
97 | }
98 |
99 | void StartUpTimeAdjust(void)
100 | {
101 | LastTime = SDL_GetTicks();
102 | InitNextTime();
103 | }
104 |
105 | bool InitLocationDat(void)
106 | {
107 | LastTime = SDL_GetTicks();
108 | InitNextTime();
109 | NewMacDateInSeconds = LastTime / 1000;
110 | CurMacDateInSeconds = NewMacDateInSeconds;
111 |
112 | return true;
113 | }
114 |
--------------------------------------------------------------------------------
/src/UTIL/DATE2SEC.c:
--------------------------------------------------------------------------------
1 | /*
2 | UTIL/DATE2SEC.h
3 | Copyright (C) 2003 Bradford L. Barrett, Paul C. Pratt
4 |
5 | You can redistribute this file and/or modify it under the terms
6 | of version 2 of the GNU General Public License as published by
7 | the Free Software Foundation. You should have received a copy
8 | of the license along with this file; see the file COPYING.
9 |
10 | This file is distributed in the hope that it will be useful,
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | license for more details.
14 | */
15 |
16 | /*
17 | DATE 2(to) SEConds
18 |
19 | convert year/month/day/hour/minute/second
20 | to number of seconds since the beginning
21 | of 1904, the format for storing dates
22 | on the Macintosh.
23 |
24 | The function jdate is from the program Webalizer
25 | by Bradford L. Barrett.
26 | */
27 |
28 |
29 | /*
30 | The function jdate was found at the end of the file
31 | webalizer.c in the program webalizer at
32 | "www.mrunix.net/webalizer/".
33 | Here is copyright info from the top of that file:
34 |
35 | webalizer - a web server log analysis program
36 |
37 | Copyright (C) 1997-2000 Bradford L. Barrett (brad@mrunix.net)
38 |
39 | This program is free software; you can redistribute it and/or modify
40 | it under the terms of the GNU General Public License as published by
41 | the Free Software Foundation; either version 2 of the License, or
42 | (at your option) any later version, and provided that the above
43 | copyright and permission notice is included with all distributed
44 | copies of this or derived software.
45 | */
46 |
47 | #include "SYSDEPNS.h"
48 | #include "DATE2SEC.h"
49 |
50 | uint32_t jdate(int day, int month, int year)
51 | {
52 | uint32_t days; /* value returned */
53 | int mtable[] = {
54 | 0, 31, 59, 90, 120, 151,
55 | 181, 212, 243, 273, 304, 334
56 | };
57 |
58 | /*
59 | First, calculate base number including leap
60 | and Centenial year stuff
61 | */
62 |
63 | days = (((uint32_t)year * 365) + day + mtable[month - 1]
64 | + ((year + 4) / 4) - ((year / 100) - (year / 400)));
65 |
66 | /* now adjust for leap year before March 1st */
67 |
68 | if ((year % 4 == 0)
69 | && (! ((year % 100 == 0) && (year % 400 != 0)))
70 | && (month < 3))
71 | {
72 | --days;
73 | }
74 |
75 | /* done, return with calculated value */
76 |
77 | return (days + 5);
78 | }
79 |
80 | uint32_t Date2MacSeconds(int second, int minute, int hour,
81 | int day, int month, int year)
82 | {
83 | uint32_t curjdate;
84 | uint32_t basejdate;
85 |
86 | curjdate = jdate(day, month, year);
87 | basejdate = jdate(1, 1, 1904);
88 | return (((curjdate - basejdate) * 24 + hour) * 60
89 | + minute) * 60 + second;
90 | }
91 |
--------------------------------------------------------------------------------
/src/UTIL/DATE2SEC.h:
--------------------------------------------------------------------------------
1 | #ifndef DATE2SEC_H
2 | #define DATE2SEC_H
3 | #include "SYSDEPNS.h"
4 |
5 | /* ************************************************************* */
6 | /* */
7 | /* JDATE - Julian date calculator */
8 | /* */
9 | /* Calculates the number of days since Jan 1, 0000. */
10 | /* */
11 | /* Originally written by Bradford L. Barrett (03/17/1988) */
12 | /* Returns an unsigned long value representing the number of */
13 | /* days since January 1, 0000. */
14 | /* */
15 | /* Note: Due to the changes made by Pope Gregory XIII in the */
16 | /* 16th Centyry (Feb 24, 1582), dates before 1583 will */
17 | /* not return a truely accurate number (will be at least */
18 | /* 10 days off). Somehow, I don't think this will */
19 | /* present much of a problem for most situations :) */
20 | /* */
21 | /* The number returned is adjusted by 5 to facilitate day of */
22 | /* week calculations. The mod of the returned value gives the */
23 | /* day of the week the date is. (ie: dow = days % 7) where */
24 | /* dow will return 0=Sunday, 1=Monday, 2=Tuesday, etc... */
25 | /* */
26 | /* ************************************************************* */
27 | uint32_t jdate(int day, int month, int year);
28 |
29 | uint32_t Date2MacSeconds(
30 | int second, int minute, int hour, int day, int month, int year
31 | );
32 |
33 |
34 | #endif
--------------------------------------------------------------------------------
/src/UTIL/PBUFSTDC.h:
--------------------------------------------------------------------------------
1 | /*
2 | UTILS/PBUFSTDC.h
3 |
4 | Copyright (C) 2018 Paul C. Pratt
5 |
6 | You can redistribute this file and/or modify it under the terms
7 | of version 2 of the GNU General Public License as published by
8 | the Free Software Foundation. You should have received a copy
9 | of the license along with this file; see the file COPYING.
10 |
11 | This file is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | license for more details.
15 | */
16 |
17 | /*
18 | Parameter BUFfers implemented with STanDard C library
19 | */
20 |
21 |
22 | #if IncludePbufs
23 | static void *PbufDat[NumPbufs];
24 | #endif
25 |
26 | #if IncludePbufs
27 | static MacErr_t PbufNewFromPtr(void *p, uint32_t count, tPbuf *r)
28 | {
29 | tPbuf i;
30 | MacErr_t err;
31 |
32 | if (! FirstFreePbuf(&i)) {
33 | free(p);
34 | err = mnvm_miscErr;
35 | } else {
36 | *r = i;
37 | PbufDat[i] = p;
38 | PbufNewNotify(i, count);
39 | err = mnvm_noErr;
40 | }
41 |
42 | return err;
43 | }
44 | #endif
45 |
46 | #if IncludePbufs
47 | static void PbufKillToPtr(void **p, uint32_t *count, tPbuf r)
48 | {
49 | *p = PbufDat[r];
50 | *count = PbufSize[r];
51 |
52 | PbufDisposeNotify(r);
53 | }
54 | #endif
55 |
56 | #if IncludePbufs
57 | GLOBALOSGLUFUNC MacErr_t PbufNew(uint32_t count, tPbuf *r)
58 | {
59 | MacErr_t err = mnvm_miscErr;
60 |
61 | void *p = calloc(1, count);
62 | if (NULL != p) {
63 | err = PbufNewFromPtr(p, count, r);
64 | }
65 |
66 | return err;
67 | }
68 | #endif
69 |
70 | #if IncludePbufs
71 | GLOBALOSGLUPROC PbufDispose(tPbuf i)
72 | {
73 | void *p;
74 | uint32_t count;
75 |
76 | PbufKillToPtr(&p, &count, i);
77 |
78 | free(p);
79 | }
80 | #endif
81 |
82 | #if IncludePbufs
83 | static void UnInitPbufs(void)
84 | {
85 | tPbuf i;
86 |
87 | for (i = 0; i < NumPbufs; ++i) {
88 | if (PbufIsAllocated(i)) {
89 | PbufDispose(i);
90 | }
91 | }
92 | }
93 | #endif
94 |
95 | #if IncludePbufs
96 | #define PbufHaveLock 1
97 | #endif
98 |
99 | #if IncludePbufs
100 | static uint8_t * PbufLock(tPbuf i)
101 | {
102 | return (uint8_t *)PbufDat[i];
103 | }
104 | #endif
105 |
106 | #if IncludePbufs
107 | #define PbufUnlock(i)
108 | #endif
109 |
110 | #if IncludePbufs
111 | GLOBALOSGLUPROC PbufTransfer(uint8_t * Buffer,
112 | tPbuf i, uint32_t offset, uint32_t count, bool IsWrite)
113 | {
114 | void *p = ((uint8_t *)PbufDat[i]) + offset;
115 | if (IsWrite) {
116 | (void) memcpy(p, Buffer, count);
117 | } else {
118 | (void) memcpy(Buffer, p, count);
119 | }
120 | }
121 | #endif
122 |
--------------------------------------------------------------------------------