mirror of
https://github.com/antoinevignau/source.git
synced 2025-02-08 04:30:38 +00:00
1 line
14 KiB
Plaintext
1 line
14 KiB
Plaintext
|
load 'macros.dump'
include 'driver.equ'
include 'scrap.equ'
IMPORT D_AlertBox
IMPORT X_BHand
IMPORT X_BOffset
IMPORT X_BRuler
IMPORT D_BeachBall
IMPORT X_CantImportStr
IMPORT D_CurCursor
IMPORT X_CurrentParRecord
IMPORT X_DisposeWPScrap
IMPORT D_GrowHandle
IMPORT D_GrowLHandle
IMPORT X_MakeStandardRuler
IMPORT X_MassageWPScrap
IMPORT D_Message1
IMPORT D_Message2
IMPORT D_MessageThere
IMPORT D_NeedHand
IMPORT D_NeedHandle
IMPORT X_OldCursor
IMPORT X_ParBlockSize
IMPORT X_RulerSize
IMPORT X_ScrStdRuler
IMPORT D_SetCursor
IMPORT X_ClipData
ENTRY X_DoMSGStoWPScrap
;************************************************************************
;
; X_MSGStoWPScrap
;
;************************************************************************
X_ScMSGStoWPScrap PROC EXPORT
;Using D_OpenData
;Using X_ClipData
input Src:l
local Sptr:l,Sstart:l,Send:l,Temp:l,Temp2:l
output Dest:l
error err
begin
lda #0
sta >D_MessageThere
sta >D_Message1
sta >D_Message1+2
sta >D_Message2
sta >D_Message2+2
MoveLong [Src],Sptr
MoveLong [Sptr]:#$18,Sstart
MoveLong [Sptr]:#$1c,Send
SpaceLong
PushLong Src
PushLong Sstart
PushLong Send
jsl X_DoMSGStoWPScrap
sta err
PullLong Dest
jcs exit
MoveLong [Dest],Temp2
Cmpw [Temp2],#2
bge notnull
MoveLong [Temp2]:#2,Temp
MoveLong [Temp],Temp2
Cmpw [Temp2]:#2,#13
bge notnull
SpaceWord
PushWord #OKBox
PushLong #X_CantImportStr
jsl D_AlertBox
pla
PushLong Dest
jsl X_DisposeWPScrap
MoveWord #-1,err
brl exit
notnull
MoveLong [Src],Sptr
MoveWord [Sptr]:#$1c,Sstart
MoveWord [Sptr]:#$20,Send
Cmpw Sstart,Send
jeq dofooter
Addwl #$20,Sstart
SpaceLong
PushLong Src
PushLong Sstart
PushLong Send
jsl X_DoMSGStoWPScrap
sta err
PullLong >D_Message1
bcc noerr
PushLong Dest
_DisposeHandle
lda #0
sta >D_Message1
sta >D_Message1+2
sta >D_MessageThere
brl exit
noerr MoveWord #1,>D_MessageThere
dofooter MoveWord [Sptr]:#$20,Sstart
MoveWord [Sptr]:#$24,Send
Cmpw Sstart,Send
jeq exit
Addwl #$20,Sstart
SpaceLong
PushLong Src
PushLong Sstart
PushLong Send
jsl X_DoMSGStoWPScrap
sta err
PullLong >D_Message2
bcc noerr2
PushLong Dest
_DisposeHandle
lda >D_Message1+2
pha
lda >D_Message1
pha
_DisposeHandle
lda #0
sta >D_MessageThere
sta >D_Message1
sta >D_Message1+2
sta >D_Message2
sta >D_Message2+2
bra exit
noerr2 MoveWord #1,>D_MessageThere
exit return
ENDP
X_DoMSGStoWPScrap PROC EXPORT
;Using X_WPScrapData
;Using X_MSGSOffsets
;Using X_SWScrapEquates
;Using X_ClipData
;Using X_WPFileData
;Using D_CursorData
input Src:l,Sstart:l,Send:l
local Sptr:l,Soff:l,Ssize:l
local Dptr:l,Block:l,Bptr:l,Bsize:w,Dsize:l
local Ruler:l,Rptr:l,RulerFlag:w,Bpars:w
local Offset:w,CurPar:l,RealDptr:l,Doff:l,CurParSize:w
output Dest:l
error err
begin
MoveWord >D_CurCursor,X_OldCursor
stz err
PushLong Src
_HLock
MoveLong [Src],Sptr
SubLong Send,Sstart,Ssize
AddLong Sptr,Sstart,Sptr
Cmpl Ssize,#$20
jeq blankdoc
SpaceLong
_MaxBlock
PullLong Dsize
SpaceLong
PushLong Dsize
PushWord #X_Locked
jsl D_NeedHandle
PullLong Dest
MoveLong #2,Doff
MoveLong #(X_ParBlockSize+2),Dsize
SpaceLong
PushLong Dsize
PushLong Dest
jsl D_GrowLHandle
PullLong RealDptr
AddLong RealDptr,#2,Dptr
lda #0
sta [RealDptr]
SpaceLong
PushLong #X_RulerSize
PushWord #X_Locked
jsl D_NeedHandle
PullLong Ruler
MoveLong [Ruler],Rptr
MoveLong Ruler,X_BRuler
SpaceLong
PushLong #X_Blocksize
PushWord #X_Locked
jsl D_NeedHandle
PullLong Block
MoveWord #4,Offset
MoveWord #4,X_BOffset
MoveLong [Block],Bptr
MoveWord #X_Blocksize,[Bptr]
MoveWord Offset,[Bptr]:#2
MoveLong Block,X_BHand
MoveWord #X_Geneva,>CurHeader
lda #0
sta >CurHeader+2
sta >CurHeader+4
shortm
sta >CurHeader+6
lda #12
sta >CurHeader+3
longm
PushLong #CurHeader
lda Bptr
clc
adc Offset
tax
lda Bptr+2
adc #0
pha
phx
PushLong #7
_BlockMove
AddLong Offset,#7,Offset
PushLong #X_CurrentParRecord
PushLong Dptr
PushLong #X_ParBlockSize
_BlockMove
stz Bpars
;Initialize ruler
jsl X_MakeStandardRuler
jsr Se
|