antoine-source/appleworksgs/IW.CL/Src/hld.asm

1 line
144 KiB
NASM
Raw Normal View History

2023-03-04 02:45:20 +00:00
* high level * NOTE: All vector entries (PrOpenPage, etc...) get their data bank passed in A. * This means that they can phd, tcd correctly. Be careful what you do * at the beginning of one of these routines! <EFBFBD><EFBFBD>MSL ; DynamicExits ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ ; ; Dynamic Exits ; ; ; Each dynamic exit takes 2 RTS and moves them some number of bytes up the ; stack. ; ;------------------------------------------------------------------------------ ;----------------------------------------------------------------------------- DynamicExits PROC EXPORT EXPORT exit20 exit20 tax lda 5,s sta 25,s lda 3,s sta 23,s lda 1,s sta 21,s tsc clc adc #20 tcs txa brl exit0 EXPORT Exit16 Exit16 tax lda 5,s sta 21,s lda 3,s sta 19,s lda 1,s sta 17,s tsc clc adc #16 tcs txa brl Exit0 EXPORT Exit14 Exit14 tax lda 5,s sta 19,s lda 3,s sta 17,s lda 1,s sta 15,s tsc clc adc #14 tcs txa brl Exit0 EXPORT Exit12 Exit12 tax lda 5,s sta 17,s lda 3,s sta 15,s lda 1,s sta 13,s tsc clc adc #12 tcs txa bra Exit0 EXPORT Exit10 Exit10 tax lda 5,s sta 15,s lda 3,s sta 13,s lda 1,s sta 11,s pla pla pla pla pla txa brl exit0 EXPORT Exit8 Exit8 tax lda 5,s sta 13,s lda 3,s sta 11,s lda 1,s sta 9,s pla pla pla pla txa brl Exit0 EXPORT Exit6 Exit6 tax lda 5,s sta 11,s lda 3,s sta 9,s lda 1,s sta 7,s pla pla pla txa brl Exit0 EXPORT Exit4 Exit4 tax lda 5,s sta 9,s lda 3,s sta 7,s lda 1,s sta 5,s pla pla txa brl Exit0 EXPORT Exit2 Exit2 tax lda 5,s sta 7,s lda 3,s sta 5,s lda 1,s sta 3,s pla txa EXPORT Exit0 Exit0 cmp #1 rtl ENDP ;----------------------------------------------------------- ; ; PortOffset ; ; This is the offset to fields in the grafport. ; DSECT 0 o_PortSCB WORD o_ImageRef LONG o_Width WORD o_BoundsRect BLOCK 8 o_PortRect BLOCK 8 o_ClipRgn LONG o_VisRgn LONG o_BkPat BLOCK 32 o_PnLoc BLOCK 4 o_PnSize BLOCK 4 o_PnMode WORD o_PnPat BLOCK 32 o_PnMask BLOCK 8 o_PnVis WORD EXPORT o_FontID EXPORT o_ChExtra o_Font LONG o_FontID LONG o_FontFlags WORD o_TxSize WORD o_TxFace WORD o_TxMode WORD o_SpExtra LONG o_ChExtra LONG o_FGColor WORD o_BGColor WORD o_PicSave LONG o_RgnSave LONG o_PolySave LONG o_GrafProcs LONG o_ArcRot WORD o_UserField LONG o_SysField LONG PortSize DSectSize ; ZP Equates ;------------------------------------------------------------------------------ ; ; Global and Zero Page Equates ; ;------------------------------------------------------------------------------ Temp1 equ 0 Temp values to dereference easily Temp2 equ temp1+4 4 hPicList equ temp2+4 a pPicList equ hPicList+4 e Ourport equ pPicList+4 12 hOurport equ OurPort+2 14 hNewPic equ hOurport+4 18 ourStatus equ hNewPic+4 1c hStatus equ ourStatus+2 1e hport equ hStatus+4 22 UserId equ hPort+4 26 hscreenport equ userId+2 28 pscreenport equ hscreenport+4 2c hprbuf equ pscreenport+4 30 pprbuf equ hprbuf+4 34 bandheight equ pprbuf+4 38 OldGraphProcs equ bandheight+2 3A PZ_PrStatus equ $C0 PZ_pPrPort equ PZ_PrStatus+4 PZ_hPrint equ PZ_pPrPort+4 TPrintsize equ 140 StatRecSize equ 28 oPrintDefault equ 0*5 oPrValidate equ 1*5 oPrStlDialog equ 2*5 oPrJ