1 line
14 KiB
Plaintext
Raw Normal View History

2023-03-04 03:45:20 +01:00
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