mirror of
https://github.com/aufflick/Catakig.git
synced 2024-12-11 07:51:16 +00:00
This commit is contained in:
parent
6fb1258ce1
commit
df452fb5fe
@ -221,9 +221,9 @@
|
||||
287231B70A877A8E006AA610 /* Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
286BC2C40AE685EE00A01672 /* release.xcconfig */,
|
||||
286BC2C50AE685EE00A01672 /* debug.xcconfig */,
|
||||
286BC2C60AE685EE00A01672 /* common.xcconfig */,
|
||||
286BC2C50AE685EE00A01672 /* debug.xcconfig */,
|
||||
286BC2C40AE685EE00A01672 /* release.xcconfig */,
|
||||
287233810A87859D006AA610 /* Prefix.pch */,
|
||||
280F4D2D0A89017C000B3B80 /* Cocoa */,
|
||||
2872382C0A87B16B006AA610 /* LibAppleII */,
|
||||
|
6
English.lproj/MainMenu.nib/info.nib
generated
6
English.lproj/MainMenu.nib/info.nib
generated
@ -7,16 +7,12 @@
|
||||
<key>IBEditorPositions</key>
|
||||
<dict>
|
||||
<key>29</key>
|
||||
<string>27 680 349 44 0 0 1024 746 </string>
|
||||
<string>32 773 349 44 0 0 1152 842 </string>
|
||||
</dict>
|
||||
<key>IBFramework Version</key>
|
||||
<string>446.1</string>
|
||||
<key>IBOldestOS</key>
|
||||
<integer>3</integer>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>29</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>8L127</string>
|
||||
</dict>
|
||||
|
BIN
English.lproj/MainMenu.nib/keyedobjects.nib
generated
BIN
English.lproj/MainMenu.nib/keyedobjects.nib
generated
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -1,9 +1,4 @@
|
||||
|
||||
/Scale 30 def
|
||||
/Inch 72 Scale mul def
|
||||
/PageHeight Inch 11 mul def
|
||||
/CR-implies-LF false def
|
||||
/ToFontCode 16#300 string def
|
||||
%-----------------------------------------------------------------------------
|
||||
|
||||
/kfItalics 16#001 def
|
||||
/kfUnderline 16#002 def
|
||||
@ -16,99 +11,48 @@
|
||||
/kfSubscript 16#100 def
|
||||
/kfSuperscript 16#200 def
|
||||
|
||||
/Scale 30 def
|
||||
/Inch 72 Scale mul def
|
||||
/PageHeight Inch 11 mul def
|
||||
/CR-implies-LF false def
|
||||
/ToFontCode 16#300 string def
|
||||
|
||||
0 1 16#2FF {
|
||||
ToFontCode exch dup
|
||||
16#003 and
|
||||
<00040404> 2 index -2 bitshift 3 and get or
|
||||
<0018080810101010> 2 index -4 bitshift 7 and get or
|
||||
<002040406060> 2 index -7 bitshift get or
|
||||
put
|
||||
ToFontCode exch dup
|
||||
16#003 and
|
||||
<00 04 04 04> 2 index -2 bitshift 3 and get or
|
||||
<00 18 08 08 10 10 10 10> 2 index -4 bitshift 7 and get or %??
|
||||
<00 20 40 40 60 60> 2 index -7 bitshift get or
|
||||
put
|
||||
} for
|
||||
|
||||
/CurrentX {currentpoint pop cvi} def % -- nX
|
||||
/CurrentY {currentpoint exch pop cvi} def % -- nY
|
||||
/TurnOff {not Style and /Style exch def} def % nFlags --
|
||||
/TurnOn { Style or /Style exch def} def % nFlags --
|
||||
/SpcWidth {(-- ) BlessString stringwidth pop mul} def % nSpaces -- width
|
||||
/BlessString % string -- string
|
||||
{
|
||||
dup 0 EscChar put % T0 esc code
|
||||
dup 1 ToFontCode Style get put
|
||||
} def
|
||||
|
||||
/G % sData nDotsPerHorizInch --
|
||||
{
|
||||
Inch exch idiv exch 0 exch
|
||||
% dup 0 127 put dup 1 128 put
|
||||
dup 0 EscChar put % T0 esc code
|
||||
dup 1 128 put % number of the graphics font!!
|
||||
ashow
|
||||
} def
|
||||
|
||||
/G0 { 60 G} def % sData --
|
||||
/G1 {120 G} def % sData --
|
||||
/G2 {120 G} def % sData --
|
||||
/G3 {240 G} def % sData --
|
||||
/G4 { 80 G} def % sData --
|
||||
/G6 { 90 G} def % sData --
|
||||
|
||||
/E-4 {kfItalics TurnOn} def % --
|
||||
/E-5 {kfItalics TurnOff} def % --
|
||||
/E--1 {kfUnderline TurnOn} def % --
|
||||
/E--0 {kfUnderline TurnOff} def % --
|
||||
/E-E {kfEmphasized TurnOn} def % --
|
||||
/E-F {kfEmphasized TurnOff} def % --
|
||||
/E-G {kfDblStrike TurnOn} def % --
|
||||
/E-H {kfDblStrike TurnOff} def % --
|
||||
/E-W1 {kfExpanded TurnOn} def % --
|
||||
/E-W0 {kfExpanded kfExpanded1L or TurnOff} def % --
|
||||
/E-M {kfElite TurnOn} def % --
|
||||
/E-P {kfElite TurnOff} def % --
|
||||
/C-O {kfCompressed TurnOn} def % --
|
||||
/C-R {kfCompressed TurnOff} def % --
|
||||
/C-N {kfExpanded1L TurnOn} def % --
|
||||
/C-T {kfExpanded1L TurnOff} def % --
|
||||
/E-S0 {kfSuperscript TurnOn kfSubscript TurnOff} def % --
|
||||
/E-S1 {kfSubscript TurnOn kfSuperscript TurnOff} def % --
|
||||
/E-T {kfSuperscript kfSubscript or TurnOff} def % --
|
||||
|
||||
/E-3 {Scale mul 3 idiv /LFDY exch def} def % n-216ths-inch --
|
||||
/E-A {Scale mul /LFDY exch def} def % n-72nds-inch --
|
||||
/E-0 { 9 E-A} def % --
|
||||
/E-1 { 7 E-A} def % --
|
||||
/E-2 {12 E-A} def % --
|
||||
|
||||
/E-C {LFDY mul SetFormLength} def % nLines -- % or sixths of an inch??
|
||||
/E-C0 {Inch mul SetFormLength} def % nInches --
|
||||
|
||||
/C-I % nReps --
|
||||
{
|
||||
TabWidth mul CurrentX TabWidth mod sub 0 rmoveto
|
||||
ClampX
|
||||
} def
|
||||
|
||||
/C-L % nReps --
|
||||
{
|
||||
{showpage} repeat
|
||||
0 Inch 6 idiv 65 mul moveto % 0 or CurrentX ??
|
||||
} def
|
||||
|
||||
/T {BlessString show} def % string --
|
||||
/CR {0 CurrentY moveto} def % --
|
||||
/C-M {kfExpanded1L TurnOff CR pop} def % nReps --
|
||||
/C-J {LFDY mul Down} def % nLines --
|
||||
/E-f1 {LFDY mul Down} def % nLines --
|
||||
/E-J {Scale mul 3 idiv Down} def % n-216ths-inch --
|
||||
/C-H {SpcWidth neg 0 rmoveto ClampX} def % nReps --
|
||||
/E-l {SpcWidth /LMargin exch def} def % nSpaces --
|
||||
/E-Q {SpcWidth /RMargin exch def} def % nSpaces --
|
||||
|
||||
/Down % nDeltaY --
|
||||
{
|
||||
neg 0 exch rmoveto
|
||||
neg 0 exch rmoveto
|
||||
|
||||
CurrentY PageHeight -1 {
|
||||
pop 0 PageHeight rmoveto gsave showpage grestore
|
||||
} for
|
||||
|
||||
CurrentY PageHeight 0 {
|
||||
pop 0 PageHeight rmoveto gsave showpage grestore
|
||||
} for
|
||||
} def
|
||||
|
||||
/BlessString % string --
|
||||
{
|
||||
dup 0 127 put
|
||||
dup 1 ToFontCode Style get put
|
||||
/SetFormLength % nY --
|
||||
{ % incomplete!!
|
||||
pop
|
||||
} def
|
||||
|
||||
/ClampX % --
|
||||
@ -119,57 +63,126 @@
|
||||
exch moveto
|
||||
} def
|
||||
|
||||
/Reset
|
||||
/C-I % nReps --
|
||||
{ % temporary!!
|
||||
TabWidth mul CurrentX TabWidth mod sub 0 rmoveto
|
||||
ClampX
|
||||
} def
|
||||
|
||||
/CurrentX {currentpoint pop cvi} def % -- nX
|
||||
/CurrentY {currentpoint exch pop cvi} def % -- nY
|
||||
/TurnOff {not Style and /Style exch def} def % nFlags --
|
||||
/TurnOn { Style or /Style exch def} def % nFlags --
|
||||
/T {BlessString show} def % string --
|
||||
/CR {LMargin CurrentY moveto} def % --
|
||||
/SpcWidth {(-- ) BlessString stringwidth pop mul} def % nSpaces -- width
|
||||
|
||||
/G0 { 60 G} def % sData --
|
||||
/G1 {120 G} def % sData --
|
||||
/G2 {120 G} def % sData --
|
||||
/G3 {240 G} def % sData --
|
||||
/G4 { 80 G} def % sData --
|
||||
/G6 { 90 G} def % sData --
|
||||
|
||||
/E-4 {kfItalics TurnOn} def % --
|
||||
/E-5 {kfItalics TurnOff} def % --
|
||||
/E--1 {kfUnderline TurnOn} def % --
|
||||
/E--0 {kfUnderline TurnOff} def % --
|
||||
/E-E {kfEmphasized TurnOn} def % --
|
||||
/E-F {kfEmphasized TurnOff} def % --
|
||||
/E-G {kfDblStrike TurnOn} def % --
|
||||
/E-H {kfDblStrike TurnOff} def % --
|
||||
/C-O {kfCompressed TurnOn} def % --
|
||||
/C-R {kfCompressed TurnOff} def % --
|
||||
/C-N {kfExpanded1L TurnOn} def % --
|
||||
/C-T {kfExpanded1L TurnOff} def % --
|
||||
/E-W1 {kfExpanded TurnOn} def % --
|
||||
/E-W0 {kfExpanded kfExpanded1L or TurnOff} def % --
|
||||
/E-M {kfElite TurnOn} def % --
|
||||
/E-P {kfElite TurnOff} def % --
|
||||
/E-S0 {kfSuperscript TurnOn kfSubscript TurnOff} def % --
|
||||
/E-S1 {kfSubscript TurnOn kfSuperscript TurnOff} def % --
|
||||
/E-T {kfSuperscript kfSubscript or TurnOff} def % --
|
||||
|
||||
/E-3 {Scale mul 3 idiv /LFDY exch def} def % n-216ths-inch --
|
||||
/E-A {Scale mul /LFDY exch def} def % n-72nds-inch --
|
||||
/E-0 { 9 E-A} def % --
|
||||
/E-1 { 7 E-A} def % --
|
||||
/E-2 {12 E-A} def % --
|
||||
/E-J {Scale mul 3 idiv Down} def % n-216ths-inch --
|
||||
/C-J {LFDY mul Down} def % nReps --
|
||||
%/E-f1 {LFDY mul Down} def % nLines --
|
||||
|
||||
% None of these work yet!!
|
||||
/C-K {pop} def % nReps --
|
||||
/E-O { } def % --
|
||||
/E-N {pop} def % nLines --
|
||||
/E-e0 {pop} def % n --
|
||||
/E-e1 {pop} def % n --
|
||||
/E-f0 {pop} def % n --
|
||||
|
||||
/C-H {SpcWidth neg 0 rmoveto ClampX} def % nReps --
|
||||
/E-l {SpcWidth /LMargin exch def} def % nSpaces --
|
||||
/E-Q {SpcWidth /RMargin exch def} def % nSpaces --
|
||||
/E-C {LFDY mul SetFormLength} def % nLines --
|
||||
/E-C0 {Inch mul SetFormLength} def % nInches --
|
||||
|
||||
/C-M % nReps --
|
||||
{
|
||||
kfExpanded1L TurnOff
|
||||
CR
|
||||
CR-implies-LF {C-J} {pop} ifelse
|
||||
} def
|
||||
|
||||
/C-L % nReps --
|
||||
{
|
||||
{showpage} repeat
|
||||
CurrentX 780 Scale mul moveto % 780 pt == 65 standard lines
|
||||
% 0 or CurrentX ??
|
||||
} def
|
||||
|
||||
/Reset % --
|
||||
{
|
||||
/TabWidth Inch 4 mul 5 idiv def % fixed-size tabs!!
|
||||
% /TabStops <00 08 10 18 20 28 30 38 40 48 50 58 60 68> def %??
|
||||
|
||||
% 0 E-l 80 E-Q
|
||||
/LMargin 0 def
|
||||
/RMargin 8 Inch mul def
|
||||
/PageHeight Inch 11 mul def
|
||||
|
||||
/Style 0 def
|
||||
/TabWidth Inch 8 mul 10 idiv def % fixed-size tabs!!
|
||||
E-2 E-O
|
||||
E-2 %E-O
|
||||
} def
|
||||
|
||||
/BeginDocument % --
|
||||
{
|
||||
18 4 translate
|
||||
0 780 moveto
|
||||
1. Scale div dup scale
|
||||
/Ibsen findfont /T0Font get 10 Scale mul scalefont setfont
|
||||
currentfont begin userdict begin
|
||||
Reset
|
||||
} def
|
||||
|
||||
/EndDocument % --
|
||||
{
|
||||
showpage
|
||||
end end
|
||||
|
||||
/pdfmark where { pop [
|
||||
/Creator (Catakig 2)
|
||||
/Producer (http://catakig.sourceforge.net/)
|
||||
/DOCINFO pdfmark } if
|
||||
|
||||
/setdistillerparams where { pop <<
|
||||
%/CompatibilityLevel 1.4
|
||||
%/NeverEmbed [/Courier]
|
||||
%/EmbedAllFonts true
|
||||
/SubsetFonts true
|
||||
/CompressFonts true
|
||||
/CompressPages true
|
||||
>> setdistillerparams } if
|
||||
|
||||
} def
|
||||
|
||||
%-----------------------------------------------------------------------------
|
||||
% incomplete routines!!
|
||||
|
||||
/SetFormLength % nY --
|
||||
{
|
||||
pop
|
||||
} def
|
||||
|
||||
/E-O { } def % --
|
||||
/E-N {pop} def % nLines --
|
||||
/E-e0 {pop} def % n --
|
||||
/E-e1 {pop} def % n --
|
||||
/E-f0 {pop} def % n --
|
||||
|
||||
|
||||
|
||||
/C-K % nReps --
|
||||
{
|
||||
pop
|
||||
} def
|
||||
|
||||
%-----------------------------------------------------------------------------
|
||||
|
||||
/pdfmark where { pop [
|
||||
/Creator (Catakig 2)
|
||||
/Producer (http://catakig.sourceforge.net)
|
||||
/DOCINFO pdfmark } if
|
||||
|
||||
/setdistillerparams where { pop <<
|
||||
%/CompatibilityLevel 1.4
|
||||
%/NeverEmbed [/Courier]
|
||||
%/EmbedAllFonts true
|
||||
/SubsetFonts true
|
||||
/CompressFonts true
|
||||
/CompressPages true
|
||||
>> setdistillerparams } if
|
||||
|
||||
18 0 translate
|
||||
0 784 moveto
|
||||
1. Scale div dup scale
|
||||
|
||||
/Ibsen findfont /T0Font get 12 Scale mul scalefont setfont
|
||||
Reset
|
||||
|
||||
|
@ -22,8 +22,8 @@
|
||||
* Are we capturing screens in the best and fastest way?
|
||||
* Drag & Drop disk slots
|
||||
* File filtering is slow when opening disk images.
|
||||
* Add sound recording.
|
||||
* Add QuickTime movie recording.
|
||||
* Add recording sound to files.
|
||||
* Add recording QuickTime movies.
|
||||
|
||||
|
||||
==== Miscellany ====
|
||||
|
@ -26,6 +26,7 @@
|
||||
* Implement the "bizarre" (and useless) GR video mode?
|
||||
* Simulate color burst for text in graphics mode.
|
||||
* Implement Videx 80-column card for IIo and IIp models?
|
||||
* IIo and IIp text video still isn't entirely authentic.
|
||||
|
||||
|
||||
==== Audio ====
|
||||
@ -41,9 +42,8 @@
|
||||
* Support BZ- and GZ-compressed disk image files.
|
||||
* Use track size of 6384-6400 bytes instead of 6656?
|
||||
* Infer DO/PO format of 140K disks by examining their contents.
|
||||
* On computer Reset, does the IWM mode register revert to 0?
|
||||
* Update checksum on modified DiskCopy 4 images.
|
||||
* Does IWM mode register change after RESET?
|
||||
* Update checksum on modified DiskCopy 4 images.
|
||||
* Support FDI disk images? NB2?
|
||||
* Forbid Disk II drives accepting 2IMG-PO disks > 140 KB.
|
||||
* On real Apple II with IWM, verify IWM status register value under all
|
||||
@ -60,6 +60,7 @@
|
||||
* The Flex scanner is not re-entrant, and not thread-safe. Use 're2c'?
|
||||
* Output PS should be friendly to A4 paper sizes, and PDF distilling.
|
||||
* Use PDF-lib library for printing to PDF?
|
||||
* Let user select ribbon ink color.
|
||||
* Preferences:
|
||||
LF after CR, yes or no
|
||||
7 or 8 bit data path
|
||||
|
@ -1,26 +1,34 @@
|
||||
|
||||
==== 2.00b4, 2006-10-27 ====
|
||||
|
||||
Streamlined the Epson dot-matrix printer font. The PFA file is about 50 KB smaller, down from 150, which slims PostScript output files by the same amount.
|
||||
|
||||
Also, Catakig's PostScript files can now be opened with Apple's Preview application. This makes viewing them, printing them, and saving them to PDF much more convenient, at least for MacOS X users. [Achieved this by making the output DSC-compliant.]
|
||||
|
||||
Added recognition of the Revision-04 //c ROM. Thanks to Nick W.
|
||||
|
||||
Fixed (probably) a flashing-border bug that could happen in full-screen mode.
|
||||
|
||||
The "Full Screen" menu command's shortcut is changed to ctrl-F9, to help avoid conflicts with Apple's shortcuts for Expose. It's probably not a permanent solution to the problem however.
|
||||
|
||||
A small cosmetic change: the Apple ][ model now starts up with a screen full of '?' and '>' characters, instead of completely random characters. This more closely mimics the behavior of the real machines.
|
||||
|
||||
|
||||
==== 2.00b3, 2006-10-20 ====
|
||||
|
||||
Fixed broken ROM scanning on many Mac models. [Now using 'crc32' instead of
|
||||
'adler32', both from 'zlib'. Also reverted back to C FILE pointers after
|
||||
having tried NSInputStreams to no great advantage.]
|
||||
Fixed ROM file scanning, which was broken on many Mac models. [Now using 'crc32' to compute checksums instead of 'adler32'. Both functions are from 'zlib', but apparently 'adler32' can return different sums on different platforms. Also reverted to using C FILEs after having tried NSInputStreams to no great advantage.]
|
||||
|
||||
Added recognition of Revision-00 IIc ROM.
|
||||
Added recognition of the Revision-00 //c ROM. Thanks to Brian N.
|
||||
|
||||
Improved intelligence of the memory card firmware in slot 4. Added more
|
||||
error detection. Implemented more authentic behavior when the memory
|
||||
isn't there (when the user has selected "Extra RAM: None").
|
||||
Improved intelligence of the memory card firmware in slot 4. Added more error detection. Implemented more authentic behavior when the memory isn't there (when the user has selected "Extra RAM: None").
|
||||
|
||||
Fixed some bad code in the printer firmware that mangled CR behavior and
|
||||
other character output. This bug affected pre-IIc models only.
|
||||
Fixed some bad code in the printer firmware that mangled CR behavior and other character output. This bug affected pre-//c models only.
|
||||
|
||||
In the "Save Printer Session" dialog, the "Add suffix" checkbox had no
|
||||
actual effect. Fixed.
|
||||
In the "Save Printer Session" dialog, the "Add suffix" checkbox had no actual effect. Fixed.
|
||||
|
||||
Fixed IIe memory mapping behavior in the $C100-C7FF area.
|
||||
Fixed incorrect //e memory mapping behavior in the $C100-C7FF area.
|
||||
|
||||
Removed bogus menu commands related to document files. The saving and
|
||||
restoring of Apple II states isn't supported yet. Also removed the "Help"
|
||||
menu, as there is no in-line help yet.
|
||||
Removed bogus menu commands related to document files. The saving and restoring of Apple II states is not implemented yet. Also removed the cruelly deceitful Help menu, as there is no in-line help at present.
|
||||
|
||||
|
||||
==== 2.00b2, 2006-10-17 ====
|
||||
|
@ -93,8 +93,8 @@ static GLuint MakeTextureObject(void)
|
||||
|
||||
static void BlessThisContext(NSOpenGLContext* context) //!!
|
||||
{/*
|
||||
Sets up an OpenGLContext the way we like it. Also makes 'context'
|
||||
the current context and leaves it that way on exit.
|
||||
Sets up an OpenGLContext the way we like it. Also makes the context
|
||||
the current one, leaving it that way on return.
|
||||
*/
|
||||
[context makeCurrentContext];
|
||||
[context SetSwapInterval:1L];
|
||||
@ -160,14 +160,14 @@ static NSOpenGLContext* MakeFullScreenContext(CGDirectDisplayID dpy)
|
||||
initWithAttributes:pixFmtAttrs]) autorelease];
|
||||
context = [[NSOpenGLContext alloc]
|
||||
initWithFormat:pixFmt shareContext:nil];
|
||||
[context setFullScreen];
|
||||
|
||||
BlessThisContext(context);
|
||||
MakeDisplayList();
|
||||
glBindTexture(GL_TEXTURE_2D, MakeTextureObject());
|
||||
GL_PrepareViewport(CGDisplayPixelsWide(dpy), CGDisplayPixelsHigh(dpy));
|
||||
GL_ClearBothBuffers();
|
||||
GL_PrepareViewport(CGDisplayPixelsWide(dpy), CGDisplayPixelsHigh(dpy));
|
||||
|
||||
[context setFullScreen];
|
||||
return context;
|
||||
}
|
||||
|
||||
|
@ -42,6 +42,22 @@
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static void RandomizeVideoMemory(void* ram, unsigned model)
|
||||
{
|
||||
for (int i = 0x6000; --i >= 0;)
|
||||
((uint16_t*)ram)[i] = A2Random16();
|
||||
|
||||
if (model == kA2ModelIIo)
|
||||
{
|
||||
uint32_t* p = (uint32_t*)ram;
|
||||
|
||||
for (int i = 0x400/4; i < 0xC00/4; ++i)
|
||||
p[i] = p[i] & 0x01010101 | 0xBEBEBEBE;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
- (id)init
|
||||
{/*
|
||||
"Add your subclass-specific initialization here. If an error occurs,
|
||||
@ -80,11 +96,7 @@
|
||||
mIWM[dd>>1].drive[dd&1] = [[A2DiskDrive alloc]
|
||||
InitUsingBuffer: mMemory->diskBuffers[dd] ];
|
||||
|
||||
// Initialize video memory with random bytes (a theatrical effect).
|
||||
|
||||
for (int i = 0x6000; --i >= 0;)
|
||||
((uint16_t*)(mMemory->RAM))[i] = A2Random16();
|
||||
|
||||
RandomizeVideoMemory(mMemory->RAM, mModel);
|
||||
madvise(mMemory, mMemorySize, MADV_SEQUENTIAL);
|
||||
[self _PrepareModel];
|
||||
return self;
|
||||
|
@ -11,6 +11,29 @@
|
||||
static int input(void);
|
||||
//static uint8_t gEpsonFontForStyle[0x2FF + 1];
|
||||
|
||||
static const char* gEpson1 =
|
||||
"%!PS-Adobe-3.0\n"
|
||||
// "%%DocumentData: Binary\n"
|
||||
"%%LanguageLevel: 2\n"
|
||||
"%%Orientation: Portrait\n"
|
||||
"%%DocumentSuppliedResources: font Ibsen procset MyProcs\n"
|
||||
"%%EndComments\n\n"
|
||||
"%%BeginProlog\n"
|
||||
"%%BeginResource: procset MyProcs\n";
|
||||
|
||||
static const char* gEpson2 =
|
||||
"%%EndResource\n"
|
||||
"%%EndProlog\n\n"
|
||||
"%%BeginSetup\n"
|
||||
"%%BeginResource: font Ibsen\n";
|
||||
|
||||
static const char* gEpson3 =
|
||||
"%%EndResource\n"
|
||||
"%%EndSetup\n"
|
||||
"BeginDocument\n\n";
|
||||
|
||||
enum { kUseDSC = YES }; // experimental!!
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
static void EpsonText(BOOL trailingRubouts)
|
||||
@ -23,7 +46,7 @@ static void EpsonText(BOOL trailingRubouts)
|
||||
char ch = yytext[i];
|
||||
|
||||
if (ch == '(' or ch == ')' or ch == '\\')
|
||||
fputc('\\', yyout);
|
||||
putc('\\', yyout);
|
||||
putc(ch, yyout);
|
||||
}
|
||||
fputs(") T", yyout);
|
||||
@ -41,7 +64,7 @@ static void EpsonGraphics(int mode)
|
||||
if (nbytes < 1)
|
||||
return;
|
||||
|
||||
fputs("\n<7F80 ", yyout);
|
||||
fputs("\n<0000 ", yyout);
|
||||
while (--nbytes >= 0 and EOF != (data = input()))
|
||||
{
|
||||
putc(hexDigit[data >> 4], yyout);
|
||||
@ -52,10 +75,11 @@ static void EpsonGraphics(int mode)
|
||||
|
||||
%} --------------------------------------------------------------------------
|
||||
|
||||
ESC \x1B
|
||||
ANY [\0-\x7F]
|
||||
ANY2 {ANY}{2}
|
||||
ANY3 {ANY}{3}
|
||||
ESC \x1B
|
||||
_01 [01\0\1]
|
||||
|
||||
%%
|
||||
%{
|
||||
@ -67,7 +91,7 @@ ANY3 {ANY}{3}
|
||||
%}
|
||||
|
||||
<EpsonRX>{
|
||||
<<EOF>> fputs("\nshowpage\n", yyout); return;
|
||||
<<EOF>> return;
|
||||
{ESC}[@] { fputs("\nReset\n", yyout);
|
||||
charset = 0; gcharset = NO;
|
||||
}
|
||||
@ -84,20 +108,19 @@ ANY3 {ANY}{3}
|
||||
{ESC}[01245EFGHMOPT] {
|
||||
fprintf(yyout, " E-%c", yytext[1]);
|
||||
}
|
||||
{ESC}?[\x0F\x12\x0E\x14] {
|
||||
fprintf(yyout, " C-%c", yytext[yyleng-1] | '@');
|
||||
}
|
||||
{ESC}[-SW][01\0\1] {
|
||||
{ESC}[-SW]{_01} {
|
||||
fprintf(yyout, " E-%c%c", yytext[1], yytext[2] | '0');
|
||||
}
|
||||
{ESC}?[\x0E\x0F\x12\x14] {
|
||||
fprintf(yyout, " C-%c", yytext[yyleng-1] | '@');
|
||||
}
|
||||
{ESC}C\0{ANY} |
|
||||
{ESC}[ef][01]{ANY} {
|
||||
{ESC}[ef]{_01}{ANY} {
|
||||
fprintf(yyout, " %d E-%c%c", yytext[3], yytext[1], yytext[2]|'0');
|
||||
}
|
||||
{ESC}[3ACJNQl]{ANY} {
|
||||
fprintf(yyout, " %d E-%c", yytext[2], yytext[1]);
|
||||
}
|
||||
|
||||
\x08+|\x09+|\x0A+|\x0B+|\x0C+|\x0D+ {
|
||||
fprintf(yyout, " %d C-%c", yyleng, yytext[0] | '@');
|
||||
}
|
||||
@ -109,17 +132,17 @@ ANY3 {ANY}{3}
|
||||
{ESC}[*]{ANY3} |
|
||||
{ESC}[ef]{ANY2} |
|
||||
{ESC}[-SRUWms]{ANY} |
|
||||
{ESC}{ANY} ; // invalid sequences, skipped
|
||||
{ESC}{ANY} ; // catch and skip invalid sequences
|
||||
}
|
||||
|
||||
<INITIAL>{
|
||||
[\n\t\v\f]+ |
|
||||
[\x20-\x7E]+ ECHO;
|
||||
[\x20-\x7E]+ ECHO; // state INITIAL is the ASCII filter
|
||||
}
|
||||
|
||||
<*>{
|
||||
{ANY} ; // ignored if not handled above
|
||||
<<EOF>> return;
|
||||
{ANY} ;
|
||||
<<EOF>> return;
|
||||
}
|
||||
|
||||
%%
|
||||
@ -163,7 +186,7 @@ ANY3 {ANY}{3}
|
||||
- (long)SizeOfPrintSession
|
||||
{/*
|
||||
Returns the number of bytes that have accumulated so far in the
|
||||
printer session.
|
||||
print session.
|
||||
*/
|
||||
fflush(mPrinter.session); // (probably unnecessary)
|
||||
return ftell(mPrinter.session);
|
||||
@ -173,8 +196,8 @@ ANY3 {ANY}{3}
|
||||
|
||||
- (void)ClearPrintSession
|
||||
{/*
|
||||
Clears (purges) the printer session. All data bytes that this printer
|
||||
has received are discarded.
|
||||
Clears the print session, discarding all bytes that this printer
|
||||
has received up until now.
|
||||
*/
|
||||
fflush(mPrinter.session);
|
||||
fseek(mPrinter.session, 0, SEEK_SET);
|
||||
@ -204,9 +227,24 @@ ANY3 {ANY}{3}
|
||||
break;
|
||||
|
||||
case kA2PFEpsonToPS:
|
||||
A2AppendResourceFile(fileno(yyout), @"Ibsen.pfa");
|
||||
A2AppendResourceFile(fileno(yyout), @"IbsenUtils.ps");
|
||||
yylex(filter);
|
||||
if (kUseDSC)
|
||||
{
|
||||
fputs(gEpson1, yyout); fflush(yyout);
|
||||
A2AppendResourceFile(fileno(yyout), @"IbsenUtils.ps");
|
||||
fputs(gEpson2, yyout); fflush(yyout);
|
||||
A2AppendResourceFile(fileno(yyout), @"Ibsen.pfa");
|
||||
fputs(gEpson3, yyout); fflush(yyout);
|
||||
yylex(filter);
|
||||
fputs("\n%%Trailer\nEndDocument\n%%EOF\n", yyout);
|
||||
}
|
||||
else
|
||||
{
|
||||
A2AppendResourceFile(fileno(yyout), @"Ibsen.pfa");
|
||||
A2AppendResourceFile(fileno(yyout), @"IbsenUtils.ps");
|
||||
fputs("BeginDocument\n", yyout);
|
||||
yylex(filter);
|
||||
fputs("EndDocument\n", yyout);
|
||||
}
|
||||
break;
|
||||
|
||||
case kA2PFPlain:
|
||||
|
@ -76,7 +76,7 @@ static struct // the ROM repository
|
||||
return gROM.IIcpMain[0] and gROM.IIcpAlt[0];
|
||||
}
|
||||
|
||||
return NO; // means model code isn't valid
|
||||
return NO; // means 'modelCode' isn't valid
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
@ -92,10 +92,10 @@ static struct // the ROM repository
|
||||
return;
|
||||
|
||||
if (slotROM != nil)
|
||||
memcpy((mMemory->ROM[1]) + 0x100*slotNum, slotROM, 0x100);
|
||||
memcpy(mMemory->ROM[1] + 0x100*slotNum, slotROM, 0x100);
|
||||
|
||||
if (expansionROM != nil)
|
||||
memcpy((mMemory->ROM[1]) + 0x800*slotNum, expansionROM, 0x800);
|
||||
memcpy(mMemory->ROM[1] + 0x800*slotNum, expansionROM, 0x800);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
@ -222,10 +222,14 @@ static struct // the ROM repository
|
||||
CASE(AA2342E8, IIo)
|
||||
CASE(B9E3B093, IIpD0) CASE(79135697, IIpD5)
|
||||
CASE(40375280, IIeC1) CASE(1DB83E23, IIeD5)
|
||||
CASE(24F39DF7, IIcpMain) CASE(F768C5C3, IIcpAlt)
|
||||
// CASE(24F39DF7, IIcpMain) CASE(F768C5C3, IIcpAlt)
|
||||
|
||||
case 0x816CDA70: CASE(228C4909, IIcMain)
|
||||
case 0xFA9D7930: CASE(DC459600, IIcAlt)
|
||||
case 0x816CDA70: // rev. 00
|
||||
CASE(228C4909, IIcMain) // rev. 03 and 04
|
||||
|
||||
case 0xFA9D7930: // rev. 00
|
||||
case 0xF768C5C3: // rev. 04 (also IIcpAlt!!)
|
||||
CASE(DC459600, IIcAlt) // rev. 03
|
||||
|
||||
CASE(CE7144F6, DiskII)
|
||||
CASE(BA81A559, Mouse)
|
||||
@ -238,7 +242,7 @@ static struct // the ROM repository
|
||||
memcpy(dest, chunk, chunkSize);
|
||||
fread(dest+chunkSize, 1, len-chunkSize, fin);
|
||||
|
||||
if (dest == gROM.IIpD0)
|
||||
if (crc == 0xB9E3B093) // IIpD0
|
||||
memcpy(gROM.IIeD0, dest, len);
|
||||
}
|
||||
|
||||
|
@ -183,14 +183,13 @@ BOOL A2AppendResourceFile(fd_t fout, NSString* resName)
|
||||
Searches the application bundle for a given resource file, then
|
||||
appends its content to the given destination file.
|
||||
*/
|
||||
NSString* fpath;
|
||||
NSString* fpath = [resName PathForResource];
|
||||
fd_t fin;
|
||||
|
||||
fpath = [resName PathForResource];
|
||||
if (fpath == nil)
|
||||
return NO;
|
||||
|
||||
fin = open([fpath fileSystemRepresentation], O_RDONLY);
|
||||
fin = open([fpath fileSystemRepresentation], O_RDONLY|O_NONBLOCK);
|
||||
if (fin < 0)
|
||||
return NO;
|
||||
|
||||
|
@ -157,7 +157,7 @@ extern struct A2PrivateTables
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
BOOL A2AppendResourceFile(fd_t fout, NSString* resName);
|
||||
BOOL A2AppendResourceFile(fd_t, NSString* resName);
|
||||
void A2DumpArray(const char*, const void*, size_t, int);
|
||||
unsigned A2GleanFileFormat(const void* header, size_t size);
|
||||
unsigned A2HitIWM(A2IWM* iwm, unsigned ea, unsigned d);
|
||||
|
@ -26,7 +26,7 @@ enum
|
||||
kA2DiskReadOnly,
|
||||
kA2DiskReadWrite,
|
||||
|
||||
kA2PFPlain = 0, // printer I/O filters
|
||||
kA2PFPlain = 0, // printer session filters
|
||||
kA2PFEpsonToPS,
|
||||
// kA2PFScribeToPS,
|
||||
kA2PFVerbatim,
|
||||
@ -37,7 +37,7 @@ enum
|
||||
kfA2LightDDrive3 = 1<<3,
|
||||
kfA2LightPrinter = 1<<4,
|
||||
|
||||
kfA2Button0 = 1, // button & mod-key states
|
||||
kfA2Button0 = 1, // button and modifier-key states
|
||||
kfA2Button1 = 1<<1,
|
||||
kfA2Button2 = 1<<2,
|
||||
kfA2ButtonMouse = 1<<3,
|
||||
@ -133,7 +133,7 @@ extern struct A2Globals
|
||||
int16_t *mTblADC, // this model's ADC and SBC tables
|
||||
*mTblSBC;
|
||||
|
||||
uint8_t mVideoFlags[262]; // video flags for each scanline
|
||||
uint8_t mVideoFlags[262]; // video flags at each scanline
|
||||
|
||||
//----------------- Peripherals -----------------
|
||||
|
||||
@ -174,7 +174,8 @@ extern struct A2Globals
|
||||
@end
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// The various methods of A2Computer, grouped by category.
|
||||
// The various methods of A2Computer, grouped by category (and separate
|
||||
// source files).
|
||||
|
||||
@interface A2Computer (Audio)
|
||||
|
||||
|
@ -9,7 +9,10 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
- (NSOpenGLContext*)MakeCurrentContext
|
||||
{
|
||||
{/*
|
||||
Makes this context the current one, returning whatever was the previous
|
||||
current context.
|
||||
*/
|
||||
NSOpenGLContext* prev = [NSOpenGLContext currentContext];
|
||||
|
||||
[self makeCurrentContext];
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* MyUtils.h
|
||||
|
||||
My own (CK's) generally useful additions to the Cocoa/GNUstep classes
|
||||
-- not specific to any particular project.
|
||||
My own (CK's) generally useful additions to the Cocoa/GNUstep classes,
|
||||
which are not specific to any particular project.
|
||||
*/
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <AppKit/AppKit.h>
|
||||
|
@ -1,7 +1,7 @@
|
||||
// 'common.xcconfig' -- a set of common XCode configration settings
|
||||
// shared by all targets.
|
||||
|
||||
App_Version = 2.00b3
|
||||
App_Version = 2.00b4
|
||||
|
||||
PRODUCT_NAME = Catakig
|
||||
WRAPPER_EXTENSION = app
|
||||
|
Loading…
Reference in New Issue
Block a user