mirror of
https://github.com/antoinevignau/source.git
synced 2025-01-04 19:30:30 +00:00
1 line
14 KiB
ArmAsm
Executable File
1 line
14 KiB
ArmAsm
Executable File
|
|
load 'macros.dump'
|
|
include 'driver.equ'
|
|
include 'pl.equ'
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; Imported addresses
|
|
;
|
|
;-----------------------------------------------
|
|
|
|
IMPORT D_DateToStr
|
|
IMPORT D_FastMult
|
|
IMPORT D_GetRefCon
|
|
IMPORT D_KillFont
|
|
IMPORT P_AllHGCount
|
|
IMPORT P_AllHGuides
|
|
IMPORT P_AllVGCount
|
|
IMPORT P_AllVGuides
|
|
IMPORT P_ContentRect
|
|
IMPORT P_CurDate
|
|
IMPORT P_CurrentWin
|
|
IMPORT P_Cursor
|
|
IMPORT P_FindGuide
|
|
IMPORT P_FirstPOff
|
|
IMPORT P_FullPageRect
|
|
IMPORT P_FullPaperRect
|
|
IMPORT P_H
|
|
IMPORT P_ImportType
|
|
IMPORT P_LineSize
|
|
IMPORT P_MagGuides
|
|
IMPORT P_OldIdlePt
|
|
IMPORT P_Page
|
|
IMPORT P_PageMode
|
|
IMPORT P_PageRect
|
|
IMPORT P_PaperRect
|
|
IMPORT P_Placing
|
|
IMPORT P_PortRect
|
|
IMPORT P_PrintHand
|
|
IMPORT P_SetCursor
|
|
IMPORT P_SpecStr
|
|
IMPORT P_TrackMaskHorz
|
|
IMPORT P_TrackMaskVert
|
|
IMPORT P_TrackOn
|
|
IMPORT P_V
|
|
IMPORT P_ValidRect
|
|
IMPORT P_VisRuler
|
|
IMPORT P_WinStuffSize
|
|
IMPORT P_WindowStuff
|
|
IMPORT D_PrintToLW
|
|
IMPORT D_SelectFont
|
|
IMPORT D_Set4Pat
|
|
IMPORT T_DotObj
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; Forward addresses and entries
|
|
;
|
|
;-----------------------------------------------
|
|
|
|
|
|
|
|
|
|
;--------------------------------------------------------------------------------
|
|
;
|
|
; This is a massive kludge to get around Apple's fucked up LaserWriter driver.
|
|
; The LaserWriter driver uses the current pen D_Pattern for drawing Q_Text instead
|
|
; of the current Q_Text pen. Furthermore, because of the way Quickdraw records
|
|
; pictures, it is not sufficient to just set the pen D_Pattern, because Quickdraw
|
|
; will not record the change until something it applies to, i.e. not Q_Text, is
|
|
; drawn. Therefore the bogus call to FrameRect. Argggg!!
|
|
;
|
|
|
|
|
|
P_AppleFuck PROC EXPORT
|
|
;Using D_GlobalData
|
|
|
|
lda >D_PrintToLW
|
|
beq Exit
|
|
|
|
tool _PenNormal
|
|
tool _FrameRect,in=(#BogusRect:l)
|
|
|
|
Exit rtl
|
|
|
|
BogusRect DC.W 0,0,0,0
|
|
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
;------------------------------------------------------------------------------
|
|
;
|
|
; P_Entry ()
|
|
;
|
|
; Entry routine.
|
|
|
|
P_Entry PROC EXPORT
|
|
;Using P_Data
|
|
|
|
tool _SetPort,in=(P_CurrentWin:l)
|
|
jsl D_KillFont
|
|
|
|
rtl
|
|
ENDP
|
|
|
|
|
|
|
|
;---------------------------------------------------------------------------
|
|
;
|
|
; P_SaveWindowStuff
|
|
;
|
|
|
|
P_SaveWindowStuff PROC EXPORT
|
|
;Using P_Data
|
|
|
|
input window:l
|
|
local tmp:l
|
|
begin
|
|
|
|
IsNil window
|
|
beq Exit
|
|
|
|
call D_GetRefCon,in=(window:l),out=(tmp:l)
|
|
tool _BlockMove,in=(#P_WindowStuff:l,[tmp]:l,#P_WinStuffSize:l)
|
|
|
|
Exit return
|
|
ENDP
|
|
|
|
|
|
|
|
;---------------------------------------------------------------------------
|
|
;
|
|
; P_LoadWindowStuff
|
|
;
|
|
|
|
P_LoadWindowStuff PROC EXPORT
|
|
;Using P_Data
|
|
|
|
input NewWindow:l
|
|
local tmp:l
|
|
begin
|
|
|
|
cmpl NewWindow,P_CurrentWin
|
|
beq Done
|
|
|
|
call P_SaveWindowStuff,in=(P_CurrentWin:l)
|
|
|
|
IsNil NewWindow
|
|
beq SetWin
|
|
|
|
call D_GetRefCon,in=(NewWindow:l),out=(tmp:l)
|
|
tool _BlockMove,in=([tmp]:l,#P_WindowStuff:l,#P_WinStuffSize:l)
|
|
|
|
SetWin movelong NewWindow,P_CurrentWin
|
|
|
|
Done return
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
|
|
;---------------------------------------------------------------------------
|
|
;
|
|
; P_LShift
|
|
;
|
|
; shifts A to the left X bits
|
|
; trashes Y.
|
|
; returns in A
|
|
|
|
P_LShift PROC EXPORT
|
|
|
|
txy
|
|
Shift beq DoneShift
|
|
asl a
|
|
dex
|
|
bra Shift
|
|
DoneShift rtl
|
|
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
;---------------------------------------------------------------------------
|
|
;
|
|
; P_RShift
|
|
;
|
|
; shifts A to the right X bits
|
|
; trashes Y.
|
|
; returns in A
|
|
|
|
P_RShift PROC EXPORT
|
|
|
|
txy
|
|
Shift beq DoneShift
|
|
lsr a
|
|
dex
|
|
bra Shift
|
|
DoneShift rtl
|
|
|
|
ENDP
|
|
|
|
|
|
|
|
;---------------------------------------------------------------------------
|
|
;
|
|
; P_Fix2Int
|
|
;
|
|
; converts <ax> fp to <a> short, rounding accordingly.
|
|
;
|
|
|
|
P_Fix2Int PROC EXPORT
|
|
|
|
tay
|
|
bpl exit
|
|
|
|
inx
|
|
|
|
exit txa
|
|
rtl
|
|
|
|
ENDP
|
|
|
|
|
|
|
|
;--------------------------------------------------------------------------
|
|
;
|
|
; P_DoScritch
|
|
;
|
|
|
|
P_DoScritch PROC EXPORT
|
|
;Using P_Data
|
|
;Using P_RulerData
|
|
|
|
input Pt:l
|
|
|
|
begin
|
|
|
|
lda P_VisRuler
|
|
jeq Exit
|
|
|
|
tool _SetPort,in=(P_CurrentWin:l)
|
|
tool _GetPenState,in=(#P_PennState:l)
|
|
call D_Set4Pat,in=(#Black:w)
|
|
tool _SetPenMode,in=(#notXOR:w)
|
|
tool _SetPenMask,in=(#P_TrackMaskVert:l)
|
|
tool _SetPenSize,in=(#1:w,#1:w)
|
|
|
|
; Horizontal tracking
|
|
|
|
tool _MoveTo,in=(Pt+2:w,#0:w)
|
|
tool _Line,in=(#0:w,#9:w)
|
|
tool _SetPenMask,in=(#P_TrackMaskHorz:l)
|
|
|
|
; Vertical tracking
|
|
|
|
subword P_ContentRect+2,#P_VRulWdth,s
|
|
pushword Pt
|
|
_MoveTo
|
|
|
|
tool _Line,in=(#38:w,#0:w)
|
|
norm tool _SetPenState,in=(#P_PennState:l)
|
|
|
|
|
|
Exit return
|
|
|
|
P_PennState DS.B 50
|
|
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
;---------------------------------------------------------------------------
|
|
;
|
|
; P_TrackCursor (PtPtr:l)
|
|
;
|
|
|
|
P_TrackCursor PROC EXPORT
|
|
;Using P_Data
|
|
|
|
input PtPtr:l
|
|
local D_Cursor:w,Pt:l,Width:w
|
|
begin
|
|
|
|
D_DoIdle movelong [PtPtr],Pt
|
|
|
|
lda P_Placing
|
|
beq NotPlacing
|
|
lda P_ImportType
|
|
beq ItsText
|
|
moveword #PlaceGrfCursor,D_Cursor
|
|
bra Placed
|
|
ItsText moveword #PlaceTxtCursor,D_Cursor
|
|
bra Placed
|
|
|
|
NotPlacing moveword P_Cursor,D_Cursor
|
|
Placed
|
|
|
|
tool _ClipRect,in=(#P_PortRect:l)
|
|
tool _PtInRect,in=(PtPtr:l,#P_ContentRect:l),out=(a:w)
|
|
bne TrackCurs
|
|
|
|
moveword #ArrowCursor,D_Cursor
|
|
lda P_TrackOn
|
|
jeq GotCurs
|
|
|
|
call P_DoScritch,in=(P_OldIdlePt:l)
|
|
stz P_TrackOn
|
|
brl GotCurs
|
|
|
|
TrackCurs
|
|
cmpw Pt+2,P_ContentRect+2
|
|
bge cont
|
|
|
|
subword P_ContentRect+2,2,Pt+2
|
|
|
|
cont
|
|
|
|
cmpw Pt,P_ContentRect
|
|
bge cont2
|
|
|
|
moveword #0,Pt
|
|
|
|
cont2
|
|
|
|
cmpl Pt,P_OldIdlePt
|
|
jeq GotCurs
|
|
|
|
lda P_TrackOn
|
|
beq AlreadyOff
|
|
|
|
call P_DoScritch,in=(P_OldIdlePt:l)
|
|
|
|
|
|
AlreadyOff call P_DoScritch,in=(Pt:l)
|
|
|
|
movelong Pt,P_OldIdlePt
|
|
moveword #1,P_TrackOn
|
|
|
|
|
|
GotCurs moveword #1,Width
|
|
lda P_PageMode
|
|
bne FullPage
|
|
moveword P_LineSize,Width
|
|
FullPage
|
|
|
|
call P_SetCursor,in=(D_Cursor:w,Width:w)
|
|
|
|
|
|
Exit tool _ClipRect,in=(#P_ContentRect:l)
|
|
return
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------
|
|
;
|
|
; P_Local2PL (a = Vert; x =Horix)
|
|
;
|
|
; Converts a Q_Point from local window coordinates to D_PL coordinates.
|
|
|
|
P_Local2PL PROC EXPORT
|
|
;Using P_Data
|
|
|
|
ldy P_PageMode
|
|
beq NoMap
|
|
|
|
movelong ax,Pt
|
|
tool _MapPt,in=(#Pt:l,#P_FullPageRect:l,#P_PageRect:l)
|
|
movelong Pt,ax
|
|
bra Exit
|
|
|
|
NoMap
|
|
addword a,P_V,a
|
|
subword a,P_ContentRect,s
|
|
addword x,P_H,a
|
|
subword a,P_ContentRect+2,x
|
|
pla
|
|
|
|
Exit rtl
|
|
|
|
Pt DS.B 4
|
|
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------
|
|
;
|
|
; P_PL2Local (a = Vert; x =Horix)
|
|
|
|
P_PL2Local PROC EXPORT
|
|
;Using P_Data
|
|
|
|
ldy P_PageMode
|
|
beq NoMap
|
|
|
|
movelong ax,Pt
|
|
tool _MapPt,in=(#Pt:l,#P_PageRect:l,#P_FullPageRect:l)
|
|
movelong Pt,ax
|
|
bra Exit
|
|
|
|
NoMap
|
|
subword a,P_V,a
|
|
addword a,P_ContentRect,s
|
|
subword x,P_H,a
|
|
addword a,P_ContentRect+2,x
|
|
pla
|
|
|
|
Exit rtl
|
|
|
|
Pt DS.B 4
|
|
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
;---------------------------------------------------------------------------
|
|
;
|
|
; P_FixPt
|
|
;
|
|
; i/o=(vert:a, horiz:x), in=(Q_Mask:y)
|
|
; i.e. (Q_Point:ax)
|
|
;
|
|
; Converts a document Q_Point to a window-local Q_Point.
|
|
; If currently in FullPageMode, Q_Point is mapped accordingly.
|
|
; If Y register is non-zero, Q_Point is masked to an even pixel.
|
|
; Presumably, masking to even pixel is never desired in FullPageMode
|
|
;
|
|
|
|
P_FixPt PROC EXPORT
|
|
;Using P_Data
|
|
|
|
movelong ax,ThePt
|
|
|
|
phy
|
|
|
|
lda P_PageMode
|
|
beq DontMap
|
|
|
|
tool _MapPt,in=(#ThePt:l,#P_PaperRect:l,#P_FullPaperRect:l)
|
|
movelong ThePt,ax
|
|
|
|
ply
|
|
|
|
bra exit
|
|
|
|
DontMap lda ThePt+2
|
|
subword a,P_H,a
|
|
addword a,P_ContentRect+2,x
|
|
|
|
lda ThePt
|
|
subword a,P_V,a
|
|
addword a,P_ContentRect,a
|
|
|
|
|
|
DidMap ply
|
|
beq exit
|
|
|
|
pha
|
|
txa
|
|
and #$FFFE
|
|
tax
|
|
pla
|
|
|
|
exit rtl
|
|
|
|
ThePt DS.B 4
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
|
|
;------------------------------------------------------------------------------
|
|
;
|
|
; P_FixRect (RectPtr:l; ObjType:w; Map:w; Offset:w)
|
|
;
|
|
|
|
P_FixRect PROC EXPORT
|
|
;Using P_Data
|
|
;Using P_ObjData
|
|
|
|
INPUT RectPtr:l,ObjType:w,Map:w,Offset:w
|
|
BEGIN
|
|
|
|
lda ObjType
|
|
cmp #P_LINE
|
|
beq DoLine
|
|
cmp #P_STRLINE
|
|
beq DoLine
|
|
call P_ValidRect,in=(RectPtr:l),out=(a:w)
|
|
bra DoMap
|
|
|
|
DoLine
|
|
cmpw [RectPtr],[RectPtr]:#4
|
|
blt DoMap
|
|
pushlong [RectPtr]
|
|
movelong [RectPtr]:#4,[RectPtr]
|
|
pulllong [RectPtr]:#4
|
|
|
|
|
|
DoMap lda Map
|
|
beq NoMap
|
|
tool _MapRect,in=(RectPtr:l,#P_PageRect:l,#P_FullPageRect:l)
|
|
ldy #2
|
|
lda [RectPtr],y
|
|
and #$FFFE
|
|
sta [RectPtr],y
|
|
ldy #6
|
|
lda [RectPtr],y
|
|
and #$FFFE
|
|
sta [RectPtr],y
|
|
bra NoOffset
|
|
NoMap
|
|
|
|
|
|
lda Offset
|
|
beq NoOffset
|
|
pushlong RectPtr
|
|
subword P_ContentRect+2,P_H,s
|
|
subword P_ContentRect,P_V,s
|
|
_OffsetRect
|
|
NoOffset
|
|
|
|
|
|
Exit RETURN
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
;---------------------------------------------------------------------------
|
|
;
|
|
; P_UnMapPt ()
|
|
;
|
|
; Converts a Q_Point from window coordinates to document
|
|
|
|
P_UnmapPt PROC EXPORT
|
|
|
|
BEGIN
|
|
|
|
RETURN
|
|
ENDP
|
|
|
|
|
|
;---------------------------------------------------------------------------
|
|
;
|
|
; Local2TextObj
|
|
;
|
|
|
|
Local2TextObj PROC EXPORT
|
|
;Using P_ObjData
|
|
;Using P_Data
|
|
;Using T_Data
|
|
;Using T_TextEqu
|
|
|
|
input pt:l
|
|
output newpt:l
|
|
local hdl:l,ptr:l
|
|
begin
|
|
|
|
movelong T_DotObj,Hdl
|
|
movelong [hdl],ptr
|
|
|
|
subword pt,[ptr]:#P_TRect,a
|
|
addword a,P_V,a
|
|
subword a,P_ContentRect,newpt
|
|
|
|
subword pt+2,[ptr]:#P_TRect+2,a
|
|
addword a,P_H,a
|
|
subword a,P_ContentRect+2,a
|
|
and #$FFFE
|
|
sta newpt+2
|
|
|
|
|
|
RETURN
|
|
ENDP
|
|
|
|
|
|
|
|
;---------------------------------------------------------------------------
|
|
;
|
|
; TextObj2Local
|
|
;
|
|
|
|
TextObj2Local PROC EXPORT
|
|
;Using P_ObjData
|
|
;Using P_Data
|
|
;Using T_Data
|
|
;Using T_TextEqu
|
|
|
|
input pt:l
|
|
output newpt:l
|
|
local hdl:l,ptr:l
|
|
begin
|
|
|
|
movelong T_DotObj,hdl
|
|
movelong [hdl],ptr
|
|
|
|
addword pt,[ptr]:#P_TRect,a
|
|
subword a,P_V,a
|
|
addword a,P_ContentRect,newpt
|
|
|
|
addword pt+2,[ptr]:#P_TRect+2,a
|
|
subword a,P_H,a
|
|
addword a,P_ContentRect+2,a
|
|
and #$FFFE
|
|
sta newpt+2
|
|
|
|
RETURN
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
|
|
;---------------------------------------------------------------------------
|
|
;
|
|
; P_RoundGuide (amt:w,vert:w):w
|
|
;
|
|
|
|
P_RoundGuide PROC EXPORT
|
|
;Using P_Data
|
|
;Using P_RulerData
|
|
|
|
input amt:w,vert:w
|
|
output newamt:w
|
|
local hdl:l,ppi:l,quo:w,rem:w,tmp:l,dist:w
|
|
|
|
begin
|
|
|
|
movelong P_PrintHand,hdl
|
|
movelong [hdl],tmp
|
|
movelong [tmp]:#4,ppi
|
|
moveword #P_MIN_VPIX,dist
|
|
|
|
lda vert
|
|
beq DidVert
|
|
moveword ppi+2,ppi
|
|
moveword #P_MIN_HPIX,dist
|
|
DidVert
|
|
|
|
tool _UDivide,in=(amt:w,ppi:w),out=(tmp:w,amt:w)
|
|
|
|
ldx #0
|
|
lda ppi
|
|
Loop cmp dist
|
|
blt DoShift
|
|
lsr a
|
|
inx
|
|
bra loop
|
|
|
|
DoShift dex
|
|
stx dist
|
|
|
|
rcall P_LShift,in=(tmp:a),out=(tmp:a)
|
|
tool _UDivide,in=(tmp:w,ppi:w),out=(rem:w,quo:w)
|
|
rcall P_LShift,in=(#1:a,dist:x),out=(dist:a)
|
|
|
|
moveword ppi,tmp+2
|
|
lsr tmp+2
|
|
|
|
cmpw rem,tmp+2
|
|
blt DidDiv
|
|
inc quo
|
|
|
|
|
|
DidDiv rcall D_FastMult,in=(ppi:x,quo:y)
|
|
tool _UDivide,in=(a:w,dist:w),out=(a:w,quo:w)
|
|
|
|
rcall D_FastMult,in=(ppi:x,amt:y)
|
|
addword a,quo,newamt
|
|
|
|
return
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
;------------------------------------------------------------------------------
|
|
;
|
|
; P_MagValue (OldValue:w; Vert:w) : NewValue:w
|
|
;
|
|
|
|
P_MagValue PROC EXPORT
|
|
;Using P_Data
|
|
|
|
INPUT OldValue:w,Vert:w
|
|
OUTPUT NewValue:w
|
|
|
|
BEGIN
|
|
|
|
lda Vert
|
|
beq Horiz
|
|
|
|
in P_AllHGuides:l,P_AllHGCount:w,OldValue:w,#4:w,#-1:w
|
|
out a:w,NewValue:w,a:w
|
|
xcall P_FindGuide
|
|
bra Exit
|
|
|
|
Horiz in P_AllVGuides:l,P_AllVGCount:w,OldValue:w,#8:w,#-1:w
|
|
out a:w,NewValue:w,a:w
|
|
xcall P_FindGuide
|
|
|
|
Exit RETURN
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
;-----------------------------------------------------------------------------
|
|
;
|
|
; P_MagPt (PtPtr1:l,Pt_Ptr2:w,Figure:w)
|
|
;
|
|
|
|
P_MagPt PROC EXPORT
|
|
;Using P_Data
|
|
|
|
INPUT PtPtr:l,AncPtPtr:l,Figure:w
|
|
|
|
BEGIN
|
|
|
|
lda P_MagGuides
|
|
beq Exit
|
|
lda Figure
|
|
beq Exit
|
|
|
|
call P_MagValue,in=([PtPtr]:w,#1:w),out=([PtPtr]:w)
|
|
call P_MagValue,in=([PtPtr]:#2:w,#0:w),out=([PtPtr]:#2:w)
|
|
|
|
cmpw [AncPtPtr],[PtPtr]
|
|
bge TryHoriz
|
|
|
|
lda [PtPtr]
|
|
ina
|
|
sta [PtPtr]
|
|
|
|
TryHoriz ldy #2
|
|
cmpw [AncPtPtr]:y,[PtPtr]:y
|
|
bge Exit
|
|
|
|
lda [PtPtr],y
|
|
ina
|
|
sta [PtPtr],y
|
|
|
|
Exit RETURN
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------
|
|
;
|
|
; P_MagMove (RectPtr:l)
|
|
;
|
|
; If magnetic guides are turned on, this routine will bump the rectangle.
|
|
|
|
P_MagMove PROC EXPORT
|
|
;Using P_Data
|
|
|
|
INPUT RectPtr:l
|
|
LOCAL Q_Rect:r,NewValue:l,VDiff:w,HDiff:w
|
|
|
|
BEGIN
|
|
|
|
lda P_MagGuides
|
|
jeq Exit
|
|
|
|
moverect [RectPtr],Q_Rect
|
|
|
|
call P_MagValue,in=(Q_Rect:w,#1:w),out=(NewValue:w)
|
|
cmp Q_Rect
|
|
beq TryBottom
|
|
|
|
subword a,Q_Rect,VDiff
|
|
moveword NewValue,Q_Rect
|
|
addword Q_Rect+4,VDiff,Q_Rect+4
|
|
bra DoHoriz
|
|
|
|
TryBottom
|
|
call P_MagValue,in=(Q_Rect+4:w,#1:w),out=(:w)
|
|
pla ;
|
|
ina ;
|
|
sta NewValue ;
|
|
cmp Q_Rect+4
|
|
beq DoHoriz
|
|
|
|
subword a,Q_Rect+4,VDiff
|
|
moveword NewValue,Q_Rect+4
|
|
addword Q_Rect,VDiff,Q_Rect
|
|
|
|
|
|
DoHoriz
|
|
call P_MagValue,in=(Q_Rect+2:w,#0:w),out=(NewValue:w)
|
|
cmp Q_Rect+2
|
|
beq TryRight
|
|
|
|
subword a,Q_Rect+2,HDiff
|
|
moveword NewValue,Q_Rect+2
|
|
addword Q_Rect+6,HDiff,Q_Rect+6
|
|
bra SetIt
|
|
|
|
TryRight call P_MagValue,in=(Q_Rect+6:w,#0:w),out=(:w)
|
|
pla ;
|
|
ina ;
|
|
ina ;
|
|
sta NewValue ;
|
|
cmp Q_Rect+6
|
|
beq SetIt
|
|
|
|
subword a,Q_Rect+6,HDiff
|
|
moveword NewValue,Q_Rect+6
|
|
addword Q_Rect+2,HDiff,Q_Rect+2
|
|
|
|
SetIt moverect Q_Rect,[RectPtr]
|
|
|
|
Exit RETURN
|
|
ENDP
|
|
|
|
|
|
|
|
|
|
;-----------------------------------------------------------------------------
|
|
;
|
|
; P_SetSpecStr (ObjPtr:l)
|
|
;
|
|
; Sets P_SpecStr to the correct Q_Text for either a page or date object and
|
|
; sets the current font.
|
|
|
|
P_SetSpecStr PROC EXPORT
|
|
;Using P_Data
|
|
;Using P_ObjData
|
|
|
|
INPUT ObjPtr:l,ForBounds:w
|
|
|
|
BEGIN
|
|
|
|
pushword [ObjPtr]:#P_ItemFontID
|
|
moveword [ObjPtr]:#P_ItemFontID+2,x
|
|
moveword [ObjPtr]:#P_ItemColor,y
|
|
pla
|
|
jsl D_SelectFont
|
|
|
|
cmpw [ObjPtr]:#P_Type,#P_DATETOOL
|
|
beq X_dodate
|
|
|
|
cmpw P_Page,#2
|
|
bge NotMaster
|
|
|
|
lda ForBounds
|
|
beq ShoveNumb
|
|
|
|
moveword #4,P_SpecStr
|
|
movelong #$35353535,P_SpecStr+1
|
|
bra Exit
|
|
|
|
ShoveNumb
|
|
moveword NumStr,P_SpecStr
|
|
bra Exit
|
|
|
|
NotMaster
|
|
addword P_Page,P_FirstPOff,a
|
|
tool _Int2Dec,in=(a:w,#P_SpecStr+1:l,#4:w,#0:w)
|
|
movebyte #4,P_SpecStr
|
|
bra Exit
|
|
|
|
X_dodate
|
|
call D_DateToStr,in=(P_CurDate:l,#P_SpecStr:l,#2:w,#0:w)
|
|
|
|
Exit RETURN
|
|
|
|
NumStr DC.B 1,35
|
|
|
|
ENDP
|
|
|
|
|
|
|
|
;----------------------------------------------------------------------------
|
|
;
|
|
; P_GetPageMode () : PageMode:a
|
|
;
|
|
; The bank must be set when calling this routine from another bank.
|
|
|
|
|
|
P_GetPageMode PROC EXPORT
|
|
;Using P_Data
|
|
|
|
lda P_PageMode
|
|
rtl
|
|
|
|
ENDP
|
|
END
|
|
|