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

1 line
8.5 KiB
Plaintext
Executable File

load 'macros.dump'
include 'driver.equ'
include 'scrap.equ'
import X_ScPLtoAsciiScrap
import X_ScWPtoAsciiScrap
import X_ScSStoAsciiScrap
import X_ScPLtoWPScrap
import X_ScImportAsciitoWPScrap
import X_ScAsciitoWPScrap
import X_ScAWDBtoDBScrap
import X_ScInitFieldScanner
import X_ScMSGStoWPScrap
import X_ScDBtoPICT
import X_ScDBtoPLScrap
import X_ScWPtoPLScrap
import X_ScSStoPLScrap
import X_ScImportAsciitoPLText
import X_ScAWSStoSSScrap
import X_ScDoAsciitoSSScrap
import X_ScImportAsciitoSSScrap
import X_ScLoad_Picture
import X_ScReadWPScrap
import X_ScWriteWPScrap
import X_ScWriteThread
import X_ScImportWP
import X_ScAWWPtoWPScrap
import X_ScDoAsciitoDBScrap
import X_ScImportAsciitoDBScrap
import D_LoadSegment
import D_UnloadSegment
import X_ScDoAsciitoPLText
;DOASCII segment
X_PLtoAsciiScrap PROC EXPORT
input Src:l
output Dest:l
error err
begin +b
call D_LoadSegment,in=(#segToAscii:w,#0:w),out=(ax:l),err=err
jcs @exit
call X_ScPLtoAsciiScrap,in=(Src:l),out=(Dest:l),err=err
call D_UnloadSegment,in=(#segToAscii:w,#0:w)
@exit return
ENDP
X_WPtoAsciiScrap PROC EXPORT
input Src:l
output Dest:l
error err
begin +b
call D_LoadSegment,in=(#segToAscii:w,#0:w),out=(ax:l),err=err
jcs @exit
call X_ScWPtoAsciiScrap,in=(Src:l),out=(Dest:l),err=err
call D_UnloadSegment,in=(#segToAscii:w,#0:w)
@exit return
ENDP
X_SStoAsciiScrap PROC EXPORT
input Src:l
output Dest:l
error err
begin +b
call D_LoadSegment,in=(#segToAscii:w,#0:w),out=(ax:l),err=err
jcs @exit
call X_ScSStoAsciiScrap,in=(Src:l),out=(Dest:l),err=err
call D_UnloadSegment,in=(#segToAscii:w,#0:w)
@exit return
ENDP
;TOWPTEXT segment
X_PLtoWPScrap PROC EXPORT
input Src:l
output Dest:l
error err
begin +b
call D_LoadSegment,in=(#segToWPScrap:w,#0:w),out=(ax:l),err=err
jcs @exit
call X_ScPLtoWPScrap,in=(Src:l),out=(Dest:l),err=err
call D_UnloadSegment,in=(#segToWPScrap:w,#0:w)
@exit return
ENDP
X_AsciitoWPScrap PROC EXPORT
input Src:l
output Dest:l
error err
begin +b
call D_LoadSegment,in=(#segToWPScrap:w,#0:w),out=(ax:l),err=err
jcs @exit
call X_ScAsciitoWPScrap,in=(Src:l),out=(Dest:l),err=err
call D_UnloadSegment,in=(#segToWPScrap:w,#0:w)
@exit return
ENDP
;IMPORTAWDB segment
X_AWDBtoDBScrap PROC EXPORT
input Src:l
output Dest:l
error err
begin +b
stz err
call D_LoadSegment,in=(#SegImportAWDB:w,#0:w),out=(ax:l),err=err
jcs @exit
call X_ScAWDBtoDBScrap,in=(Src:l),out=(Dest:l),err=err
call D_UnloadSegment,in=(#SegImportAWDB:w,#0:w)
@exit return
ENDP
;TODBSCRAP segment
X_DoAsciitoDBScrap PROC EXPORT
input Src:l,SepFlag:w,ScanFields:w
output Dest:l
error err
begin +b
stz err
call D_LoadSegment,in=(#segToDBScrap:w,#0:w),out=(ax:l),err=err
jcs @exit
call X_ScDoAsciitoDBScrap,in=(Src:l,SepFlag:w,ScanFields:w),out=(Dest:l),err=err
call D_UnloadSegment,in=(#segToDBScrap:w,#0:w)
@exit return
ENDP
X_ImportAsciitoDBScrap PROC EXPORT
input Src:l
output Dest:l
error err
begin +b
stz err
call D_LoadSegment,in=(#segToDBScrap:w,#0:w),out=(ax:l),err=err
jcs @exit
call X_ScImportAsciitoDBScrap,in=(Src:l),out=(Dest:l),err=err
call D_UnloadSegment,in=(#segToDBScrap:w,#0:w)
@exit return
ENDP
;IMPORTMSGS segment
X_MSGStoWPScrap PROC EXPORT
input Src:l
output Dest:l
error err
begin +b
call D_LoadSegment,in=(#segImportMSGS:w,#0:w),out=(ax:l),err=err
jcs @exit
call X_ScMSGStoWPScrap,in=(Src:l),Out=(Dest:l),err=err
call D_UnloadSegment,in=(#segImportMSGS:w,#0:w)
@exit return
ENDP
;TOPICT segment
X_DBtoPICT PROC EXPORT
input Src:l
output Dest:l
error err
begin +b
call D_LoadSegment,in=(#segTOPICT:w,#0:w),out=(ax:l),err=err
jcs @exit
call X_ScDBToPICT,in=(Src:l),out=(Dest:l),err=err
call D_UnloadSegment,in=(#segTOPICT:w,#0:w)
@exit return
ENDP
;TOSTATTEXT segment
X_DBtoPLScrap PROC EXPORT
input Src:l
output Dest:l
error err
begin +b
call D_LoadSegment,in=(#segTOSTATTEXT:w,#0:w),out=(ax:l),err=err
jcs @exit
call X_ScDBToPLScrap,in=(Src:l),out=(Dest:l),err=err
call D_UnloadSegment,in=(#segTOSTATTEXT:w,#0:w)
@exit return
ENDP
X_WPtoPLScrap PROC EXPORT
input Src:l
output Dest:l
error err
begin +b
call D_LoadSegment,in=(#segTOSTATTEXT:w,#0:w),out=(ax:l),err=err
jcs @exit
call X_ScWPtoPLScrap,in=(Src:l),out=(Dest:l),err=err
call D_UnloadSegment,in=(#segTOSTATTEXT:w,#0:w)
@exit return
ENDP
X_SStoPLScrap PROC EXPORT
input Src:l
output Dest:l
error err
begin +b
call D_LoadSegment,in=(#segTOSTATTEXT:w,#0:w),out=(ax:l),err=err
jcs @exit
call X_ScSStoPLScrap,in=(Src:l),out=(Dest:l),err=err
call D_UnloadSegment,in=(#segTOSTATTEXT:w,#0:w)
@exit return
ENDP
X_DoAsciitoPLText PROC EXPORT
input Src:l,FontID:l,Color:w
output Dest:l
error err
begin +b
call D_LoadSegment,in=(#segTOSTATTEXT:w,#0:w),out=(ax:l),err=err
jcs @exit
call X_ScDoAsciitoPLText,in=(Src:l,FontID:l,Color:w),out=(Dest:l),err=err
call D_UnloadSegment,in=(#segTOSTATTEXT:w,#0:w)
@exit return
ENDP
;IMPORTAWSS segment
X_AWSStoSSScrap PROC EXPORT
input Src:l
output Dest:l
error err
begin +b
call D_LoadSegment,in=(#segImportAWSS:w,#0:w),out=(ax:l),err=err
jcs @exit
call X_ScAWSStoSSScrap,in=(Src:l),out=(Dest:l),err=err
call D_UnloadSegment,in=(#segImportAWSS:w,#0:w)
@exit return
ENDP
;TOSSScrap segment
X_DoAsciitoSSScrap PROC EXPORT
input Src:l,SepFlag:w,ScanFields:w
output Dest:l
error err
begin +b
stz err
call D_LoadSegment,in=(#segToSSScrap:w,#0:w),out=(ax:l),err=err
jcs @exit
call X_ScDoAsciitoSSScrap,in=(Src:l,SepFlag:w,ScanFields:w),out=(Dest:l),err=err
call D_UnloadSegment,in=(#segToSSScrap:w,#0:w)
@exit return
ENDP
X_ImportAsciitoSSScrap PROC EXPORT
input Src:l
output Dest:l
error err
begin +b
stz err
call D_LoadSegment,in=(#segToSSScrap:w,#0:w),out=(ax:l),err=err
jcs @exit
call X_ScImportAsciitoSSScrap,in=(Src:l),out=(Dest:l),err=err
call D_UnloadSegment,in=(#segToSSScrap:w,#0:w)
@exit return
ENDP
;IMPORTPICT segment
X_Load_Picture PROC EXPORT
sta >TheA
txa
sta >TheX
tya
sta >TheY
input Src:l
output Dest:l
error err
begin +b
stz err
call D_LoadSegment,in=(#segImportPICT:w,#0:w),out=(ax:l),err=err
jcs @exit
SpaceLong
PushLong Src
lda TheA
ldx TheX
ldy TheY
jsl X_ScLoad_Picture
sta err
PullLong Dest ;I have to unload even if error
call D_UnloadSegment,in=(#segImportPICT:w,#0:w)
@exit return
TheA DS.W 1
TheX DS.W 1
TheY DS.W 1
ENDP
;WPIO segment - X_ReadWPScrap, X_WriteWPScrap, and X_WriteThread depend on the segment
;already being loaded.
X_ReadWPScrap PROC EXPORT
input FileRef:w,Type:w
output Scrap:l
error err
begin +b
call X_ScReadWPScrap,in=(FileRef:w,Type:w),out=(Scrap:l),err=err
return
ENDP
X_WriteWPScrap PROC EXPORT
input FileRef:w,Scrap:l,Type:w
error err
begin +b
call X_ScWriteWPScrap,in=(FileRef:w,Scrap:l,Type:w),err=err
return
ENDP
X_WriteThread PROC EXPORT
input FileRef:w,Pars:w,Scrap:l,Type:w
error err
begin +b
call X_ScWriteThread,in=(FileRef:w,Pars:w,Scrap:l,Type:w),err=err
return
ENDP
X_ImportWP PROC EXPORT
input FileRef:w
output Dest:l
error err
begin +b
stz err
call D_LoadSegment,in=(#segWPIO:w,#0:w),out=(ax:l),err=err
bcs @exit
call X_ScImportWP,in=(FileRef:w),out=(Dest:l),err=err
call D_UnloadSegment,in=(#segWPIO:w,#0:w)
@exit return
ENDP
;IMPORTAWWP segment
X_AWWPtoWPScrap PROC EXPORT
input Src:l
output Dest:l
error err
begin +b
call D_LoadSegment,in=(#segImportAWWP:w,#0:w),out=(ax:l),err=err
jcs @exit
call X_ScAWWPtoWPScrap,in=(Src:l),out=(Dest:l),err=err
call D_UnloadSegment,in=(#segImportAWWP:w,#0:w)
@exit return
ENDP
X_InitScrap PROC EXPORT
error err
begin
call D_LoadSegment,in=(#segToAscii:w,#0:w),out=(ax:l),err=err
jcs @exit
call D_UnloadSegment,in=(#segToAscii:w,#0:w)
call D_LoadSegment,in=(#segToWPScrap:w,#0:w),out=(ax:l),err=err
jcs @exit
call D_UnloadSegment,in=(#segToWPScrap:w,#0:w)
call D_LoadSegment,in=(#segToDBScrap:w,#0:w),out=(ax:l),err=err
jcs @exit
call D_UnloadSegment,in=(#segToDBScrap:w,#0:w)
call D_LoadSegment,in=(#segToPICT:w,#0:w),out=(ax:l),err=err
jcs @exit
call D_UnloadSegment,in=(#segToPICT:w,#0:w)
call D_LoadSegment,in=(#segToStatText:w,#0:w),out=(ax:l),err=err
jcs @exit
call D_UnloadSegment,in=(#segToStatText:w,#0:w)
call D_LoadSegment,in=(#segToSSScrap:w,#0:w),out=(ax:l),err=err
jcs @exit
call D_UnloadSegment,in=(#segToSSScrap:w,#0:w)
@exit return
ENDP
END