Reverse printing glue

This commit is contained in:
Elliot Nunn 2017-10-07 19:30:19 +08:00
parent 76713a2368
commit 8cc7afaf0d
5 changed files with 32 additions and 5 deletions

Binary file not shown.

Binary file not shown.

View File

@ -362,7 +362,12 @@ GotPDEF
_GetHandleSize ; How big is our PDEF Handle <LW2> fau
cmp.l #32,D0 ; Is it "small" <LW2> fau
bhi.s @RealPDEF ; no, don't flush the cache <LW2> fau
jsr ([jCacheFlush]) ; else, flush the caches. <LW2> fau
move.l A0,-(SP)
move.l (A0),A0
move.l D0,A1
import FLUSHCRANGE
bsr.l FLUSHCRANGE ; else, flush the caches.
move.l (SP)+,A0
@RealPDEF ; <LW2> fau
_HLock
;<22Feb87> JNP Restore curMap before jumping into the print code.
@ -375,7 +380,7 @@ GotPDEF
Add.b ParmByt(a6),d0
Sub.w d0,sp ; We know the thing isn't actually more than a word wide
Move.l sp,a1 ; Beginning of destination
_BlockMove ; Note: Leaves d0 = 0
_BlockMoveData ; Note: Leaves d0 = 0
; Call the routine. The offset into the PDEF to jump to is given by the glue parameter
Move.b CodeOfs(a6),d0 ; Get offset (note high part of d0 is still 0)
Andi.b #$7F,d0 ; Mask off the unlock bit that is stored there
@ -543,9 +548,17 @@ SetError
LLOut
Add.w #IOQElSize,sp ; Strip parameter block
Move.w d0,PrintVars+iPrErr ; Set return code
GlueOut
GlueOut
;
; Get the number of bytes of parameter to this entry in d1
Move.l sp,-(sp)
Moveq.l #0,d0
Move.b FuncByt(a6),d0
Lsr.b #3,d0
Move.l d0,-(sp)
Import PRINTINGNEWFUNC_337D0
Bsr PRINTINGNEWFUNC_337D0
Addq #8,sp
Moveq #0,d1
Move.b ParmByt(a6),d1 ; Get from the table, source of all knowledge...
; Copy the function value, if any, back up to the caller's stack frame
@ -670,7 +683,7 @@ kAliasID EQU -8192 ; System Printer alias's resID
MOVE.B (A0), D0 ; which is this long
ADDQ.B #1, D0 ; plus that length byte!
LEA sysFileSpec + FSSpec.name(A6), A1 ; to the FSSpec
_BlockMove
_BlockMoveData
; ResolveDriver: Resolve the alias using the system file's FSSpec.

View File

@ -0,0 +1,12 @@
PrintingObjs = "{ObjDir}PrintGlue.a.o" ¶
"{ObjDir}PrintingExtra.a.o"
"{ObjDir}PrintGlue.a.o" Ä "{ObjDir}StandardEqu.d" ¶
"{AIncludes}PrPrivate.a" ¶
"{PrintingDir}PrintGlue.a"
Asm {StdAOpts} -o "{Targ}" "{PrintingDir}PrintGlue.a"
"{LibDir}Printing.lib" Ä {PrintingObjs}
Lib {StdLibOpts} -o "{Targ}" {PrintingObjs}

View File

@ -10,7 +10,7 @@ ToolboxObjs = "{ObjDir}PackageMgr.a.o"
"{ObjDir}GetMgr.a.o" ¶
"{ObjDir}TextEdit.lib" ¶
"{ObjDir}ScrapMgr.a.o" ¶
"{ObjDir}Printing.a.o" ¶
"{LibDir}Printing.lib" ¶
"{ObjDir}SexyDate.a.o"
@ -44,6 +44,7 @@ ToolboxObjs = "{ObjDir}PackageMgr.a.o"
# The following libs are *not* part of Toolbox.lib
PrintingDir = "{ToolBoxDir}Printing:"
AliasMgrDir = "{ToolBoxDir}AliasMgr:"
ComponentMgrDir = "{ToolBoxDir}ComponentMgr:"
DataAccessDir = "{ToolBoxDir}DataAccessMgr:"
@ -61,6 +62,7 @@ FontMgrDir = "{ToolBoxDir}FontMgr:"
SANEDir = "{ToolBoxDir}SANE:"
InSaneDir = "{ToolBoxDir}InSANE:"
#include "{PrintingDir}Printing.make"
#include "{AliasMgrDir}AliasMgr.make"
#include "{ComponentMgrDir}ComponentMgr.make"
#include "{DataAccessDir}DataAccessMgr.make"