antoine-source/appleworksgs/Scrap/Src/imptxt.aii
2023-03-04 03:45:20 +01:00

1 line
4.0 KiB
Plaintext
Executable File

load 'macros.dump'
include 'driver.equ'
include 'scrap.equ'
IMPORT X_AWWPtoWPScrap
IMPORT D_Close
IMPORT X_ConvertScrap
IMPORT X_DisposeWPScrap
IMPORT X_ImportWP
IMPORT X_MSGStoWPScrap
IMPORT D_Mark
IMPORT D_MarkId
IMPORT D_Message1
IMPORT D_MessageThere
IMPORT D_NeedHandle
IMPORT D_Open
IMPORT D_OpenId
IMPORT D_OpenNamePtr
IMPORT D_Read
IMPORT D_ReadId
IMPORT D_ReadPtr
IMPORT D_ReadRequest
IMPORT D_ReadWord2
IMPORT D_SendMessage
IMPORT D_Set_Mark
IMPORT X_WPtoAsciiScrap
IMPORT X_WPtoPLScrap
import D_SetMark2
import D_Read2
X_ImportWPtoAscii PROC EXPORT
input FileRef:w
local Intermed:l
output Dest:l
error err
begin
SpaceLong
PushWord FileRef
jsl X_ImportWP
sta err
PullLong Intermed
jcs exit
SpaceLong
PushLong Intermed
jsl X_WPtoAsciiScrap
sta err
PullLong Dest
PushLong Intermed
jsl X_DisposeWPScrap
exit return
ENDP
X_ImportWPtoPLText PROC EXPORT
input FileRef:w
local Intermed:l
output Dest:l
error err
begin
SpaceLong
PushWord FileRef
jsl X_ImportWP
sta err
PullLong Intermed
jcs exit
; SpaceLong
; PushLong Intermed
; jsl X_WPtoAsciiScrap
; sta err
; PullLong Dest
SpaceLong
PushWord #WPText
PushLong Intermed
PushWord #StaticText
jsl X_ConvertScrap
sta err
PullLong Dest
PushLong Intermed
jsl X_DisposeWPScrap
exit return
ENDP
X_ImportAscii PROC EXPORT
input Src:l
output Dest:l
error err
begin
MoveLong Src,Dest
MoveWord #4,err
return
ENDP
X_ImportMSGStoAscii PROC EXPORT
input Src:l
local Intermed:l
output Dest:l
error err
begin
SpaceLong
PushLong Src
jsl X_MSGStoWPScrap
sta err
PullLong Intermed
jcs exit
SpaceLong
PushLong Intermed
jsl X_WPtoAsciiScrap
sta err
PullLong Dest
PushLong Intermed
jsl X_DisposeWPScrap
exit return
ENDP
X_ImportMSGStoPLText PROC EXPORT
input Src:l
local Intermed:l
output Dest:l
error err
begin
SpaceLong
PushLong Src
jsl X_MSGStoWPScrap
sta err
PullLong Intermed
jcs exit
SpaceLong
PushLong Intermed
jsl X_WPtoPLScrap
sta err
PullLong Dest
PushLong Intermed
jsl X_DisposeWPScrap
exit return
ENDP
X_ImportAWWPtoAscii PROC EXPORT
input Src:l
local Intermed:l
output Dest:l
error err
begin
SpaceLong
PushLong Src
jsl X_AWWPtoWPScrap
sta err
PullLong Intermed
jcs exit
SpaceLong
PushLong Intermed
jsl X_WPtoAsciiScrap
sta err
PullLong Dest
PushLong Intermed
jsl X_DisposeWPScrap
exit return
ENDP
X_ImportAWWPtoPLText PROC EXPORT
input Src:l
local Intermed:l
output Dest:l
error err
begin
SpaceLong
PushLong Src
jsl X_AWWPtoWPScrap
sta err
PullLong Intermed
jcs exit
SpaceLong
PushLong Intermed
jsl X_WPtoPLScrap
sta err
PullLong Dest
PushLong Intermed
jsl X_DisposeWPScrap
exit return
ENDP
X_ImportGRScrap PROC EXPORT
;Using D_IOData
;Using X_WPFileData
;Using D_OpenData
input FileRef:w
local Total:l,Size:l,ColorHand:l
output Dest:l
error err
begin +b
stz err
Stzl Total
; Skip past version number
call D_ReadWord2,in=(FileRef:w),out=(a:w),err=err
jcs exit
; Get size of header
call D_ReadWord2,in=(FileRef:w),out=(Size:w),err=err
jcs exit
MoveLong #4,Total
; Get size of reference record
call D_ReadWord2,in=(FileRef:w),out=(Size:w),err=err
jcs exit
Addwl #2,Total
Addwl Size,Total
; Skip past it
call D_SetMark2,in=(FileRef:w,#0:w,Total:l)
; Get size of color table
call D_ReadWord2,in=(FileRef:w),out=(Size:w),err=err
jcs exit
Addwl #2,Total
Addwl Size,Total
SpaceLong
PushWord #0
PushWord Size
PushWord #$4000
jsl D_NeedHandle
sta err
PullLong ColorHand
jcs exit
MoveLong ColorHand,>D_Message1
MoveWord #3,>D_MessageThere
call D_Read2,in=(FileRef:w,[ColorHand]:l,#0:w,Size:w),out=ax:l,err=err
jcs exit
; Skip past print record
call D_ReadWord2,in=(FileRef:w),out=(Size:w),err=err
jcs exit
Addwl #2,Total
Addwl Size,Total
call D_SetMark2,in=(FileRef:w,#0:w,Total:l),err=err
jcs exit
; Ask graphics for a scrap from this file
SpaceLong
PushWord #5
PushWord #$0500
PushWord #0
PushWord FileRef
jsl D_SendMessage
sta err
PullLong Dest
exit
return
ENDP
END