mirror of
https://github.com/zydeco/minivmac4ios.git
synced 2025-02-07 22:30:46 +00:00
initial implementation
This commit is contained in:
parent
71111a3318
commit
fc5589a944
58
.clang-format
Normal file
58
.clang-format
Normal file
@ -0,0 +1,58 @@
|
||||
---
|
||||
Language: Cpp
|
||||
AccessModifierOffset: -1
|
||||
ConstructorInitializerIndentWidth: 4
|
||||
AlignEscapedNewlinesLeft: true
|
||||
AlignTrailingComments: true
|
||||
AllowAllParametersOfDeclarationOnNextLine: false
|
||||
AllowShortBlocksOnASingleLine: false
|
||||
AllowShortIfStatementsOnASingleLine: false
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
AllowShortFunctionsOnASingleLine: Inline
|
||||
AlwaysBreakTemplateDeclarations: true
|
||||
AlwaysBreakBeforeMultilineStrings: true
|
||||
BreakBeforeBinaryOperators: false
|
||||
BreakBeforeTernaryOperators: true
|
||||
BreakConstructorInitializersBeforeComma: false
|
||||
BinPackParameters: false
|
||||
ColumnLimit: 0
|
||||
ConstructorInitializerAllOnOneLineOrOnePerLine: true
|
||||
DerivePointerAlignment: false
|
||||
ExperimentalAutoDetectBinPacking: false
|
||||
IndentCaseLabels: true
|
||||
IndentWrappedFunctionNames: false
|
||||
IndentFunctionDeclarationAfterType: false
|
||||
MaxEmptyLinesToKeep: 1
|
||||
KeepEmptyLinesAtTheStartOfBlocks: false
|
||||
NamespaceIndentation: None
|
||||
ObjCSpaceAfterProperty: true
|
||||
ObjCSpaceBeforeProtocolList: true
|
||||
ObjCBlockIndentWidth: 4
|
||||
PenaltyBreakBeforeFirstCallParameter: 1
|
||||
PenaltyBreakComment: 300
|
||||
PenaltyBreakString: 1000
|
||||
PenaltyBreakFirstLessLess: 120
|
||||
PenaltyExcessCharacter: 1000000
|
||||
PenaltyReturnTypeOnItsOwnLine: 200
|
||||
PointerAlignment: Right
|
||||
SpacesBeforeTrailingComments: 2
|
||||
Cpp11BracedListStyle: true
|
||||
Standard: Cpp03
|
||||
IndentWidth: 4
|
||||
TabWidth: 4
|
||||
UseTab: Never
|
||||
BreakBeforeBraces: Attach
|
||||
SpacesInParentheses: false
|
||||
SpacesInAngles: false
|
||||
SpaceInEmptyParentheses: false
|
||||
SpacesInCStyleCastParentheses: false
|
||||
SpacesInContainerLiterals: true
|
||||
SpaceBeforeAssignmentOperators: true
|
||||
ContinuationIndentWidth: 4
|
||||
CommentPragmas: '^ IWYU pragma:'
|
||||
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
|
||||
SpaceBeforeParens: ControlStatements
|
||||
DisableFormat: false
|
||||
SortIncludes: false
|
||||
...
|
||||
|
@ -7,6 +7,23 @@
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
28CE8EB51CD4C3B200FE25A8 /* GLOBGLUE.c in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8E931CD4C3B200FE25A8 /* GLOBGLUE.c */; };
|
||||
28CE8EB61CD4C3B200FE25A8 /* IWMEMDEV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8E961CD4C3B200FE25A8 /* IWMEMDEV.c */; };
|
||||
28CE8EB71CD4C3B200FE25A8 /* KBRDEMDV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8E981CD4C3B200FE25A8 /* KBRDEMDV.c */; };
|
||||
28CE8EB81CD4C3B200FE25A8 /* M68KITAB.c in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8E9A1CD4C3B200FE25A8 /* M68KITAB.c */; };
|
||||
28CE8EB91CD4C3B200FE25A8 /* MINEM68K.c in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8E9C1CD4C3B200FE25A8 /* MINEM68K.c */; };
|
||||
28CE8EBA1CD4C3B200FE25A8 /* MOUSEMDV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8E9E1CD4C3B200FE25A8 /* MOUSEMDV.c */; };
|
||||
28CE8EBB1CD4C3B200FE25A8 /* PROGMAIN.c in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8EA11CD4C3B200FE25A8 /* PROGMAIN.c */; };
|
||||
28CE8EBC1CD4C3B200FE25A8 /* ROMEMDEV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8EA31CD4C3B200FE25A8 /* ROMEMDEV.c */; };
|
||||
28CE8EBD1CD4C3B200FE25A8 /* RTCEMDEV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8EA51CD4C3B200FE25A8 /* RTCEMDEV.c */; };
|
||||
28CE8EBE1CD4C3B200FE25A8 /* SCCEMDEV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8EA71CD4C3B200FE25A8 /* SCCEMDEV.c */; };
|
||||
28CE8EBF1CD4C3B200FE25A8 /* SCRNEMDV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8EA91CD4C3B200FE25A8 /* SCRNEMDV.c */; };
|
||||
28CE8EC01CD4C3B200FE25A8 /* SCSIEMDV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8EAC1CD4C3B200FE25A8 /* SCSIEMDV.c */; };
|
||||
28CE8EC11CD4C3B200FE25A8 /* SNDEMDEV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8EAE1CD4C3B200FE25A8 /* SNDEMDEV.c */; };
|
||||
28CE8EC21CD4C3B200FE25A8 /* SONYEMDV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8EB01CD4C3B200FE25A8 /* SONYEMDV.c */; };
|
||||
28CE8EC31CD4C3B200FE25A8 /* VIAEMDEV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8EB31CD4C3B200FE25A8 /* VIAEMDEV.c */; };
|
||||
28CE8ECC1CD4CDC500FE25A8 /* MYOSGLUE.m in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8ECB1CD4CDC500FE25A8 /* MYOSGLUE.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
||||
28CE8ED61CD4F56C00FE25A8 /* ScreenView.m in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8ED51CD4F56C00FE25A8 /* ScreenView.m */; };
|
||||
28F676C21CD15E0B00FC6FA6 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 28F676C11CD15E0B00FC6FA6 /* main.m */; };
|
||||
28F676C51CD15E0B00FC6FA6 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 28F676C41CD15E0B00FC6FA6 /* AppDelegate.m */; };
|
||||
28F676C81CD15E0B00FC6FA6 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28F676C71CD15E0B00FC6FA6 /* ViewController.m */; };
|
||||
@ -16,6 +33,50 @@
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
28CE8E881CD4C33E00FE25A8 /* CNFGGLOB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CNFGGLOB.h; sourceTree = "<group>"; };
|
||||
28CE8E891CD4C33E00FE25A8 /* CNFGRAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CNFGRAPI.h; sourceTree = "<group>"; };
|
||||
28CE8E8A1CD4C33E00FE25A8 /* EMCONFIG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMCONFIG.h; sourceTree = "<group>"; };
|
||||
28CE8E8F1CD4C3B200FE25A8 /* COMOSGLU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = COMOSGLU.h; sourceTree = "<group>"; };
|
||||
28CE8E911CD4C3B200FE25A8 /* DATE2SEC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DATE2SEC.h; sourceTree = "<group>"; };
|
||||
28CE8E921CD4C3B200FE25A8 /* ENDIANAC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ENDIANAC.h; sourceTree = "<group>"; };
|
||||
28CE8E931CD4C3B200FE25A8 /* GLOBGLUE.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = GLOBGLUE.c; sourceTree = "<group>"; };
|
||||
28CE8E941CD4C3B200FE25A8 /* GLOBGLUE.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLOBGLUE.h; sourceTree = "<group>"; };
|
||||
28CE8E961CD4C3B200FE25A8 /* IWMEMDEV.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = IWMEMDEV.c; sourceTree = "<group>"; };
|
||||
28CE8E971CD4C3B200FE25A8 /* IWMEMDEV.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IWMEMDEV.h; sourceTree = "<group>"; };
|
||||
28CE8E981CD4C3B200FE25A8 /* KBRDEMDV.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = KBRDEMDV.c; sourceTree = "<group>"; };
|
||||
28CE8E991CD4C3B200FE25A8 /* KBRDEMDV.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KBRDEMDV.h; sourceTree = "<group>"; };
|
||||
28CE8E9A1CD4C3B200FE25A8 /* M68KITAB.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = M68KITAB.c; sourceTree = "<group>"; };
|
||||
28CE8E9B1CD4C3B200FE25A8 /* M68KITAB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = M68KITAB.h; sourceTree = "<group>"; };
|
||||
28CE8E9C1CD4C3B200FE25A8 /* MINEM68K.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = MINEM68K.c; sourceTree = "<group>"; };
|
||||
28CE8E9D1CD4C3B200FE25A8 /* MINEM68K.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MINEM68K.h; sourceTree = "<group>"; };
|
||||
28CE8E9E1CD4C3B200FE25A8 /* MOUSEMDV.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = MOUSEMDV.c; sourceTree = "<group>"; };
|
||||
28CE8E9F1CD4C3B200FE25A8 /* MOUSEMDV.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MOUSEMDV.h; sourceTree = "<group>"; };
|
||||
28CE8EA01CD4C3B200FE25A8 /* MYOSGLUE.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MYOSGLUE.h; sourceTree = "<group>"; };
|
||||
28CE8EA11CD4C3B200FE25A8 /* PROGMAIN.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = PROGMAIN.c; sourceTree = "<group>"; };
|
||||
28CE8EA21CD4C3B200FE25A8 /* PROGMAIN.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PROGMAIN.h; sourceTree = "<group>"; };
|
||||
28CE8EA31CD4C3B200FE25A8 /* ROMEMDEV.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ROMEMDEV.c; sourceTree = "<group>"; };
|
||||
28CE8EA41CD4C3B200FE25A8 /* ROMEMDEV.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ROMEMDEV.h; sourceTree = "<group>"; };
|
||||
28CE8EA51CD4C3B200FE25A8 /* RTCEMDEV.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = RTCEMDEV.c; sourceTree = "<group>"; };
|
||||
28CE8EA61CD4C3B200FE25A8 /* RTCEMDEV.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCEMDEV.h; sourceTree = "<group>"; };
|
||||
28CE8EA71CD4C3B200FE25A8 /* SCCEMDEV.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SCCEMDEV.c; sourceTree = "<group>"; };
|
||||
28CE8EA81CD4C3B200FE25A8 /* SCCEMDEV.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SCCEMDEV.h; sourceTree = "<group>"; };
|
||||
28CE8EA91CD4C3B200FE25A8 /* SCRNEMDV.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SCRNEMDV.c; sourceTree = "<group>"; };
|
||||
28CE8EAA1CD4C3B200FE25A8 /* SCRNEMDV.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SCRNEMDV.h; sourceTree = "<group>"; };
|
||||
28CE8EAB1CD4C3B200FE25A8 /* SCRNMAPR.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SCRNMAPR.h; sourceTree = "<group>"; };
|
||||
28CE8EAC1CD4C3B200FE25A8 /* SCSIEMDV.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SCSIEMDV.c; sourceTree = "<group>"; };
|
||||
28CE8EAD1CD4C3B200FE25A8 /* SCSIEMDV.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SCSIEMDV.h; sourceTree = "<group>"; };
|
||||
28CE8EAE1CD4C3B200FE25A8 /* SNDEMDEV.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SNDEMDEV.c; sourceTree = "<group>"; };
|
||||
28CE8EAF1CD4C3B200FE25A8 /* SNDEMDEV.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNDEMDEV.h; sourceTree = "<group>"; };
|
||||
28CE8EB01CD4C3B200FE25A8 /* SONYEMDV.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SONYEMDV.c; sourceTree = "<group>"; };
|
||||
28CE8EB11CD4C3B200FE25A8 /* SONYEMDV.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SONYEMDV.h; sourceTree = "<group>"; };
|
||||
28CE8EB21CD4C3B200FE25A8 /* SYSDEPNS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SYSDEPNS.h; sourceTree = "<group>"; };
|
||||
28CE8EB31CD4C3B200FE25A8 /* VIAEMDEV.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = VIAEMDEV.c; sourceTree = "<group>"; };
|
||||
28CE8EB41CD4C3B200FE25A8 /* VIAEMDEV.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VIAEMDEV.h; sourceTree = "<group>"; };
|
||||
28CE8ECB1CD4CDC500FE25A8 /* MYOSGLUE.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MYOSGLUE.m; sourceTree = "<group>"; };
|
||||
28CE8ECD1CD4D1A100FE25A8 /* STRCONST.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = STRCONST.h; sourceTree = "<group>"; };
|
||||
28CE8ECF1CD4D5B900FE25A8 /* INTLCHAR.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = INTLCHAR.h; sourceTree = "<group>"; };
|
||||
28CE8ED41CD4F56C00FE25A8 /* ScreenView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScreenView.h; sourceTree = "<group>"; };
|
||||
28CE8ED51CD4F56C00FE25A8 /* ScreenView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScreenView.m; sourceTree = "<group>"; };
|
||||
28F676BD1CD15E0B00FC6FA6 /* Mini vMac.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Mini vMac.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
28F676C11CD15E0B00FC6FA6 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
28F676C31CD15E0B00FC6FA6 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
||||
@ -39,6 +100,61 @@
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
28CE8E871CD4C33E00FE25A8 /* mnvm_cfg */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
28CE8E881CD4C33E00FE25A8 /* CNFGGLOB.h */,
|
||||
28CE8E891CD4C33E00FE25A8 /* CNFGRAPI.h */,
|
||||
28CE8E8A1CD4C33E00FE25A8 /* EMCONFIG.h */,
|
||||
);
|
||||
path = mnvm_cfg;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
28CE8E8E1CD4C3B200FE25A8 /* mnvm_core */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
28CE8ECF1CD4D5B900FE25A8 /* INTLCHAR.h */,
|
||||
28CE8ECD1CD4D1A100FE25A8 /* STRCONST.h */,
|
||||
28CE8E8F1CD4C3B200FE25A8 /* COMOSGLU.h */,
|
||||
28CE8E911CD4C3B200FE25A8 /* DATE2SEC.h */,
|
||||
28CE8E921CD4C3B200FE25A8 /* ENDIANAC.h */,
|
||||
28CE8E931CD4C3B200FE25A8 /* GLOBGLUE.c */,
|
||||
28CE8E941CD4C3B200FE25A8 /* GLOBGLUE.h */,
|
||||
28CE8E961CD4C3B200FE25A8 /* IWMEMDEV.c */,
|
||||
28CE8E971CD4C3B200FE25A8 /* IWMEMDEV.h */,
|
||||
28CE8E981CD4C3B200FE25A8 /* KBRDEMDV.c */,
|
||||
28CE8E991CD4C3B200FE25A8 /* KBRDEMDV.h */,
|
||||
28CE8E9A1CD4C3B200FE25A8 /* M68KITAB.c */,
|
||||
28CE8E9B1CD4C3B200FE25A8 /* M68KITAB.h */,
|
||||
28CE8E9C1CD4C3B200FE25A8 /* MINEM68K.c */,
|
||||
28CE8E9D1CD4C3B200FE25A8 /* MINEM68K.h */,
|
||||
28CE8E9E1CD4C3B200FE25A8 /* MOUSEMDV.c */,
|
||||
28CE8E9F1CD4C3B200FE25A8 /* MOUSEMDV.h */,
|
||||
28CE8EA01CD4C3B200FE25A8 /* MYOSGLUE.h */,
|
||||
28CE8EA11CD4C3B200FE25A8 /* PROGMAIN.c */,
|
||||
28CE8EA21CD4C3B200FE25A8 /* PROGMAIN.h */,
|
||||
28CE8EA31CD4C3B200FE25A8 /* ROMEMDEV.c */,
|
||||
28CE8EA41CD4C3B200FE25A8 /* ROMEMDEV.h */,
|
||||
28CE8EA51CD4C3B200FE25A8 /* RTCEMDEV.c */,
|
||||
28CE8EA61CD4C3B200FE25A8 /* RTCEMDEV.h */,
|
||||
28CE8EA71CD4C3B200FE25A8 /* SCCEMDEV.c */,
|
||||
28CE8EA81CD4C3B200FE25A8 /* SCCEMDEV.h */,
|
||||
28CE8EA91CD4C3B200FE25A8 /* SCRNEMDV.c */,
|
||||
28CE8EAA1CD4C3B200FE25A8 /* SCRNEMDV.h */,
|
||||
28CE8EAB1CD4C3B200FE25A8 /* SCRNMAPR.h */,
|
||||
28CE8EAC1CD4C3B200FE25A8 /* SCSIEMDV.c */,
|
||||
28CE8EAD1CD4C3B200FE25A8 /* SCSIEMDV.h */,
|
||||
28CE8EAE1CD4C3B200FE25A8 /* SNDEMDEV.c */,
|
||||
28CE8EAF1CD4C3B200FE25A8 /* SNDEMDEV.h */,
|
||||
28CE8EB01CD4C3B200FE25A8 /* SONYEMDV.c */,
|
||||
28CE8EB11CD4C3B200FE25A8 /* SONYEMDV.h */,
|
||||
28CE8EB21CD4C3B200FE25A8 /* SYSDEPNS.h */,
|
||||
28CE8EB31CD4C3B200FE25A8 /* VIAEMDEV.c */,
|
||||
28CE8EB41CD4C3B200FE25A8 /* VIAEMDEV.h */,
|
||||
);
|
||||
path = mnvm_core;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
28F676B41CD15E0B00FC6FA6 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -60,12 +176,17 @@
|
||||
children = (
|
||||
28F676C31CD15E0B00FC6FA6 /* AppDelegate.h */,
|
||||
28F676C41CD15E0B00FC6FA6 /* AppDelegate.m */,
|
||||
28CE8ECB1CD4CDC500FE25A8 /* MYOSGLUE.m */,
|
||||
28CE8ED41CD4F56C00FE25A8 /* ScreenView.h */,
|
||||
28CE8ED51CD4F56C00FE25A8 /* ScreenView.m */,
|
||||
28F676C61CD15E0B00FC6FA6 /* ViewController.h */,
|
||||
28F676C71CD15E0B00FC6FA6 /* ViewController.m */,
|
||||
28F676C91CD15E0B00FC6FA6 /* Main.storyboard */,
|
||||
28F676CC1CD15E0B00FC6FA6 /* Assets.xcassets */,
|
||||
28F676CE1CD15E0B00FC6FA6 /* LaunchScreen.storyboard */,
|
||||
28F676D11CD15E0B00FC6FA6 /* Info.plist */,
|
||||
28CE8E8E1CD4C3B200FE25A8 /* mnvm_core */,
|
||||
28CE8E871CD4C33E00FE25A8 /* mnvm_cfg */,
|
||||
28F676C01CD15E0B00FC6FA6 /* Supporting Files */,
|
||||
);
|
||||
path = "Mini vMac";
|
||||
@ -149,8 +270,25 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
28CE8EC01CD4C3B200FE25A8 /* SCSIEMDV.c in Sources */,
|
||||
28CE8EC11CD4C3B200FE25A8 /* SNDEMDEV.c in Sources */,
|
||||
28CE8EB51CD4C3B200FE25A8 /* GLOBGLUE.c in Sources */,
|
||||
28CE8EBF1CD4C3B200FE25A8 /* SCRNEMDV.c in Sources */,
|
||||
28CE8EBD1CD4C3B200FE25A8 /* RTCEMDEV.c in Sources */,
|
||||
28CE8EB61CD4C3B200FE25A8 /* IWMEMDEV.c in Sources */,
|
||||
28CE8ED61CD4F56C00FE25A8 /* ScreenView.m in Sources */,
|
||||
28CE8EB91CD4C3B200FE25A8 /* MINEM68K.c in Sources */,
|
||||
28CE8EBA1CD4C3B200FE25A8 /* MOUSEMDV.c in Sources */,
|
||||
28CE8EC31CD4C3B200FE25A8 /* VIAEMDEV.c in Sources */,
|
||||
28CE8EB81CD4C3B200FE25A8 /* M68KITAB.c in Sources */,
|
||||
28CE8EB71CD4C3B200FE25A8 /* KBRDEMDV.c in Sources */,
|
||||
28CE8EBC1CD4C3B200FE25A8 /* ROMEMDEV.c in Sources */,
|
||||
28CE8EBB1CD4C3B200FE25A8 /* PROGMAIN.c in Sources */,
|
||||
28F676C81CD15E0B00FC6FA6 /* ViewController.m in Sources */,
|
||||
28CE8EC21CD4C3B200FE25A8 /* SONYEMDV.c in Sources */,
|
||||
28F676C51CD15E0B00FC6FA6 /* AppDelegate.m in Sources */,
|
||||
28CE8EBE1CD4C3B200FE25A8 /* SCCEMDEV.c in Sources */,
|
||||
28CE8ECC1CD4CDC500FE25A8 /* MYOSGLUE.m in Sources */,
|
||||
28F676C21CD15E0B00FC6FA6 /* main.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@ -267,7 +405,7 @@
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
INFOPLIST_FILE = "Mini vMac/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "net.namedfork.Mini-vMac";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.namedfork.minivmac;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
@ -278,7 +416,7 @@
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
INFOPLIST_FILE = "Mini vMac/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "net.namedfork.Mini-vMac";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.namedfork.minivmac;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
@ -302,6 +440,7 @@
|
||||
28F676D61CD15E0B00FC6FA6 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
|
@ -12,6 +12,7 @@
|
||||
|
||||
@property (strong, nonatomic) UIWindow *window;
|
||||
|
||||
+ (instancetype)sharedInstance;
|
||||
|
||||
@end
|
||||
|
||||
|
@ -7,6 +7,14 @@
|
||||
//
|
||||
|
||||
#import "AppDelegate.h"
|
||||
#include "CNFGRAPI.h"
|
||||
#include "SYSDEPNS.h"
|
||||
#include "MYOSGLUE.h"
|
||||
|
||||
IMPORTPROC RunEmulator(void);
|
||||
IMPORTPROC SetSpeedStopped(blnr stopped);
|
||||
|
||||
static AppDelegate *sharedAppDelegate = nil;
|
||||
|
||||
@interface AppDelegate ()
|
||||
|
||||
@ -14,32 +22,25 @@
|
||||
|
||||
@implementation AppDelegate
|
||||
|
||||
+ (instancetype)sharedInstance {
|
||||
return sharedAppDelegate;
|
||||
}
|
||||
|
||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
||||
// Override point for customization after application launch.
|
||||
[self performSelector:@selector(runEmulator) withObject:nil afterDelay:1.0];
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void)applicationWillResignActive:(UIApplication *)application {
|
||||
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
|
||||
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
|
||||
}
|
||||
|
||||
- (void)applicationDidEnterBackground:(UIApplication *)application {
|
||||
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
|
||||
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
|
||||
SetSpeedStopped(trueblnr);
|
||||
}
|
||||
|
||||
- (void)applicationWillEnterForeground:(UIApplication *)application {
|
||||
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
|
||||
SetSpeedStopped(falseblnr);
|
||||
}
|
||||
|
||||
- (void)applicationDidBecomeActive:(UIApplication *)application {
|
||||
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
|
||||
}
|
||||
|
||||
- (void)applicationWillTerminate:(UIApplication *)application {
|
||||
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
|
||||
- (void)runEmulator {
|
||||
RunEmulator();
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -1,13 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6211" systemVersion="14A298i" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10116" systemVersion="15E65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6204"/>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--View Controller-->
|
||||
<scene sceneID="tne-QT-ifu">
|
||||
<objects>
|
||||
<viewController id="BYZ-38-t0r" customClass="ViewController" customModuleProvider="" sceneMemberID="viewController">
|
||||
<viewController id="BYZ-38-t0r" customClass="ViewController" sceneMemberID="viewController">
|
||||
<layoutGuides>
|
||||
<viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
|
||||
<viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
|
||||
@ -15,11 +16,24 @@
|
||||
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="70W-4V-tYr" customClass="ScreenView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="70W-4V-tYr" firstAttribute="bottom" secondItem="wfy-db-euE" secondAttribute="top" id="Xn1-gS-YTJ"/>
|
||||
<constraint firstItem="70W-4V-tYr" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leading" id="ddo-cc-64n"/>
|
||||
<constraint firstItem="70W-4V-tYr" firstAttribute="top" secondItem="8bC-Xf-vdC" secondAttribute="top" id="e9i-3F-kaI"/>
|
||||
<constraint firstAttribute="trailing" secondItem="70W-4V-tYr" secondAttribute="trailing" id="kDH-sv-91j"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="548" y="391"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
</document>
|
||||
|
@ -15,13 +15,15 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<string>2.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIFileSharingEnabled</key>
|
||||
<true/>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIMainStoryboardFile</key>
|
||||
@ -30,6 +32,10 @@
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
<key>UIRequiresFullScreen</key>
|
||||
<true/>
|
||||
<key>UIStatusBarHidden</key>
|
||||
<true/>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
|
1709
Mini vMac/MYOSGLUE.m
Normal file
1709
Mini vMac/MYOSGLUE.m
Normal file
File diff suppressed because it is too large
Load Diff
16
Mini vMac/ScreenView.h
Normal file
16
Mini vMac/ScreenView.h
Normal file
@ -0,0 +1,16 @@
|
||||
//
|
||||
// ScreenView.h
|
||||
// Mini vMac
|
||||
//
|
||||
// Created by Jesús A. Álvarez on 30/04/2016.
|
||||
// Copyright © 2016 namedfork. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface ScreenView : UIView
|
||||
|
||||
+ (instancetype)sharedScreenView;
|
||||
- (void)updateScreen:(CGImageRef)screenImage;
|
||||
|
||||
@end
|
57
Mini vMac/ScreenView.m
Normal file
57
Mini vMac/ScreenView.m
Normal file
@ -0,0 +1,57 @@
|
||||
//
|
||||
// ScreenView.m
|
||||
// Mini vMac
|
||||
//
|
||||
// Created by Jesús A. Álvarez on 30/04/2016.
|
||||
// Copyright © 2016 namedfork. All rights reserved.
|
||||
//
|
||||
|
||||
#import "ScreenView.h"
|
||||
#import "CNFGGLOB.h"
|
||||
|
||||
static ScreenView *sharedScreenView = nil;
|
||||
|
||||
@implementation ScreenView
|
||||
{
|
||||
CGImageRef screenImage;
|
||||
CGRect screenBounds;
|
||||
}
|
||||
|
||||
- (void)awakeFromNib {
|
||||
[super awakeFromNib];
|
||||
sharedScreenView = self;
|
||||
}
|
||||
|
||||
+ (instancetype)sharedScreenView {
|
||||
return sharedScreenView;
|
||||
}
|
||||
|
||||
- (void)updateScreen:(CGImageRef)newScreenImage {
|
||||
CGImageRelease(screenImage);
|
||||
screenImage = CGImageRetain(newScreenImage);
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)layoutSubviews {
|
||||
CGSize screenSize = CGSizeMake(vMacScreenWidth, vMacScreenHeight);
|
||||
CGRect viewBounds = self.bounds;
|
||||
CGFloat screenScale = MAX(screenSize.width / viewBounds.size.width, screenSize.height / viewBounds.size.height);
|
||||
screenBounds = CGRectMake(0, 0, screenSize.width / screenScale, screenSize.height / screenScale);
|
||||
screenBounds.origin.x = (viewBounds.size.width - screenBounds.size.width)/2;
|
||||
screenBounds = CGRectIntegral(screenBounds);
|
||||
[self setNeedsDisplay];
|
||||
}
|
||||
|
||||
- (void)drawRect:(CGRect)rect {
|
||||
// Draw screenImage
|
||||
CGImageRef imageRef = CGImageRetain(screenImage);
|
||||
if (imageRef) {
|
||||
CGContextRef ctx = UIGraphicsGetCurrentContext();
|
||||
CGContextTranslateCTM(ctx, 0, screenBounds.size.height);
|
||||
CGContextScaleCTM(ctx, 1.0, -1.0);
|
||||
CGContextDrawImage(ctx, screenBounds, imageRef);
|
||||
CGImageRelease(imageRef);
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
@ -14,14 +14,8 @@
|
||||
|
||||
@implementation ViewController
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view, typically from a nib.
|
||||
}
|
||||
|
||||
- (void)didReceiveMemoryWarning {
|
||||
[super didReceiveMemoryWarning];
|
||||
// Dispose of any resources that can be recreated.
|
||||
- (BOOL)prefersStatusBarHidden {
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
||||
|
92
Mini vMac/mnvm_cfg/CNFGGLOB.h
Normal file
92
Mini vMac/mnvm_cfg/CNFGGLOB.h
Normal file
@ -0,0 +1,92 @@
|
||||
/*
|
||||
Configuration options used by both platform specific
|
||||
and platform independent code.
|
||||
|
||||
This file is automatically generated by the build system,
|
||||
which tries to know what options are valid in what
|
||||
combinations. Avoid changing this file manually unless
|
||||
you know what you're doing.
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define BigEndianUnaligned 0
|
||||
#define LittleEndianUnaligned 1
|
||||
#define MayInline inline
|
||||
#define MayNotInline __attribute__((noinline))
|
||||
#define SmallGlobals 0
|
||||
#define cIncludeUnused 0
|
||||
#define UnusedParam(p) (void) p
|
||||
|
||||
/* --- integer types ---- */
|
||||
|
||||
typedef uint8_t ui3b;
|
||||
#define HaveRealui3b 1
|
||||
|
||||
typedef int8_t si3b;
|
||||
#define HaveRealsi3b 1
|
||||
|
||||
typedef uint16_t ui4b;
|
||||
#define HaveRealui4b 1
|
||||
|
||||
typedef int16_t si4b;
|
||||
#define HaveRealsi4b 1
|
||||
|
||||
typedef uint32_t ui5b;
|
||||
#define HaveRealui5b 1
|
||||
|
||||
typedef int32_t si5b;
|
||||
#define HaveRealsi5b 1
|
||||
|
||||
#define HaveRealui6b 0
|
||||
#define HaveRealsi6b 0
|
||||
|
||||
/* --- integer representation types ---- */
|
||||
|
||||
typedef ui3b ui3r;
|
||||
#define ui3beqr 1
|
||||
|
||||
typedef si3b si3r;
|
||||
#define si3beqr 1
|
||||
|
||||
typedef ui4b ui4r;
|
||||
#define ui4beqr 1
|
||||
|
||||
typedef si4b si4r;
|
||||
#define si4beqr 1
|
||||
|
||||
typedef ui5b ui5r;
|
||||
#define ui5beqr 1
|
||||
|
||||
typedef si5b si5r;
|
||||
#define si5beqr 1
|
||||
|
||||
/* capabilities provided by platform specific code */
|
||||
|
||||
#define MySoundEnabled 1
|
||||
|
||||
#define MySoundRecenterSilence 0
|
||||
#define kLn2SoundSampSz 4
|
||||
|
||||
#define dbglog_HAVE 0
|
||||
|
||||
#define NumDrives 16
|
||||
#define IncludeSonyRawMode 1
|
||||
#define IncludeSonyGetName 1
|
||||
#define IncludeSonyNew 0
|
||||
#define IncludeSonyNameNew 0
|
||||
|
||||
#define vMacScreenHeight 342
|
||||
#define vMacScreenWidth 512
|
||||
#define vMacScreenDepth 0
|
||||
|
||||
#define kROM_Size 0x00020000
|
||||
|
||||
#define IncludePbufs 1
|
||||
#define NumPbufs 4
|
||||
|
||||
#define EnableMouseMotion 1
|
||||
|
||||
#define IncludeHostTextClipExchange 1
|
||||
#define EnableAutoSlow 1
|
||||
#define EmLocalTalk 0
|
35
Mini vMac/mnvm_cfg/CNFGRAPI.h
Normal file
35
Mini vMac/mnvm_cfg/CNFGRAPI.h
Normal file
@ -0,0 +1,35 @@
|
||||
//#include <Carbon/Carbon.h>
|
||||
//#include <AGL/agl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#define MyAppIsBundle 1
|
||||
#define kMacCreatorSig 'MnvM'
|
||||
|
||||
#define RomFileName "vMac.ROM"
|
||||
#define EnableDragDrop 1
|
||||
#define EnableAltKeysMode 0
|
||||
#define SwapCommandControl 0
|
||||
#define VarFullScreen 1
|
||||
#define WantInitFullScreen 0
|
||||
#define MayFullScreen 1
|
||||
#define MayNotFullScreen 1
|
||||
#define WantInitMagnify 0
|
||||
#define EnableMagnify 0
|
||||
#define WantInitRunInBackground 0
|
||||
#define WantInitNotAutoSlow 0
|
||||
#define WantInitSpeedValue 3
|
||||
#define NeedRequestInsertDisk 1
|
||||
#define NeedDoMoreCommandsMsg 1
|
||||
#define NeedDoAboutMsg 1
|
||||
#define UseControlKeys 0
|
||||
#define UseActvCode 0
|
||||
#define EnableDemoMsg 0
|
||||
|
||||
/* version and other info to display to user */
|
||||
|
||||
#define NeedIntlChars 1
|
||||
#define kStrAppName "Mini vMac"
|
||||
#define kAppVariationStr "minivmac-3.4.0-ios"
|
||||
#define kStrCopyrightYear "2008-2016"
|
||||
#define kMaintainerName "Jesús A. Álvarez"
|
||||
#define kStrHomePage "http://www.namedfork.net/minivmac/"
|
172
Mini vMac/mnvm_cfg/EMCONFIG.h
Normal file
172
Mini vMac/mnvm_cfg/EMCONFIG.h
Normal file
@ -0,0 +1,172 @@
|
||||
/*
|
||||
Configuration options used by platform independent code.
|
||||
|
||||
This file is automatically generated by the build system,
|
||||
which tries to know what options are valid in what
|
||||
combinations. Avoid changing this file manually unless
|
||||
you know what you're doing.
|
||||
*/
|
||||
|
||||
#define EmClassicKbrd 1
|
||||
#define EmADB 0
|
||||
#define EmRTC 1
|
||||
#define EmPMU 0
|
||||
#define EmVIA2 0
|
||||
#define Use68020 0
|
||||
#define EmFPU 0
|
||||
#define EmMMU 0
|
||||
#define EmASC 0
|
||||
|
||||
#define CurEmMd kEmMd_Plus
|
||||
|
||||
#define kMyClockMult 1
|
||||
|
||||
#define WantCycByPriOp 1
|
||||
#define WantCloserCyc 0
|
||||
|
||||
#define kRAMa_Size 0x00200000
|
||||
#define kRAMb_Size 0x00200000
|
||||
|
||||
#define IncludeVidMem 0
|
||||
|
||||
#define EmVidCard 0
|
||||
|
||||
#define MaxATTListN 16
|
||||
#define IncludeExtnPbufs 1
|
||||
#define IncludeExtnHostTextClipExchange 1
|
||||
|
||||
#define Sony_SupportDC42 1
|
||||
#define Sony_SupportTags 1
|
||||
#define Sony_WantChecksumsUpdated 1
|
||||
#define Sony_VerifyChecksums 0
|
||||
#define CaretBlinkTime 0x03
|
||||
#define SpeakerVol 0x07
|
||||
#define DoubleClickTime 0x05
|
||||
#define MenuBlink 0x03
|
||||
#define AutoKeyThresh 0x06
|
||||
#define AutoKeyRate 0x03
|
||||
|
||||
|
||||
/* the Wire variables are 1/0, not true/false */
|
||||
|
||||
enum {
|
||||
|
||||
Wire_VIA1_iA0_SoundVolb0,
|
||||
#define SoundVolb0 (Wires[Wire_VIA1_iA0_SoundVolb0])
|
||||
#define VIA1_iA0 (Wires[Wire_VIA1_iA0_SoundVolb0])
|
||||
|
||||
Wire_VIA1_iA1_SoundVolb1,
|
||||
#define SoundVolb1 (Wires[Wire_VIA1_iA1_SoundVolb1])
|
||||
#define VIA1_iA1 (Wires[Wire_VIA1_iA1_SoundVolb1])
|
||||
|
||||
Wire_VIA1_iA2_SoundVolb2,
|
||||
#define SoundVolb2 (Wires[Wire_VIA1_iA2_SoundVolb2])
|
||||
#define VIA1_iA2 (Wires[Wire_VIA1_iA2_SoundVolb2])
|
||||
|
||||
Wire_VIA1_iA4_MemOverlay,
|
||||
#define MemOverlay (Wires[Wire_VIA1_iA4_MemOverlay])
|
||||
#define VIA1_iA4 (Wires[Wire_VIA1_iA4_MemOverlay])
|
||||
#define VIA1_iA4_ChangeNtfy MemOverlay_ChangeNtfy
|
||||
|
||||
Wire_VIA1_iA6_SCRNvPage2,
|
||||
#define SCRNvPage2 (Wires[Wire_VIA1_iA6_SCRNvPage2])
|
||||
#define VIA1_iA6 (Wires[Wire_VIA1_iA6_SCRNvPage2])
|
||||
|
||||
Wire_VIA1_iA5_IWMvSel,
|
||||
#define IWMvSel (Wires[Wire_VIA1_iA5_IWMvSel])
|
||||
#define VIA1_iA5 (Wires[Wire_VIA1_iA5_IWMvSel])
|
||||
|
||||
Wire_VIA1_iA7_SCCwaitrq,
|
||||
#define SCCwaitrq (Wires[Wire_VIA1_iA7_SCCwaitrq])
|
||||
#define VIA1_iA7 (Wires[Wire_VIA1_iA7_SCCwaitrq])
|
||||
|
||||
Wire_VIA1_iB0_RTCdataLine,
|
||||
#define RTCdataLine (Wires[Wire_VIA1_iB0_RTCdataLine])
|
||||
#define VIA1_iB0 (Wires[Wire_VIA1_iB0_RTCdataLine])
|
||||
#define VIA1_iB0_ChangeNtfy RTCdataLine_ChangeNtfy
|
||||
|
||||
Wire_VIA1_iB1_RTCclock,
|
||||
#define RTCclock (Wires[Wire_VIA1_iB1_RTCclock])
|
||||
#define VIA1_iB1 (Wires[Wire_VIA1_iB1_RTCclock])
|
||||
#define VIA1_iB1_ChangeNtfy RTCclock_ChangeNtfy
|
||||
|
||||
Wire_VIA1_iB2_RTCunEnabled,
|
||||
#define RTCunEnabled (Wires[Wire_VIA1_iB2_RTCunEnabled])
|
||||
#define VIA1_iB2 (Wires[Wire_VIA1_iB2_RTCunEnabled])
|
||||
#define VIA1_iB2_ChangeNtfy RTCunEnabled_ChangeNtfy
|
||||
|
||||
Wire_VIA1_iA3_SoundBuffer,
|
||||
#define SoundBuffer (Wires[Wire_VIA1_iA3_SoundBuffer])
|
||||
#define VIA1_iA3 (Wires[Wire_VIA1_iA3_SoundBuffer])
|
||||
|
||||
Wire_VIA1_iB3_MouseBtnUp,
|
||||
#define MouseBtnUp (Wires[Wire_VIA1_iB3_MouseBtnUp])
|
||||
#define VIA1_iB3 (Wires[Wire_VIA1_iB3_MouseBtnUp])
|
||||
|
||||
Wire_VIA1_iB4_MouseX2,
|
||||
#define MouseX2 (Wires[Wire_VIA1_iB4_MouseX2])
|
||||
#define VIA1_iB4 (Wires[Wire_VIA1_iB4_MouseX2])
|
||||
|
||||
Wire_VIA1_iB5_MouseY2,
|
||||
#define MouseY2 (Wires[Wire_VIA1_iB5_MouseY2])
|
||||
#define VIA1_iB5 (Wires[Wire_VIA1_iB5_MouseY2])
|
||||
|
||||
Wire_VIA1_iCB2_KybdDat,
|
||||
#define VIA1_iCB2 (Wires[Wire_VIA1_iCB2_KybdDat])
|
||||
#define VIA1_iCB2_ChangeNtfy Kybd_DataLineChngNtfy
|
||||
|
||||
Wire_VIA1_iB6_SCRNbeamInVid,
|
||||
#define SCRNbeamInVid (Wires[Wire_VIA1_iB6_SCRNbeamInVid])
|
||||
#define VIA1_iB6 (Wires[Wire_VIA1_iB6_SCRNbeamInVid])
|
||||
|
||||
Wire_VIA1_iB7_SoundDisable,
|
||||
#define SoundDisable (Wires[Wire_VIA1_iB7_SoundDisable])
|
||||
#define VIA1_iB7 (Wires[Wire_VIA1_iB7_SoundDisable])
|
||||
|
||||
Wire_VIA1_InterruptRequest,
|
||||
#define VIA1_InterruptRequest (Wires[Wire_VIA1_InterruptRequest])
|
||||
#define VIA1_interruptChngNtfy VIAorSCCinterruptChngNtfy
|
||||
|
||||
Wire_SCCInterruptRequest,
|
||||
#define SCCInterruptRequest (Wires[Wire_SCCInterruptRequest])
|
||||
#define SCCinterruptChngNtfy VIAorSCCinterruptChngNtfy
|
||||
|
||||
kNumWires
|
||||
};
|
||||
|
||||
|
||||
/* VIA configuration */
|
||||
#define VIA1_ORA_FloatVal 0xFF
|
||||
#define VIA1_ORB_FloatVal 0xFF
|
||||
#define VIA1_ORA_CanIn 0x80
|
||||
#define VIA1_ORA_CanOut 0x7F
|
||||
#define VIA1_ORB_CanIn 0x79
|
||||
#define VIA1_ORB_CanOut 0x87
|
||||
#define VIA1_IER_Never0 (1 << 1)
|
||||
#define VIA1_IER_Never1 ((1 << 3) | (1 << 4))
|
||||
#define VIA1_CB2modesAllowed 0x01
|
||||
#define VIA1_CA2modesAllowed 0x01
|
||||
|
||||
#define Mouse_Enabled SCC_InterruptsEnabled
|
||||
|
||||
#define VIA1_iCA1_PulseNtfy VIA1_iCA1_Sixtieth_PulseNtfy
|
||||
#define Sixtieth_PulseNtfy VIA1_iCA1_Sixtieth_PulseNtfy
|
||||
|
||||
#define VIA1_iCA2_PulseNtfy VIA1_iCA2_RTC_OneSecond_PulseNtfy
|
||||
#define RTC_OneSecond_PulseNtfy VIA1_iCA2_RTC_OneSecond_PulseNtfy
|
||||
|
||||
#define GetSoundInvertTime VIA1_GetT1InvertTime
|
||||
|
||||
#define KYBD_ShiftInData VIA1_ShiftOutData
|
||||
#define KYBD_ShiftOutData VIA1_ShiftInData
|
||||
|
||||
#define kCheckSumRom_Size kROM_Size
|
||||
|
||||
#define kExtn_Block_Base 0x00F40000
|
||||
#define kExtn_ln2Spc 5
|
||||
|
||||
#define kROM_Base 0x00400000
|
||||
#define kROM_ln2Spc 20
|
||||
|
||||
#define WantDisasm 0
|
||||
#define ExtraAbnormalReports 0
|
1
Mini vMac/mnvm_core/COMOSGLU.h
Executable file
1
Mini vMac/mnvm_core/COMOSGLU.h
Executable file
File diff suppressed because one or more lines are too long
1
Mini vMac/mnvm_core/DATE2SEC.h
Executable file
1
Mini vMac/mnvm_core/DATE2SEC.h
Executable file
@ -0,0 +1 @@
|
||||
/*
DATE2SEC.h
Copyright (C) 2003 Bradford L. Barrett, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
/*
DATE 2(to) SEConds
convert year/month/day/hour/minute/second
to number of seconds since the beginning
of 1904, the format for storing dates
on the Macintosh.
The function jdate is from the program Webalizer
by Bradford L. Barrett.
*/
#ifdef DATE2SEC_H
#error "header already included"
#else
#define DATE2SEC_H
#endif
/*
The function jdate was found at the end of the file
webalizer.c in the program webalizer at
"www.mrunix.net/webalizer/".
Here is copyright info from the top of that file:
webalizer - a web server log analysis program
Copyright (C) 1997-2000 Bradford L. Barrett (brad@mrunix.net)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version, and provided that the above
copyright and permission notice is included with all distributed
copies of this or derived software.
*/
/* ************************************************************* */
/* */
/* JDATE - Julian date calculator */
/* */
/* Calculates the number of days since Jan 1, 0000. */
/* */
/* Originally written by Bradford L. Barrett (03/17/1988) */
/* Returns an unsigned long value representing the number of */
/* days since January 1, 0000. */
/* */
/* Note: Due to the changes made by Pope Gregory XIII in the */
/* 16th Centyry (Feb 24, 1582), dates before 1583 will */
/* not return a truely accurate number (will be at least */
/* 10 days off). Somehow, I don't think this will */
/* present much of a problem for most situations :) */
/* */
/* Usage: days = jdate(day, month, year) */
/* */
/* The number returned is adjusted by 5 to facilitate day of */
/* week calculations. The mod of the returned value gives the */
/* day of the week the date is. (ie: dow = days % 7) where */
/* dow will return 0=Sunday, 1=Monday, 2=Tuesday, etc... */
/* */
/* ************************************************************* */
LOCALFUNC ui5b jdate(int day, int month, int year)
{
ui5b days; /* value returned */
int mtable[] = {
0, 31, 59, 90, 120, 151,
181, 212, 243, 273, 304, 334
};
/*
First, calculate base number including leap
and Centenial year stuff
*/
days = (((ui5b)year * 365) + day + mtable[month - 1]
+ ((year + 4) / 4) - ((year / 100) - (year / 400)));
/* now adjust for leap year before March 1st */
if ((year % 4 == 0)
&& (! ((year % 100 == 0) && (year % 400 != 0)))
&& (month < 3))
{
--days;
}
/* done, return with calculated value */
return (days + 5);
}
LOCALFUNC ui5b Date2MacSeconds(int second, int minute, int hour,
int day, int month, int year)
{
ui5b curjdate;
ui5b basejdate;
curjdate = jdate(day, month, year);
basejdate = jdate(1, 1, 1904);
return (((curjdate - basejdate) * 24 + hour) * 60
+ minute) * 60 + second;
}
|
1
Mini vMac/mnvm_core/ENDIANAC.h
Executable file
1
Mini vMac/mnvm_core/ENDIANAC.h
Executable file
@ -0,0 +1 @@
|
||||
/*
ENDIANAC.h
Copyright (C) 2006 Bernd Schmidt, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
/*
ENDIAN ACcess
Deals with endian issues in memory access.
This code is adapted from code in the Un*x Amiga Emulator by
Bernd Schmidt, as found in vMac by Philip Cummins.
*/
#ifdef ENDIANAC_H
#ifndef AllFiles
#error "header already included"
#endif
#else
#define ENDIANAC_H
#endif
#if 0
/* works in GCC from Apple. others? */
static inline ui5r MySwapUi5r(ui5r _data)
{
__asm__ ("bswap %0" : "+r" (_data));
return _data;
}
#define HaveMySwapUi5r 1
#endif
#ifndef HaveMySwapUi5r
#define HaveMySwapUi5r 0
#endif
#define do_get_mem_byte(a) ((ui3r)*((ui3b *)(a)))
#if BigEndianUnaligned
#define do_get_mem_word(a) ((ui4r)*((ui4b *)(a)))
#else
static MayInline ui4r do_get_mem_word(ui3p a)
{
#if LittleEndianUnaligned
ui4b b = (*((ui4b *)(a)));
return ((b & 0x00FF) << 8) | ((b >> 8) & 0x00FF);
#else
return (((ui4r)*a) << 8) | ((ui4r)*(a + 1));
#endif
}
#endif
#if BigEndianUnaligned
#define do_get_mem_long(a) ((ui5r)*((ui5b *)(a)))
#elif HaveMySwapUi5r && LittleEndianUnaligned
#define do_get_mem_long(a) (MySwapUi5r((ui5r)*((ui5b *)(a))))
#else
static MayInline ui5r do_get_mem_long(ui3p a)
{
#if LittleEndianUnaligned
#if 0
return ((b << 24) & 0xFF000000)
| ((b << 8) & 0x00FF0000)
| ((b >> 8) & 0x0000FF00)
| ((b >> 24) & 0x000000FF);
/*
no, this doesn't do well with apple tools,
instead try combining two 16 bit swaps.
*/
#endif
ui5b b = (*((ui5b *)(a)));
ui4b b1 = b;
ui4b b2 = b >> 16;
ui4b c1 = ((b1 & 0x00FF) << 8) | ((b1 >> 8) & 0x00FF);
ui4b c2 = ((b2 & 0x00FF) << 8) | ((b2 >> 8) & 0x00FF);
return (((ui5r)c1) << 16) | ((ui5r)c2);
/*
better, though still doesn't use BSWAP
instruction with apple tools for intel.
*/
#else
return (((ui5r)*a) << 24) | (((ui5r)*(a + 1)) << 16)
| (((ui5r)*(a + 2)) << 8) | ((ui5r)*(a + 3));
#endif
}
#endif
#define do_put_mem_byte(a, v) ((*((ui3b *)(a))) = (v))
#if BigEndianUnaligned
#define do_put_mem_word(a, v) ((*((ui4b *)(a))) = (v))
#else
static MayInline void do_put_mem_word(ui3p a, ui4r v)
{
#if LittleEndianUnaligned
ui4b b = ((v & 0x00FF) << 8) | ((v >> 8) & 0x00FF);
*(ui4b *)a = b;
#else
*a = v >> 8;
*(a + 1) = v;
#endif
}
#endif
#if BigEndianUnaligned
#define do_put_mem_long(a, v) ((*((ui5b *)(a))) = (v))
#elif HaveMySwapUi5r && LittleEndianUnaligned
#define do_put_mem_long(a, v) ((*((ui5b *)(a))) = MySwapUi5r(v))
#else
static MayInline void do_put_mem_long(ui3p a, ui5r v)
{
#if LittleEndianUnaligned
ui4b b1 = v;
ui4b b2 = v >> 16;
ui4b c1 = ((b1 & 0x00FF) << 8) | ((b1 >> 8) & 0x00FF);
ui4b c2 = ((b2 & 0x00FF) << 8) | ((b2 >> 8) & 0x00FF);
*(ui5b *)a = (c1 << 16) | c2;
#else
*a = v >> 24;
*(a + 1) = v >> 16;
*(a + 2) = v >> 8;
*(a + 3) = v;
#endif
}
#endif
|
1
Mini vMac/mnvm_core/GLOBGLUE.c
Executable file
1
Mini vMac/mnvm_core/GLOBGLUE.c
Executable file
File diff suppressed because one or more lines are too long
1
Mini vMac/mnvm_core/GLOBGLUE.h
Executable file
1
Mini vMac/mnvm_core/GLOBGLUE.h
Executable file
File diff suppressed because one or more lines are too long
1
Mini vMac/mnvm_core/INTLCHAR.h
Executable file
1
Mini vMac/mnvm_core/INTLCHAR.h
Executable file
File diff suppressed because one or more lines are too long
1
Mini vMac/mnvm_core/IWMEMDEV.c
Executable file
1
Mini vMac/mnvm_core/IWMEMDEV.c
Executable file
@ -0,0 +1 @@
|
||||
/*
IWMEVDEV.c
Copyright (C) 2006 Philip Cummins, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
/*
Integrated Woz Machine EMulated DEVice
Emulates the IWM found in the Mac Plus.
This code is adapted from "IWM.c" in vMac by Philip Cummins.
*/
/*
This is the emulation for the IWM, the Integrated Woz Machine.
It's basically a serial to parallel converter with some timing
in-built into it to perform handshaking. Emulation so far just
includes Status and Mode Register Accesses.
*/
#ifndef AllFiles
#include "SYSDEPNS.h"
#include "MYOSGLUE.h"
#include "EMCONFIG.h"
#include "GLOBGLUE.h"
#endif
#include "IWMEMDEV.h"
#define kph0L 0x00 /* CA0 off (0) */
#define kph0H 0x01 /* CA0 on (1) */
#define kph1L 0x02 /* CA1 off (0) */
#define kph1H 0x03 /* CA1 on (1) */
#define kph2L 0x04 /* CA2 off (0) */
#define kph2H 0x05 /* CA2 on (1) */
#define kph3L 0x06 /* LSTRB off (low) */
#define kph3H 0x07 /* LSTRB on (high) */
#define kmtrOff 0x08 /* disk enable off */
#define kmtrOn 0x09 /* disk enable on */
#define kintDrive 0x0A /* select internal drive */
#define kextDrive 0x0B /* select external drive */
#define kq6L 0x0C /* Q6 off */
#define kq6H 0x0D /* Q6 on */
#define kq7L 0x0E /* Q7 off */
#define kq7H 0x0F /* Q7 on */
#define kph0 0x01
#define kph1 0x02
#define kph2 0x04
#define kph3 0x08
#define kmtr 0x10
#define kdrv 0x20
#define kq6 0x40
#define kq7 0x80
typedef struct
{
ui3b DataIn; /* Read Data Register */
ui3b Handshake; /* Read Handshake Register */
ui3b Status; /* Read Status Register */
ui3b Mode;
/* Drive Off : Write Mode Register */
/* Drive On : Write Data Register */
ui3b DataOut; /* Write Data Register */
ui3b Lines; /* Used to Access Disk Drive Registers */
} IWM_Ty;
IWM_Ty IWM;
GLOBALPROC IWM_Reset(void)
{
IWM.DataIn = IWM.Handshake = IWM.Status = IWM.Mode =
IWM.DataOut = IWM.Lines = 0;
}
typedef enum {On, Off} Mode_Ty;
LOCALPROC IWM_Set_Lines(ui3b line, Mode_Ty the_mode)
{
if (the_mode == Off) {
IWM.Lines &= (0xFF - line);
} else {
IWM.Lines |= line;
}
}
LOCALFUNC ui3b IWM_Read_Reg(void)
{
switch ((IWM.Lines & (kq6 + kq7)) >> 6) {
case 0 :
#if (CurEmMd >= kEmMd_SE) && (CurEmMd <= kEmMd_IIx)
/* don't report */
#else
ReportAbnormal("IWM Data Read");
#endif
#ifdef _IWM_Debug
printf("IWM Data Read\n");
#endif
return IWM.DataIn;
break;
case 1 :
#ifdef _IWM_Debug
printf("IWM Status Read\n");
#endif
return IWM.Status;
break;
case 2 :
ReportAbnormal("IWM Handshake Read");
#ifdef _IWM_Debug
printf("IWM Handshake Read\n");
#endif
return IWM.Handshake;
break;
case 3 :
default :
/*
should alway be in 0-3,
but compiler warnings don't know that
*/
return 0;
break;
}
}
LOCALPROC IWM_Write_Reg(ui3b in)
{
if (((IWM.Lines & kmtr) >> 4) == 0) {
#ifdef _IWM_Debug
printf("IWM Mode Register Write\n");
#endif
IWM.Mode = in;
IWM.Status = ((IWM.Status & 0xE0) + (IWM.Mode & 0x1F));
}
}
GLOBALFUNC ui5b IWM_Access(ui5b Data, blnr WriteMem, CPTR addr)
{
switch (addr) {
case kph0L :
IWM_Set_Lines(kph0, Off);
break;
case kph0H :
IWM_Set_Lines(kph0, On);
break;
case kph1L :
IWM_Set_Lines(kph1, Off);
break;
case kph1H :
IWM_Set_Lines(kph1, On);
break;
case kph2L :
IWM_Set_Lines(kph2, Off);
break;
case kph2H :
IWM_Set_Lines(kph2, On);
break;
case kph3L :
IWM_Set_Lines(kph3, Off);
break;
case kph3H :
IWM_Set_Lines(kph3, On);
break;
case kmtrOff :
IWM.Status &= 0xDF;
IWM_Set_Lines(kmtr, Off);
break;
case kmtrOn :
IWM.Status |= 0x20;
IWM_Set_Lines(kmtr, On);
break;
case kintDrive :
IWM_Set_Lines(kdrv, Off);
break;
case kextDrive :
IWM_Set_Lines(kdrv, On);
break;
case kq6L :
IWM_Set_Lines(kq6, Off);
break;
case kq6H :
IWM_Set_Lines(kq6, On);
break;
case kq7L :
if (! WriteMem) {
Data = IWM_Read_Reg();
}
IWM_Set_Lines(kq7, Off);
break;
case kq7H :
if (WriteMem) {
IWM_Write_Reg(Data);
}
IWM_Set_Lines(kq7, On);
break;
}
return Data;
}
|
1
Mini vMac/mnvm_core/IWMEMDEV.h
Executable file
1
Mini vMac/mnvm_core/IWMEMDEV.h
Executable file
@ -0,0 +1 @@
|
||||
/*
IWMEVDEV.h
Copyright (C) 2004 Philip Cummins, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
#ifdef IWMEVDEV_H
#error "header already included"
#else
#define IWMEVDEV_H
#endif
EXPORTPROC IWM_Reset(void);
EXPORTFUNC ui5b IWM_Access(ui5b Data, blnr WriteMem, CPTR addr);
|
1
Mini vMac/mnvm_core/KBRDEMDV.c
Executable file
1
Mini vMac/mnvm_core/KBRDEMDV.c
Executable file
@ -0,0 +1 @@
|
||||
/*
KBRDEMDV.c
Copyright (C) 2006 Philip Cummins, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
/*
KeyBoaRD EMulated DeVice
Emulation of the keyboard in the Mac Plus.
This code adapted from "Keyboard.c" in vMac by Philip Cummins.
*/
#ifndef AllFiles
#include "SYSDEPNS.h"
#include "MYOSGLUE.h"
#include "EMCONFIG.h"
#include "GLOBGLUE.h"
#endif
#include "KBRDEMDV.h"
#ifdef _VIA_Debug
#include <stdio.h>
#endif
IMPORTPROC KYBD_ShiftOutData(ui3b v);
IMPORTFUNC ui3b KYBD_ShiftInData(void);
enum {
kKybdStateIdle,
kKybdStateRecievingCommand,
kKybdStateRecievedCommand,
kKybdStateRecievingEndCommand,
kKybdStates
};
LOCALVAR int KybdState = kKybdStateIdle;
LOCALVAR blnr HaveKeyBoardResult = falseblnr;
LOCALVAR ui3b KeyBoardResult;
LOCALPROC GotKeyBoardData(ui3b v)
{
if (KybdState != kKybdStateIdle) {
HaveKeyBoardResult = trueblnr;
KeyBoardResult = v;
} else {
KYBD_ShiftOutData(v);
VIA1_iCB2 = 1;
}
}
LOCALVAR ui3b InstantCommandData = 0x7B;
LOCALFUNC blnr AttemptToFinishInquiry(void)
{
int i;
blnr KeyDown;
ui3b Keyboard_Data;
if (FindKeyEvent(&i, &KeyDown)) {
if (i < 64) {
Keyboard_Data = i << 1;
if (! KeyDown) {
Keyboard_Data += 128;
}
} else {
Keyboard_Data = 121;
InstantCommandData = (i - 64) << 1;
if (! KeyDown) {
InstantCommandData += 128;
}
}
GotKeyBoardData(Keyboard_Data);
return trueblnr;
} else {
return falseblnr;
}
}
#define MaxKeyboardWait 16 /* in 60ths of a second */
/*
Code in the mac rom will reset the keyboard if
it hasn't been heard from in 32/60th of a second.
So time out and send something before that
to keep connection.
*/
LOCALVAR int InquiryCommandTimer = 0;
GLOBALPROC DoKybd_ReceiveCommand(void)
{
if (KybdState != kKybdStateRecievingCommand) {
ReportAbnormal("KybdState != kKybdStateRecievingCommand");
} else {
ui3b in = KYBD_ShiftInData();
KybdState = kKybdStateRecievedCommand;
switch (in) {
case 0x10 : /* Inquiry Command */
if (! AttemptToFinishInquiry()) {
InquiryCommandTimer = MaxKeyboardWait;
}
break;
case 0x14 : /* Instant Command */
GotKeyBoardData(InstantCommandData);
InstantCommandData = 0x7B;
break;
case 0x16 : /* Model Command */
GotKeyBoardData(0x0b /* 0x01 */);
/* Test value, means Model 0, no extra devices */
/*
Fixed by Hoshi Takanori -
it uses the proper keyboard type now
*/
break;
case 0x36 : /* Test Command */
GotKeyBoardData(0x7D);
break;
case 0x00:
GotKeyBoardData(0);
break;
default :
/* Debugger(); */
GotKeyBoardData(0);
break;
}
}
}
GLOBALPROC DoKybd_ReceiveEndCommand(void)
{
if (KybdState != kKybdStateRecievingEndCommand) {
ReportAbnormal("KybdState != kKybdStateRecievingEndCommand");
} else {
KybdState = kKybdStateIdle;
#ifdef _VIA_Debug
fprintf(stderr, "enter DoKybd_ReceiveEndCommand\n");
#endif
if (HaveKeyBoardResult) {
#ifdef _VIA_Debug
fprintf(stderr, "HaveKeyBoardResult: %d\n", KeyBoardResult);
#endif
HaveKeyBoardResult = falseblnr;
KYBD_ShiftOutData(KeyBoardResult);
VIA1_iCB2 = 1;
}
}
}
GLOBALPROC Kybd_DataLineChngNtfy(void)
{
switch (KybdState) {
case kKybdStateIdle:
if (VIA1_iCB2 == 0) {
KybdState = kKybdStateRecievingCommand;
#ifdef _VIA_Debug
fprintf(stderr, "posting kICT_Kybd_ReceiveCommand\n");
#endif
ICT_add(kICT_Kybd_ReceiveCommand,
6800UL * kCycleScale / 64 * kMyClockMult);
if (InquiryCommandTimer != 0) {
InquiryCommandTimer = 0; /* abort Inquiry */
}
}
break;
case kKybdStateRecievedCommand:
if (VIA1_iCB2 == 1) {
KybdState = kKybdStateRecievingEndCommand;
#ifdef _VIA_Debug
fprintf(stderr,
"posting kICT_Kybd_ReceiveEndCommand\n");
#endif
ICT_add(kICT_Kybd_ReceiveEndCommand,
6800UL * kCycleScale / 64 * kMyClockMult);
}
break;
}
}
GLOBALPROC KeyBoard_Update(void)
{
if (InquiryCommandTimer != 0) {
if (AttemptToFinishInquiry()) {
InquiryCommandTimer = 0;
} else {
--InquiryCommandTimer;
if (InquiryCommandTimer == 0) {
GotKeyBoardData(0x7B);
}
}
}
}
|
1
Mini vMac/mnvm_core/KBRDEMDV.h
Executable file
1
Mini vMac/mnvm_core/KBRDEMDV.h
Executable file
@ -0,0 +1 @@
|
||||
/*
KBRDEMDV.h
Copyright (C) 2003 Philip Cummins, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
#ifdef KBRDEMDV_H
#error "header already included"
#else
#define KBRDEMDV_H
#endif
EXPORTPROC Kybd_DataLineChngNtfy(void);
EXPORTPROC DoKybd_ReceiveEndCommand(void);
EXPORTPROC DoKybd_ReceiveCommand(void);
EXPORTPROC KeyBoard_Update(void);
|
1
Mini vMac/mnvm_core/M68KITAB.c
Executable file
1
Mini vMac/mnvm_core/M68KITAB.c
Executable file
File diff suppressed because one or more lines are too long
1
Mini vMac/mnvm_core/M68KITAB.h
Executable file
1
Mini vMac/mnvm_core/M68KITAB.h
Executable file
@ -0,0 +1 @@
|
||||
/*
M68KITAB.h
Copyright (C) 2007, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
#ifdef M68KITAB_H
#error "header already included"
#else
#define M68KITAB_H
#endif
enum {
kIKindTst,
kIKindCmpB,
kIKindCmpW,
kIKindCmpL,
kIKindBccB,
kIKindBccW,
kIKindBraB,
kIKindBraW,
kIKindDBcc,
kIKindDBF,
kIKindSwap,
kIKindMoveL,
kIKindMoveW,
kIKindMoveB,
kIKindMoveAL,
kIKindMoveAW,
kIKindMoveQ,
kIKindAddB,
kIKindAddW,
kIKindAddL,
kIKindSubB,
kIKindSubW,
kIKindSubL,
kIKindLea,
kIKindPEA,
kIKindA,
kIKindBsrB,
kIKindBsrW,
kIKindJsr,
kIKindLinkA6,
kIKindMOVEMRmML,
kIKindMOVEMApRL,
kIKindUnlkA6,
kIKindRts,
kIKindJmp,
kIKindClr,
kIKindAddA,
kIKindAddQA,
kIKindSubA,
kIKindSubQA,
kIKindCmpA,
kIKindAddXB,
kIKindAddXW,
kIKindAddXL,
kIKindSubXB,
kIKindSubXW,
kIKindSubXL,
kIKindRolopNM,
kIKindRolopND,
kIKindRolopDD,
kIKindBitOpDD,
kIKindBitOpDM,
kIKindBitOpND,
kIKindBitOpNM,
kIKindAndI,
kIKindAndEaD,
kIKindAndDEa,
kIKindOrI,
kIKindOrDEa,
kIKindOrEaD,
kIKindEor,
kIKindEorI,
kIKindNot,
kIKindScc,
kIKindNegXB,
kIKindNegXW,
kIKindNegXL,
kIKindNegB,
kIKindNegW,
kIKindNegL,
kIKindEXTW,
kIKindEXTL,
kIKindMulU,
kIKindMulS,
kIKindDivU,
kIKindDivS,
kIKindExgdd,
kIKindExgaa,
kIKindExgda,
kIKindMoveCCREa,
kIKindMoveEaCCR,
kIKindMoveSREa,
kIKindMoveEaSR,
kIKindBinOpStatusCCR,
kIKindMOVEMApRW,
kIKindMOVEMRmMW,
kIKindMOVEMrm,
kIKindMOVEMmr,
kIKindAbcdr,
kIKindAbcdm,
kIKindSbcdr,
kIKindSbcdm,
kIKindNbcd,
kIKindRte,
kIKindNop,
kIKindMoveP,
kIKindIllegal,
kIKindChkW,
kIKindTrap,
kIKindTrapV,
kIKindRtr,
kIKindLink,
kIKindUnlk,
kIKindMoveRUSP,
kIKindMoveUSPR,
kIKindTas,
kIKindF,
kIKindCallMorRtm,
kIKindStop,
kIKindReset,
#if Use68020
kIKindBraL,
kIKindBccL,
kIKindBsrL,
kIKindEXTBL,
kIKindTRAPcc,
kIKindChkL,
kIKindBkpt,
kIKindDivL,
kIKindMulL,
kIKindRtd,
kIKindMoveC,
kIKindLinkL,
kIKindPack,
kIKindUnpk,
kIKindCHK2orCMP2,
kIKindCAS2,
kIKindCAS,
kIKindMoveS,
kIKindBitField,
#endif
kNumIKinds
};
enum {
kAMdReg,
kAMdIndirect,
kAMdAPosIncB,
kAMdAPosIncW,
kAMdAPosIncL,
kAMdAPreDecB,
kAMdAPreDecW,
kAMdAPreDecL,
kAMdADisp,
kAMdAIndex,
kAMdAbsW,
kAMdAbsL,
kAMdPCDisp,
kAMdPCIndex,
kAMdImmedB,
kAMdImmedW,
kAMdImmedL,
kAMdDat4,
kNumAMds
};
enum {
kArgkRegB,
kArgkRegW,
kArgkRegL,
kArgkMemB,
kArgkMemW,
kArgkMemL,
kArgkCnst,
kNumArgks
};
struct DecOpR {
/* expected size : 8 bytes */
ui5b A;
ui5b B;
};
typedef struct DecOpR DecOpR;
#define GetUi5rField(v, shift, sz) \
(((v) >> (shift)) & ((1UL << (sz)) - 1))
#define SetUi5rField(v, shift, sz, x) \
(v) = (((v) & ~ (((1UL << (sz)) - 1) << (shift))) \
| (((x) & ((1UL << (sz)) - 1)) << (shift)))
#define GetDcoFldAMd(f) (GetUi5rField((f), 16, 8))
#define GetDcoFldArgk(f) (GetUi5rField((f), 24, 4))
#define GetDcoFldArgDat(f) (GetUi5rField((f), 28, 4))
#define SetDcoFldAMd(f, x) SetUi5rField((f), 16, 8, x)
#define SetDcoFldArgk(f, x) SetUi5rField((f), 24, 4, x)
#define SetDcoFldArgDat(f, x) SetUi5rField((f), 28, 4, x)
#define GetDcoMainClas(p) (GetUi5rField((p)->A, 0, 16))
#define GetDcoDstAMd(p) (GetDcoFldAMd((p)->A))
#define GetDcoDstArgk(p) (GetDcoFldArgk((p)->A))
#define GetDcoDstArgDat(p) (GetDcoFldArgDat((p)->A))
#define GetDcoSrcAMd(p) (GetDcoFldAMd((p)->B))
#define GetDcoSrcArgk(p) (GetDcoFldArgk((p)->B))
#define GetDcoSrcArgDat(p) (GetDcoFldArgDat((p)->B))
#define GetDcoCycles(p) (GetUi5rField((p)->B, 0, 16))
#define SetDcoMainClas(p, x) SetUi5rField((p)->A, 0, 16, x)
#define SetDcoDstAMd(p, x) SetDcoFldAMd((p)->A, x)
#define SetDcoDstArgk(p, x) SetDcoFldArgk((p)->A, x)
#define SetDcoDstArgDat(p, x) SetDcoFldArgDat((p)->A, x)
#define SetDcoSrcAMd(p, x) SetDcoFldAMd((p)->B, x)
#define SetDcoSrcArgk(p, x) SetDcoFldArgk((p)->B, x)
#define SetDcoSrcArgDat(p, x) SetDcoFldArgDat((p)->B, x)
#define SetDcoCycles(p, x) SetUi5rField((p)->B, 0, 16, x)
EXPORTPROC M68KITAB_setup(DecOpR *p);
|
1
Mini vMac/mnvm_core/MINEM68K.c
Executable file
1
Mini vMac/mnvm_core/MINEM68K.c
Executable file
File diff suppressed because one or more lines are too long
1
Mini vMac/mnvm_core/MINEM68K.h
Executable file
1
Mini vMac/mnvm_core/MINEM68K.h
Executable file
@ -0,0 +1 @@
|
||||
/*
MINEM68K.h
Copyright (C) 2004 Bernd Schmidt, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
#ifdef MINEM68K_H
#error "header already included"
#else
#define MINEM68K_H
#endif
EXPORTPROC MINEM68K_Init(
ui3b *fIPL);
#if SmallGlobals
EXPORTPROC MINEM68K_ReserveAlloc(void);
#endif
EXPORTPROC m68k_IPLchangeNtfy(void);
EXPORTPROC DiskInsertedPsuedoException(CPTR newpc, ui5b data);
EXPORTPROC m68k_reset(void);
EXPORTFUNC si5r GetCyclesRemaining(void);
EXPORTPROC SetCyclesRemaining(si5r n);
EXPORTPROC m68k_go_nCycles(ui5b n);
/*
general purpose access of address space
of emulated computer. (memory and
memory mapped hardware.)
*/
EXPORTFUNC ui3r get_vm_byte(CPTR addr);
EXPORTFUNC ui4r get_vm_word(CPTR addr);
EXPORTFUNC ui5r get_vm_long(CPTR addr);
EXPORTPROC put_vm_byte(CPTR addr, ui3r b);
EXPORTPROC put_vm_word(CPTR addr, ui4r w);
EXPORTPROC put_vm_long(CPTR addr, ui5r l);
EXPORTPROC SetHeadATTel(ATTep p);
EXPORTFUNC ATTep FindATTel(CPTR addr);
|
1
Mini vMac/mnvm_core/MOUSEMDV.c
Executable file
1
Mini vMac/mnvm_core/MOUSEMDV.c
Executable file
@ -0,0 +1 @@
|
||||
/*
MOUSEMDV.c
Copyright (C) 2006 Philip Cummins, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
/*
MOUSe EMulated DeVice
Emulation of the mouse in the Mac Plus.
This code descended from "Mouse-MacOS.c" in Richard F. Bannister's
Macintosh port of vMac, by Philip Cummins.
*/
#ifndef AllFiles
#include "SYSDEPNS.h"
#include "MYOSGLUE.h"
#include "ENDIANAC.h"
#include "EMCONFIG.h"
#include "GLOBGLUE.h"
#include "SCCEMDEV.h"
#endif
#include "MOUSEMDV.h"
GLOBALPROC Mouse_Update(void)
{
#if HaveMasterMyEvtQLock
if (0 != MasterMyEvtQLock) {
--MasterMyEvtQLock;
}
#endif
/*
Check mouse position first. After mouse button or key event,
can't process another mouse position until following tick,
otherwise button or key will be in wrong place.
*/
/*
if start doing this too soon after boot,
will mess up memory check
*/
if (Mouse_Enabled()) {
MyEvtQEl *p;
if (
#if HaveMasterMyEvtQLock
(0 == MasterMyEvtQLock) &&
#endif
(nullpr != (p = MyEvtQOutP())))
{
#if EmClassicKbrd
#if EnableMouseMotion
if (MyEvtQElKindMouseDelta == p->kind) {
if ((p->u.pos.h != 0) || (p->u.pos.v != 0)) {
put_ram_word(0x0828,
get_ram_word(0x0828) + p->u.pos.v);
put_ram_word(0x082A,
get_ram_word(0x082A) + p->u.pos.h);
put_ram_byte(0x08CE, get_ram_byte(0x08CF));
/* Tell MacOS to redraw the Mouse */
}
MyEvtQOutDone();
} else
#endif
#endif
if (MyEvtQElKindMousePos == p->kind) {
ui5r NewMouse = (p->u.pos.v << 16) | p->u.pos.h;
if (get_ram_long(0x0828) != NewMouse) {
put_ram_long(0x0828, NewMouse);
/* Set Mouse Position */
put_ram_long(0x082C, NewMouse);
#if EmClassicKbrd
put_ram_byte(0x08CE, get_ram_byte(0x08CF));
/* Tell MacOS to redraw the Mouse */
#else
put_ram_long(0x0830, NewMouse);
put_ram_byte(0x08CE, 0xFF);
/* Tell MacOS to redraw the Mouse */
#endif
}
MyEvtQOutDone();
}
}
}
#if EmClassicKbrd
{
MyEvtQEl *p;
if (
#if HaveMasterMyEvtQLock
(0 == MasterMyEvtQLock) &&
#endif
(nullpr != (p = MyEvtQOutP())))
{
if (MyEvtQElKindMouseButton == p->kind) {
MouseBtnUp = p->u.press.down ? 0 : 1;
MyEvtQOutDone();
MasterMyEvtQLock = 4;
}
}
}
#endif
}
GLOBALPROC Mouse_EndTickNotify(void)
{
if (Mouse_Enabled()) {
/* tell platform specific code where the mouse went */
CurMouseV = get_ram_word(0x082C);
CurMouseH = get_ram_word(0x082E);
}
}
|
1
Mini vMac/mnvm_core/MOUSEMDV.h
Executable file
1
Mini vMac/mnvm_core/MOUSEMDV.h
Executable file
@ -0,0 +1 @@
|
||||
/*
MOUSEMDV.h
Copyright (C) 2003 Philip Cummins, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
#ifdef MOUSEMDV_H
#error "header already included"
#else
#define MOUSEMDV_H
#endif
EXPORTPROC Mouse_Update(void);
EXPORTPROC Mouse_EndTickNotify(void);
|
1
Mini vMac/mnvm_core/MYOSGLUE.h
Executable file
1
Mini vMac/mnvm_core/MYOSGLUE.h
Executable file
File diff suppressed because one or more lines are too long
1
Mini vMac/mnvm_core/PROGMAIN.c
Executable file
1
Mini vMac/mnvm_core/PROGMAIN.c
Executable file
File diff suppressed because one or more lines are too long
1
Mini vMac/mnvm_core/PROGMAIN.h
Executable file
1
Mini vMac/mnvm_core/PROGMAIN.h
Executable file
@ -0,0 +1 @@
|
||||
/*
PROGMAIN.h
Copyright (C) 2009 Philip Cummins, Richard F. Bannister,
Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
#ifdef PROGMAIN_H
#error "header already included"
#else
#define PROGMAIN_H
#endif
EXPORTPROC EmulationReserveAlloc(void);
EXPORTPROC ProgramMain(void);
|
1
Mini vMac/mnvm_core/ROMEMDEV.c
Executable file
1
Mini vMac/mnvm_core/ROMEMDEV.c
Executable file
File diff suppressed because one or more lines are too long
1
Mini vMac/mnvm_core/ROMEMDEV.h
Executable file
1
Mini vMac/mnvm_core/ROMEMDEV.h
Executable file
@ -0,0 +1 @@
|
||||
/*
ROMEMDEV.h
Copyright (C) 2003 Philip Cummins, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
#ifdef ROMEMDEV_H
#error "header already included"
#else
#define ROMEMDEV_H
#endif
EXPORTFUNC blnr ROM_Init(void);
|
1
Mini vMac/mnvm_core/RTCEMDEV.c
Executable file
1
Mini vMac/mnvm_core/RTCEMDEV.c
Executable file
File diff suppressed because one or more lines are too long
1
Mini vMac/mnvm_core/RTCEMDEV.h
Executable file
1
Mini vMac/mnvm_core/RTCEMDEV.h
Executable file
@ -0,0 +1 @@
|
||||
/*
RTCEMDEV.h
Copyright (C) 2003 Philip Cummins, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
#ifdef RTCEMDEV_H
#error "header already included"
#else
#define RTCEMDEV_H
#endif
EXPORTFUNC blnr RTC_Init(void);
EXPORTPROC RTC_Interrupt(void);
EXPORTPROC RTCunEnabled_ChangeNtfy(void);
EXPORTPROC RTCclock_ChangeNtfy(void);
EXPORTPROC RTCdataLine_ChangeNtfy(void);
|
1
Mini vMac/mnvm_core/SCCEMDEV.c
Executable file
1
Mini vMac/mnvm_core/SCCEMDEV.c
Executable file
File diff suppressed because one or more lines are too long
1
Mini vMac/mnvm_core/SCCEMDEV.h
Executable file
1
Mini vMac/mnvm_core/SCCEMDEV.h
Executable file
@ -0,0 +1 @@
|
||||
/*
SCCEMDEV.h
Copyright (C) 2004 Philip Cummins, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
#ifdef SCCEMDEV_H
#error "header already included"
#else
#define SCCEMDEV_H
#endif
EXPORTPROC SCC_Reset(void);
EXPORTFUNC ui5b SCC_Access(ui5b Data, blnr WriteMem, CPTR addr);
EXPORTFUNC blnr SCC_InterruptsEnabled(void);
#if EmLocalTalk
EXPORTPROC LocalTalkTick(void);
EXPORTFUNC int InitLocalTalk(void);
#endif
|
1
Mini vMac/mnvm_core/SCRNEMDV.c
Executable file
1
Mini vMac/mnvm_core/SCRNEMDV.c
Executable file
@ -0,0 +1 @@
|
||||
/*
SCRNEMDV.c
Copyright (C) 2006 Philip Cummins, Richard F. Bannister,
Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
/*
SCReeN EMulated DeVice
Emulation of the screen in the Mac Plus.
This code descended from "Screen-MacOS.c" in Richard F. Bannister's
Macintosh port of vMac, by Philip Cummins.
*/
#ifndef AllFiles
#include "SYSDEPNS.h"
#include "MYOSGLUE.h"
#include "ENDIANAC.h"
#include "EMCONFIG.h"
#include "GLOBGLUE.h"
#endif
#include "SCRNEMDV.h"
#if ! IncludeVidMem
#define kMain_Offset 0x5900
#define kAlternate_Offset 0xD900
#define kMain_Buffer (kRAM_Size - kMain_Offset)
#define kAlternate_Buffer (kRAM_Size - kAlternate_Offset)
#endif
GLOBALPROC Screen_EndTickNotify(void)
{
ui3p screencurrentbuff;
#if IncludeVidMem
screencurrentbuff = VidMem;
#else
if (SCRNvPage2 == 1) {
screencurrentbuff = get_ram_address(kMain_Buffer);
} else {
screencurrentbuff = get_ram_address(kAlternate_Buffer);
}
#endif
Screen_OutputFrame(screencurrentbuff);
}
|
1
Mini vMac/mnvm_core/SCRNEMDV.h
Executable file
1
Mini vMac/mnvm_core/SCRNEMDV.h
Executable file
@ -0,0 +1 @@
|
||||
/*
SCRNEMDV.h
Copyright (C) 2006 Philip Cummins, Richard F. Bannister,
Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
#ifdef SCRNEMDV_H
#error "header already included"
#else
#define SCRNEMDV_H
#endif
EXPORTPROC Screen_EndTickNotify(void);
|
1
Mini vMac/mnvm_core/SCRNMAPR.h
Executable file
1
Mini vMac/mnvm_core/SCRNMAPR.h
Executable file
@ -0,0 +1 @@
|
||||
/*
SCRNMAPR.h
Copyright (C) 2012 Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
/*
SCReeN MAPpeR
*/
/* required arguments for this template */
#ifndef ScrnMapr_DoMap /* procedure to be created by this template */
#error "ScrnMapr_DoMap not defined"
#endif
#ifndef ScrnMapr_Src
#error "ScrnMapr_Src not defined"
#endif
#ifndef ScrnMapr_Dst
#error "ScrnMapr_Dst not defined"
#endif
#ifndef ScrnMapr_SrcDepth
#error "ScrnMapr_SrcDepth not defined"
#endif
#ifndef ScrnMapr_DstDepth
#error "ScrnMapr_DstDepth not defined"
#endif
#ifndef ScrnMapr_Map
#error "ScrnMapr_Map not defined"
#endif
/* optional argument for this template */
#ifndef ScrnMapr_Scale
#define ScrnMapr_Scale 1
#endif
/* check of parameters */
#if (ScrnMapr_SrcDepth < 0) || (ScrnMapr_SrcDepth > 3)
#error "bad ScrnMapr_SrcDepth"
#endif
#if (ScrnMapr_DstDepth < ScrnMapr_SrcDepth)
#error "bad ScrnMapr_Dst"
#endif
/* calculate a few things local to this template */
#define ScrnMapr_MapElSz \
(ScrnMapr_Scale << (ScrnMapr_DstDepth - ScrnMapr_SrcDepth))
#if 0 == (ScrnMapr_MapElSz & 3)
#define ScrnMapr_TranT ui5b
#define ScrnMapr_TranLn2Sz 2
#elif 0 == (ScrnMapr_MapElSz & 1)
#define ScrnMapr_TranT ui4b
#define ScrnMapr_TranLn2Sz 1
#else
#define ScrnMapr_TranT ui3b
#define ScrnMapr_TranLn2Sz 0
#endif
#define ScrnMapr_TranN (ScrnMapr_MapElSz >> ScrnMapr_TranLn2Sz)
#define ScrnMapr_ScrnWB (vMacScreenWidth >> (3 - ScrnMapr_SrcDepth))
/* now define the procedure */
LOCALPROC ScrnMapr_DoMap(si4b top, si4b left,
si4b bottom, si4b right)
{
int i;
int j;
#if (ScrnMapr_TranN > 4) || (ScrnMapr_Scale > 2)
int k;
#endif
ui5r t0;
ScrnMapr_TranT *pMap;
#if ScrnMapr_Scale > 1
ScrnMapr_TranT *p3;
#endif
ui4r leftB = left >> (3 - ScrnMapr_SrcDepth);
ui4r rightB = (right + (1 << (3 - ScrnMapr_SrcDepth)) - 1)
>> (3 - ScrnMapr_SrcDepth);
ui4r jn = rightB - leftB;
ui4r SrcSkip = ScrnMapr_ScrnWB - jn;
ui3b *pSrc = ((ui3b *)ScrnMapr_Src)
+ leftB + ScrnMapr_ScrnWB * (ui5r)top;
ScrnMapr_TranT *pDst = ((ScrnMapr_TranT *)ScrnMapr_Dst)
+ ((leftB + ScrnMapr_ScrnWB * ScrnMapr_Scale * (ui5r)top)
* ScrnMapr_TranN);
ui5r DstSkip = SrcSkip * ScrnMapr_TranN;
for (i = bottom - top; --i >= 0; ) {
#if ScrnMapr_Scale > 1
p3 = pDst;
#endif
for (j = jn; --j >= 0; ) {
t0 = *pSrc++;
pMap =
&((ScrnMapr_TranT *)ScrnMapr_Map)[t0 * ScrnMapr_TranN];
#if ScrnMapr_TranN > 4
for (k = ScrnMapr_TranN; --k >= 0; ) {
*pDst++ = *pMap++;
}
#else
#if ScrnMapr_TranN >= 2
*pDst++ = *pMap++;
#endif
#if ScrnMapr_TranN >= 3
*pDst++ = *pMap++;
#endif
#if ScrnMapr_TranN >= 4
*pDst++ = *pMap++;
#endif
*pDst++ = *pMap;
#endif /* ! ScrnMapr_TranN > 4 */
}
pSrc += SrcSkip;
pDst += DstSkip;
#if ScrnMapr_Scale > 1
#if ScrnMapr_Scale > 2
for (k = ScrnMapr_Scale - 1; --k >= 0; )
#endif
{
pMap = p3;
for (j = ScrnMapr_TranN * jn; --j >= 0; ) {
*pDst++ = *pMap++;
}
pDst += DstSkip;
}
#endif /* ScrnMapr_Scale > 1 */
}
}
/* undefine template locals and parameters */
#undef ScrnMapr_ScrnWB
#undef ScrnMapr_TranN
#undef ScrnMapr_TranLn2Sz
#undef ScrnMapr_TranT
#undef ScrnMapr_MapElSz
#undef ScrnMapr_DoMap
#undef ScrnMapr_Src
#undef ScrnMapr_Dst
#undef ScrnMapr_SrcDepth
#undef ScrnMapr_DstDepth
#undef ScrnMapr_Map
#undef ScrnMapr_Scale
|
1
Mini vMac/mnvm_core/SCSIEMDV.c
Executable file
1
Mini vMac/mnvm_core/SCSIEMDV.c
Executable file
@ -0,0 +1 @@
|
||||
/*
SCSIEMDV.c
Copyright (C) 2004 Philip Cummins, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
/*
Small Computer System Interface EMulated DeVice
Emulates the SCSI found in the Mac Plus.
This code adapted from "SCSI.c" in vMac by Philip Cummins.
*/
/* NCR5380 chip emulation by Yoav Shadmi, 1998 */
#ifndef AllFiles
#include "SYSDEPNS.h"
#include "ENDIANAC.h"
#include "MYOSGLUE.h"
#include "EMCONFIG.h"
#include "GLOBGLUE.h"
#endif
#include "SCSIEMDV.h"
#define scsiRd 0x00
#define scsiWr 0x01
#define sCDR 0x00 /* current scsi data register (r/o) */
#define sODR 0x00 /* output data register (w/o) */
#define sICR 0x02 /* initiator command register (r/w) */
#define sMR 0x04 /* mode register (r/w) */
#define sTCR 0x06 /* target command register (r/w) */
#define sCSR 0x08 /* current SCSI bus status (r/o) */
#define sSER 0x08 /* select enable register (w/o) */
#define sBSR 0x0A /* bus and status register (r/o) */
#define sDMAtx 0x0A /* start DMA send (w/o) */
#define sIDR 0x0C /* input data register (r/o) */
#define sTDMArx 0x0C /* start DMA target receive (w/o) */
#define sRESET 0x0E /* reset parity/interrupt (r/o) */
#define sIDMArx 0x0E /* start DMA initiator receive (w/o) */
#define kSCSI_Size 0x00010
LOCALVAR ui3b SCSI[kSCSI_Size];
GLOBALPROC SCSI_Reset(void)
{
int i;
for (i = 0; i < kSCSI_Size; i++) {
SCSI[i] = 0;
}
}
LOCALPROC SCSI_BusReset(void)
{
SCSI[scsiRd + sCDR] = 0;
SCSI[scsiWr + sODR] = 0;
SCSI[scsiRd + sICR] = 0x80;
SCSI[scsiWr + sICR] &= 0x80;
SCSI[scsiRd + sMR] &= 0x40;
SCSI[scsiWr + sMR] &= 0x40;
SCSI[scsiRd + sTCR] = 0;
SCSI[scsiWr + sTCR] = 0;
SCSI[scsiRd + sCSR] = 0x80;
SCSI[scsiWr + sSER] = 0;
SCSI[scsiRd + sBSR] = 0x10;
SCSI[scsiWr + sDMAtx] = 0;
SCSI[scsiRd + sIDR] = 0;
SCSI[scsiWr + sTDMArx] = 0;
SCSI[scsiRd + sRESET] = 0;
SCSI[scsiWr + sIDMArx] = 0;
#if 0
SCSI[scsiRd + sODR + dackWr] = 0;
SCSI[scsiWr + sIDR + dackRd] = 0;
#endif
/* The missing piece of the puzzle.. :) */
put_ram_word(0xb22, get_ram_word(0xb22) | 0x8000);
}
LOCALPROC SCSI_Check(void)
{
/*
The arbitration select/reselect scenario
[stub.. doesn't really work...]
*/
if ((SCSI[scsiWr + sODR] >> 7) == 1) {
/* Check if the Mac tries to be an initiator */
if ((SCSI[scsiWr + sMR] & 1) == 1) {
/* the Mac set arbitration in progress */
/*
stub! tell the mac that there
is arbitration in progress...
*/
SCSI[scsiRd + sICR] |= 0x40;
/* ... that we didn't lose arbitration ... */
SCSI[scsiRd + sICR] &= ~ 0x20;
/*
... and that there isn't a higher priority ID present...
*/
SCSI[scsiRd + sCDR] = 0x00;
/*
... the arbitration and selection/reselection is
complete. the initiator tries to connect to the SCSI
device, fails and returns after timeout.
*/
}
}
/* check the chip registers, AS SET BY THE CPU */
if ((SCSI[scsiWr + sICR] >> 7) == 1) {
/* Check Assert RST */
SCSI_BusReset();
} else {
SCSI[scsiRd + sICR] &= ~ 0x80;
SCSI[scsiRd + sCSR] &= ~ 0x80;
}
if ((SCSI[scsiWr + sICR] >> 2) == 1) {
/* Check Assert SEL */
SCSI[scsiRd + sCSR] |= 0x02;
SCSI[scsiRd + sBSR] = 0x10;
} else {
SCSI[scsiRd + sCSR] &= ~ 0x02;
}
}
GLOBALFUNC ui5b SCSI_Access(ui5b Data, blnr WriteMem, CPTR addr)
{
if (addr < (kSCSI_Size / 2)) {
addr *= 2;
if (WriteMem) {
SCSI[addr + 1] = Data;
SCSI_Check();
} else {
Data = SCSI[addr];
}
}
return Data;
}
|
1
Mini vMac/mnvm_core/SCSIEMDV.h
Executable file
1
Mini vMac/mnvm_core/SCSIEMDV.h
Executable file
@ -0,0 +1 @@
|
||||
/*
SCSIEMDV.h
Copyright (C) 2004 Philip Cummins, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
#ifdef SCSIEMDV_H
#error "header already included"
#else
#define SCSIEMDV_H
#endif
EXPORTPROC SCSI_Reset(void);
EXPORTFUNC ui5b SCSI_Access(ui5b Data, blnr WriteMem, CPTR addr);
|
1
Mini vMac/mnvm_core/SNDEMDEV.c
Executable file
1
Mini vMac/mnvm_core/SNDEMDEV.c
Executable file
@ -0,0 +1 @@
|
||||
/*
SNDEMDEV.c
Copyright (C) 2003 Philip Cummins, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
/*
SouND EMulated DEVice
Emulation of Sound in the Mac Plus could go here.
This code adapted from "Sound.c" in vMac by Philip Cummins.
*/
#ifndef AllFiles
#include "SYSDEPNS.h"
#include "MYOSGLUE.h"
#include "EMCONFIG.h"
#include "GLOBGLUE.h"
#endif
#include "SNDEMDEV.h"
#if MySoundEnabled
#define kSnd_Main_Offset 0x0300
#define kSnd_Alt_Offset 0x5F00
#define kSnd_Main_Buffer (kRAM_Size - kSnd_Main_Offset)
#define kSnd_Alt_Buffer (kRAM_Size - kSnd_Alt_Offset)
/*
approximate volume levels of vMac, so:
x * vol_mult[SoundVolume] >> 16
+ vol_offset[SoundVolume]
= {approx} (x - kCenterSound) / (8 - SoundVolume) + kCenterSound;
*/
LOCALVAR const ui4b vol_mult[] = {
8192, 9362, 10922, 13107, 16384, 21845, 32768
};
LOCALVAR const trSoundSamp vol_offset[] = {
#if 3 == kLn2SoundSampSz
112, 110, 107, 103, 96, 86, 64, 0
#elif 4 == kLn2SoundSampSz
28672, 28087, 27307, 26215, 24576, 21846, 16384, 0
#else
#error "unsupported kLn2SoundSampSz"
#endif
};
LOCALVAR const ui4b SubTick_offset[kNumSubTicks] = {
0, 25, 50, 90, 102, 115, 138, 161,
185, 208, 231, 254, 277, 300, 323, 346
};
LOCALVAR const ui3r SubTick_n[kNumSubTicks] = {
25, 25, 40, 12, 13, 23, 23, 24,
23, 23, 23, 23, 23, 23, 23, 24
};
/*
One version of free form sound driver
spends around 18000 cycles writing
offsets 50 to 370, then around another 3000
cycles writing 0 to 50. So be done
with 0 to 50 at end of second sixtieth.
*/
/*
Different in system 6.0.4:
spends around 23500 cycles writing
offsets 90 to 370, then around another 7500
cycles writing 0 to 90. This is nastier,
because gets to be a very small gap
between where is being read and
where written. So read a bit in
advance for third subtick.
*/
/*
startup sound spends around 19500 cycles
writing offsets 0 to 370. presumably
writing offset 0 before it is read.
*/
LOCALVAR ui5b SoundInvertPhase = 0;
LOCALVAR ui4b SoundInvertState = 0;
IMPORTFUNC ui4b GetSoundInvertTime(void);
GLOBALPROC MacSound_SubTick(int SubTick)
{
ui4r actL;
tpSoundSamp p;
ui4r i;
ui5b StartOffset = SubTick_offset[SubTick];
ui4r n = SubTick_n[SubTick];
unsigned long addy =
#ifdef SoundBuffer
(SoundBuffer == 0) ? kSnd_Alt_Buffer :
#endif
kSnd_Main_Buffer;
ui3p addr = addy + (2 * StartOffset) + RAM;
ui4b SoundInvertTime = GetSoundInvertTime();
ui3b SoundVolume = SoundVolb0
| (SoundVolb1 << 1)
| (SoundVolb2 << 2);
#if dbglog_HAVE && 0
dbglog_StartLine();
dbglog_writeCStr("reading sound buffer ");
dbglog_writeHex(StartOffset);
dbglog_writeCStr(" to ");
dbglog_writeHex(StartOffset + n);
dbglog_writeReturn();
#endif
label_retry:
p = MySound_BeginWrite(n, &actL);
if (actL > 0) {
if (SoundDisable && (SoundInvertTime == 0)) {
for (i = 0; i < actL; i++) {
#if 0
*p++ = 0x00; /* this is believed more accurate */
#else
/* But this avoids more clicks. */
*p++ = kCenterSound;
#endif
}
} else {
for (i = 0; i < actL; i++) {
/* Copy sound data, high byte of each word */
*p++ = *addr
#if 4 == kLn2SoundSampSz
<< 8
#endif
;
/* Move the address on */
addr += 2;
}
if (SoundInvertTime != 0) {
ui5b PhaseIncr = (ui5b)SoundInvertTime * (ui5b)20;
p -= actL;
for (i = 0; i < actL; i++) {
if (SoundInvertPhase < 704) {
ui5b OnPortion = 0;
ui5b LastPhase = 0;
do {
if (! SoundInvertState) {
OnPortion +=
(SoundInvertPhase - LastPhase);
}
SoundInvertState = ! SoundInvertState;
LastPhase = SoundInvertPhase;
SoundInvertPhase += PhaseIncr;
} while (SoundInvertPhase < 704);
if (! SoundInvertState) {
OnPortion += 704 - LastPhase;
}
*p = (*p * OnPortion) / 704;
} else {
if (SoundInvertState) {
*p = 0;
}
}
SoundInvertPhase -= 704;
p++;
}
}
}
if (SoundVolume < 7) {
/*
Usually have volume at 7, so this
is just for completeness.
*/
ui5b mult = (ui5b)vol_mult[SoundVolume];
trSoundSamp offset = vol_offset[SoundVolume];
p -= actL;
for (i = 0; i < actL; i++) {
*p = (trSoundSamp)((ui5b)(*p) * mult >> 16) + offset;
++p;
}
}
MySound_EndWrite(actL);
n -= actL;
if (n > 0) {
goto label_retry;
}
}
}
#endif
|
1
Mini vMac/mnvm_core/SNDEMDEV.h
Executable file
1
Mini vMac/mnvm_core/SNDEMDEV.h
Executable file
@ -0,0 +1 @@
|
||||
/*
SNDEMDEV.h
Copyright (C) 2003 Philip Cummins, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
#ifdef SNDEMDEV_H
#error "header already included"
#else
#define SNDEMDEV_H
#endif
#if MySoundEnabled
EXPORTPROC MacSound_SubTick(int SubTick);
#endif
|
1
Mini vMac/mnvm_core/SONYEMDV.c
Executable file
1
Mini vMac/mnvm_core/SONYEMDV.c
Executable file
File diff suppressed because one or more lines are too long
1
Mini vMac/mnvm_core/SONYEMDV.h
Executable file
1
Mini vMac/mnvm_core/SONYEMDV.h
Executable file
@ -0,0 +1 @@
|
||||
/*
SONYEMDV.h
Copyright (C) 2004 Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
#ifdef SONYEMDV_H
#error "header already included"
#else
#define SONYEMDV_H
#endif
EXPORTPROC ExtnDisk_Access(CPTR p);
EXPORTPROC ExtnSony_Access(CPTR p);
EXPORTPROC Sony_SetQuitOnEject(void);
EXPORTPROC Sony_EjectAllDisks(void);
EXPORTPROC Sony_Reset(void);
EXPORTPROC Sony_Update(void);
|
1
Mini vMac/mnvm_core/STRCONST.h
Executable file
1
Mini vMac/mnvm_core/STRCONST.h
Executable file
File diff suppressed because one or more lines are too long
1
Mini vMac/mnvm_core/SYSDEPNS.h
Executable file
1
Mini vMac/mnvm_core/SYSDEPNS.h
Executable file
@ -0,0 +1 @@
|
||||
/*
SYSDEPNS.h
Copyright (C) 2006 Bernd Schmidt, Philip Cummins, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
/*
SYStem DEPeNdencies.
*/
#ifdef SYSDEPNS_H
#error "header already included"
#else
#define SYSDEPNS_H
#endif
#include "CNFGGLOB.h"
typedef ui3b *ui3p;
typedef ui4b *ui4p;
typedef ui5b *ui5p;
/*
Largest efficiently supported
representation types. uimr should be
large enough to hold number of elements
of any array we will deal with.
*/
typedef ui5r uimr;
typedef si5r simr;
#define blnr int
#define trueblnr 1
#define falseblnr 0
#define nullpr ((void *) 0)
#define anyp ui3p
/* pascal string, single byte characters */
#define ps3p ui3p
#define LOCALVAR static
#ifdef AllFiles
#define GLOBALVAR LOCALVAR
#define EXPORTVAR(t, v)
#else
#define GLOBALVAR
#define EXPORTVAR(t, v) extern t v;
#endif
#define LOCALFUNC static
#define FORWARDFUNC LOCALFUNC
#ifdef AllFiles
#define GLOBALFUNC LOCALFUNC
#define EXPORTFUNC LOCALFUNC
#else
#define GLOBALFUNC
#define EXPORTFUNC extern
#endif
#define IMPORTFUNC EXPORTFUNC
#define TYPEDEFFUNC typedef
#define LOCALPROC LOCALFUNC void
#define GLOBALPROC GLOBALFUNC void
#define EXPORTPROC EXPORTFUNC void
#define IMPORTPROC IMPORTFUNC void
#define FORWARDPROC FORWARDFUNC void
#define TYPEDEFPROC TYPEDEFFUNC void
|
1
Mini vMac/mnvm_core/VIAEMDEV.c
Executable file
1
Mini vMac/mnvm_core/VIAEMDEV.c
Executable file
File diff suppressed because one or more lines are too long
1
Mini vMac/mnvm_core/VIAEMDEV.h
Executable file
1
Mini vMac/mnvm_core/VIAEMDEV.h
Executable file
@ -0,0 +1 @@
|
||||
/*
VIAEMDEV.h
Copyright (C) 2004 Philip Cummins, Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file 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.
*/
#ifdef VIAEMDEV_H
#error "header already included"
#else
#define VIAEMDEV_H
#endif
EXPORTPROC VIA1_Zap(void);
EXPORTPROC VIA1_Reset(void);
EXPORTFUNC ui5b VIA1_Access(ui5b Data, blnr WriteMem, CPTR addr);
EXPORTPROC VIA1_ExtraTimeBegin(void);
EXPORTPROC VIA1_ExtraTimeEnd(void);
#ifdef VIA1_iCA1_PulseNtfy
EXPORTPROC VIA1_iCA1_PulseNtfy(void);
#endif
#ifdef VIA1_iCA2_PulseNtfy
EXPORTPROC VIA1_iCA2_PulseNtfy(void);
#endif
#ifdef VIA1_iCB1_PulseNtfy
EXPORTPROC VIA1_iCB1_PulseNtfy(void);
#endif
#ifdef VIA1_iCB2_PulseNtfy
EXPORTPROC VIA1_iCB2_PulseNtfy(void);
#endif
EXPORTPROC VIA1_DoTimer1Check(void);
EXPORTPROC VIA1_DoTimer2Check(void);
EXPORTFUNC ui4b VIA1_GetT1InvertTime(void);
EXPORTPROC VIA1_ShiftInData(ui3b v);
EXPORTFUNC ui3b VIA1_ShiftOutData(void);
|
Loading…
x
Reference in New Issue
Block a user