First release

This commit is contained in:
Antoine Vignau 2023-03-04 03:45:20 +01:00
parent 25de611f19
commit 5fef614692
283 changed files with 276 additions and 0 deletions

BIN
.DS_Store vendored

Binary file not shown.

BIN
appleworksgs/Heap/.DS_Store vendored Normal file

Binary file not shown.

1
appleworksgs/Heap/Heap.aii.i Executable file
View File

@ -0,0 +1 @@
; ; Heap.aii.i ; ; Imports and macros for the Heap. ; ; Copyright © 1989, Claris Corporation ; ; 5/3/89 Kevin A. Watts from older H_Heap.aii.i and H_Block.aii.i ; ;---------------------------------------------------------------- IF &Type('&__FILE__') = 'UNDEFINED' THEN gblc &__FILE__ &__FILE__ setc '' ENDIF H_TOO_OLD equ -1 H_TOO_NEW equ -2 H_BAD equ -3 IF &__FILE__ ­ 'Heap' THEN IMPORT H_Init IMPORT H_CurrentHeap IMPORT H_SetHeap IMPORT H_UnsetHeap IMPORT H_ResetHeap IMPORT H_NewHeap IMPORT H_DisposeHeap IMPORT H_ReadHeap IMPORT H_WriteHeap ENDIF IF &__FILE__ ­ 'Block' THEN IMPORT H_NewBlock IMPORT H_DisposeBlock IMPORT H_ResizeBlock IMPORT H_CopyBlock IMPORT H_GetBlockPtr IMPORT H_GetBlockSize IMPORT H_TruncHeap ENDIF ;---------------------------------------------------------------- IF &__FILE__ ­ 'Heap' AND &__FILE__ ­ 'Block' THEN MACRO H_Init ; H_Init jsl H_Init ENDM MACRO ; H_SetHeap H_SetHeap &Heap IF &Heap='' THEN AERROR 'Bad usage of: H_SetHeap HeapID' ENDIF MoveLong &Heap,xy jsl H_SetHeap ENDM MACRO ; H_UnsetHeap H_UnsetHeap jsl H_UnsetHeap ENDM MACRO ; H_ResetHeap H_ResetHeap jsl H_ResetHeap ENDM MACRO ; H_NewHeap H_NewHeap &Heap,&err== IF &Heap='' THEN AERROR 'Bad usage of: H_NewHeap HeapID [,err=]' ENDIF jsl H_NewHeap IF &err­'' THEN sty &err ENDIF MoveLong ax,&Heap ENDM MACRO ; H_DisposeHeap H_DisposeHeap jsl H_DisposeHeap ENDM MACRO ; H_WriteHeap H_WriteHeap &FileID,&err== IF &FileID='' THEN AERROR 'Bad usage of: H_WriteHeap FileID [,err=]' ENDIF MoveWord &FileID,x jsl H_WriteHeap IF &err­'' THEN sty &err ENDIF ENDM MACRO ; H_ReadHeap H_ReadHeap &FileID,&Heap,&err== IF &Heap='' OR &FileID='' THEN AERROR 'Bad usage of: H_ReadHeap FileID, HeapID [,err=]' ENDIF MoveWord &FileID,x jsl H_ReadHeap IF &err­'' THEN sty &err ENDIF MoveLong ax,&Heap ENDM MACRO ; H_NewBlock H_NewBlock &Size,&Index,&Ptr,&err== IF &Size='' OR &Index='' THEN AERROR 'Bad usage of: H_NewBlock Size, Index [,Ptr] [,err=]' ENDIF SpaceLong MoveLong &Size,xy jsl H_NewBlock IF &err­'' THEN sty &err ENDIF IF &Index='ax' OR &Index='ay' THEN AERROR 'Bad usage of H_NewBlock: Index may not be ax or ay' ENDIF MoveLong ax,&Index IF &Ptr='' THEN pla pla ELSE PullLong &Ptr ENDIF ENDM MACRO ; H_DisposeBlock H_DisposeBlock &Index IF &Index='' THEN AERROR 'Bad usage of: H_DisposeBlock Index' ENDIF MoveLong &Index,xy jsl H_DisposeBlock ENDM MACRO ; H_ResizeBlock H_ResizeBlock &Index,&Size,&Ptr,&err== IF &Index='' OR &Size='' THEN AERROR 'Bad usage of: H_ResizeBlock Index, Size [,Ptr] [,err=]' ENDIF PushLong &Index MoveLong &Size,xy jsl H_ResizeBlock IF &err­'' THEN sty &err ENDIF IF &Ptr­'' THEN MoveLong ax,&Ptr ENDIF ENDM MACRO ; H_CopyBlock H_CopyBlock &Index,&NewIndex,&NewPtr,&err== IF &Index='' OR &NewIndex='' THEN AERROR 'Bad usage of: H_CopyBlock Index, NewIndex [,NewPtr] [,err=]' ENDIF SpaceLong MoveLong &Index,xy jsl H_CopyBlock IF &err­'' THEN sty &err ENDIF IF &NewIndex='ax' OR &NewIndex='ay' THEN AERROR 'Bad usage of H_CopyBlock: NewIndex may not be ax or ay' ENDIF MoveLong ax,&NewIndex IF &NewPtr='' THEN pla pla ELSE PullLong &NewPtr ENDIF ENDM MACRO ; H_GetBlockPtr H_GetBlockPtr &Index,&Ptr IF &Index='' OR &Ptr='' THEN AERROR 'Bad usage of: H_GetBlockPtr Index, Ptr' ENDIF MoveLong &Index,xy jsl H_GetBlockPtr MoveLong ax,&Ptr ENDM MACRO ; H_GetBlockSize H_GetBlockSize &Index,&Size IF &Index='' OR &Size='' THEN AERROR 'Bad usage of: H_GetBlockSize Index, Size' ENDIF MoveLong &Index,xy jsl H_GetBlockSize MoveLong ax,&Size ENDM MACRO ; H_TruncHeap H_TruncHeap jsl H_TruncHeap ENDM ENDIF

1
appleworksgs/Heap/Heap.equ Executable file
View File

@ -0,0 +1 @@
; ; Heap.equ ; ; Heap memory managment module equates ; ; Copyright © 1989 Claris Corporation ; ; 1-25-89 Begun by Kevin A. Watts ; ;-------------------------------------------------------------- H_MAX_FREE_LIST equ 64 ; maximum data size of blocks in free lists H_BLOCK_GRAN equ 2 ; must be a power of 2 H_N_FREE_LISTS equ (H_MAX_FREE_LIST/H_BLOCK_GRAN+1) H_HeaderRec RECORD 0 ; Structure of a heap header block Header DS.L 1 ; handle to the header block Version DS.L 1 ; heap version # (at offset 4 for compatability) HeaderPtr DS.L 1 ; pointer to the header block NumISegments DS.W 1 ; # of index segments NumDSegments DS.W 1 ; # of data segments FreeIndex DS.L 1 ; index free list head EndIndex DS.W 1 ; offset to never used portion of newest index segment ZHEADER_SHORT_SIZE equ * FreeListArray DS.L 1 ; = HeaderPtr + FreeLists ISegHandleLo DS.L 1 ; = HeaderPtr + ISegHandle ISegHandleHi DS.L 1 ; = HeaderPtr + ISegHandle+2 DSegHandleLo DS.L 1 ; = HeaderPtr + DSegHandle DSegHandleHi DS.L 1 ; = HeaderPtr + DSegHandle+2 ISegPtrLo DS.L 1 ; = HeaderPtr + ISegPtr ISegPtrHi DS.L 1 ; = HeaderPtr + ISegPtr+2 DSegPtrLo DS.L 1 ; = HeaderPtr + DSegPtr DSegPtrHi DS.L 1 ; = HeaderPtr + DSegPtr+2 ZHEADER_SIZE equ * FreeLists DS.W H_N_FREE_LISTS ; free list heads for each block size (segment #s) HANDLE_ARRAY equ * ;Array of index segment handles DS.L H_MaxSegments ;Array of index segment pointers DS.L H_MaxSegments ;Array of data segment handles DS.L H_MaxSegments ;Array of data segment pointers DS.L H_MaxSegments ENDR ; H_HeaderRec ;------------ H_VariablesRec RECORD H_HeaderRec.ZHEADER_SIZE ; Heap variables ; 'Globals' - maintain value across heap calls H_ZPptr DS.L 1 ; Pointer to zero page H_IsLocked DS.W 1 ; Flag - is current heap locked? H_MaxSegments DS.W 1 ; Maximum number each of index & data segments H_HeaderSize DS.W 1 ; Size of heap header H_DSegHOffsetLo DS.W 1 ; Offset to array of handles to data segments H_DSegHOffsetHi DS.W 1 ; " + 2 H_ISegPOffsetLo DS.W 1 ; Offset to array of pointers to index segments H_ISegPOffsetHi DS.W 1 ; " + 2 H_DSegPOffsetLo DS.W 1 ; Offset to array of pointers to data segments H_DSegPOffsetHi DS.W 1 ; " + 2 ; 'Locals' - not assumed to maintain value across heap calls BlockSize DS.W 1 ; = DataSize + H_BLOCK_OVERHEAD CopyHdr DS.W 1 ; Flag to control header copying DP DS.W 1 ; place to store save direct page value DataSize DS.L 1 ; size of data block EndPtr DS.L 1 ; Pointer to end of used portion of index table ErrorFlag DS.W 1 FreeListOffset DS.W 1 ; Offset into an array of free lists HasMoved DS.W 1 ; Flag - has heap header moved? Index DS.L 1 ; an index ISegPtr DS.L 1 ; pointer to an index segment SkipLastResort DS.W 1 ; Flag - skip last resort allocation? MaxFreeSeg DS.W 1 ; segment with most free space MaxFreeSpace DS.W 1 ; free space in MaxFreeSeg NewHeap DS.L 1 ; handle of heap to set Offset DS.W 1 ; block offset within a segment OldIndex DS.L 1 ; an index OldPtr DS.L 1 ; a pointer OldSize DS.L 1 ; size of data block Ptr DS.L 1 ; generic ptr (usually to a data block) SegHandle DS.L 1 ; handle of a data segment Segment DS.W 1 ; a segment number SegPtr DS.L 1 ; pointer to a data segment SegSize DS.W 1 ; segment size VARIABLE_SPACE equ * ; total size of variables ENDR ; H_Globals ---------------------- ;------------ H_ZPSIZE equ H_HeaderRec.ZHEADER_SIZE+H_VariablesRec.VARIABLE_SPACE-H_VariablesRec H_ZPATTR equ attrBank+attrFixed+attrLocked+attrPage IMPORT D_ZeroBlock

1
appleworksgs/Heap/Heap.link Executable file
View File

@ -0,0 +1 @@
-lseg{Kind} HEAP Source:AWGS:Heap:Obj:Heap.aii.o Source:AWGS:Heap:Obj:Block.aii.o

1
appleworksgs/Heap/Heap.make Executable file
View File

@ -0,0 +1 @@
# # Heap.make - Makefile for Heap # # Copyright © 1989, Claris Corporation. # # This is a sub-makefile, called recursively when ::AppleWorks.make is # executed. # # All modules (including Driver, Scrap, Pict, SS, DB, etc.) # should have similar makefiles in their respective folders. # # This makefile rebuilds the module object files as necessary and creates a # file containing the necessary steps to link the module with the rest of # AppleWorksGS. ::AppleWorks.make combines the link files from the modules # into a script which it executes to create an executable. #-------------------------------------------------------------------------------- # Variables AsmIIGSOptions = -i {HeapIncDir},{AWGS}Driver,{AWGS}Macros ¶ -d ErrorCheck=0,Verbose=0,VerboseErrors=0,Debug=0,Profile=0 ¶ -d DriverSupport=1,HeapIO=3,Squeezing=1,GrowBlocks=1 ¶ -d VariableDSegSize=1,VariableISegSize=0,UseLastResort=0 ¶ -d ZeroInit=1,ReadV70=1 Segment = HEAP Module = Heap ModuleDir = {AWGS}{Module}: HeapSrcDir = {AWGS}Heap:Src: HeapIncDir = {AWGS}Heap: HeapObjDir = {AWGS}Heap:Obj: Linkfile = {ModuleDir}{Module}.link Makefile = {ModuleDir}{Module}.make HeapIncludes = {HeapIncDir}Heap.equ ¶ {HeapSrcDir}HeapPrivate.equ ¶ {HeapSrcDir}Heap.mac ¶ {HeapIncDir}Heap.aii.i GlobalMacros = {AWGS}Macros:Macros.Dump ¶ {AWGS}Macros:m16.profile Objs = {HeapObjs} HeapObjs = {HeapObjDir}Heap.aii.o ¶ {HeapObjDir}Block.aii.o ¶ # {HeapObjDir}X_Heap.aii.o # temporary glue routines #-------------------------------------------------------------------------------- # Main target {Linkfile} ÄÄ {Objs} {Makefile} @echo "# Creating {LinkFile} ¶É" @echo " -lseg¶{Kind¶} {Segment} {Objs} ¶¶" > {Targ} # Global heap dependencies {HeapObjs} Ä {HeapIncludes} {GlobalMacros} {Makefile} clean Ä @confirm "Delete {Module} objs and linkfile?" @if {status} == 0 then delete {Linkfile} {Objs} @end #-------------------------------------------------------------------------------- # Default rules .aii.o Ä .aii AsmIIGS {DepDir}{Default}.aii -o {TargDir}{Default}.aii.o {AsmIIGSOptions} {HeapObjDir} Ä {HeapSrcDir}

File diff suppressed because one or more lines are too long

1
appleworksgs/Heap/Src/Heap.aii Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/Heap/Src/Heap.mac Executable file
View File

@ -0,0 +1 @@
; ; Heap.mac - Heap macros ; ; Copyright © 1989, Claris Corporation ; ; 1-13-89 Kevin A. Watts ; 1-17-89 kaw - added Deref ; BeginZ - prologue for use with Zero Page MACRO BeginZ phd lda #0 ; Replace with the address of the zero page tcd ENDM ; ReturnZ - epilog for use with Zero Page MACRO ReturnZ pld rtl ENDM ; DefineZ - modify routine using BeginZ prologue. ; Zero page address must be in accumulator, and data bank must equal code bank MACRO DefineZ &routine sta &routine+2 ENDM ; Deref Ptr - equivalent to "MoveLong [Ptr],Ptr", but this one works. ; Ptr should be a direct page variable ; Regs: a, x, y ; Side-effect: leaves Ptr in ax MACRO Deref &Ptr ldy #2 lda [&Ptr],y tax lda [&Ptr] sta &Ptr stx &Ptr+2 ENDM ; DivByPwr2 Var,Divisor - divide Var by Divisor, ; - where Divisor is a power of 2 MACRO DivByPwr2 &Var,&Divisor LCLA &count &count: SETA &eval( &Divisor ) WHILE &count > 1 DO lsr &Var &count: SETA &count/2 ENDWHILE ENDM ; MulByPwr2 Var,Multiplier - multiply Var by Multiplier, ; - where Multiplier is a power of 2 MACRO MulByPwr2 &Var,&Multiplier LCLA &count &count: SETA &eval( &Multiplier ) WHILE &count > 1 DO asl &Var &count: SETA &count/2 ENDWHILE ENDM

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
appleworksgs/Heap/X_Heap.aii.i Executable file
View File

@ -0,0 +1 @@
; ; X_Heap.aii.i ; ; Imports from X_Heap.aii ; ; Copyright © 1989, Claris Corporation ; ; Tuesday, January 31, 1989 6:17:13 PM ; IMPORT X_NewHeap IMPORT X_DisposeHeap IMPORT X_NeedSpace IMPORT X_NewBlock IMPORT X_DisposeBlock IMPORT X_GetBlockSize IMPORT X_GetBlockPtr IMPORT X_ResizeBlock IMPORT X_WriteHeap IMPORT X_ReadHeap IMPORT X_TruncHeap IMPORT X_CopyIndex

BIN
appleworksgs/IW.CL/.DS_Store vendored Normal file

Binary file not shown.

1
appleworksgs/IW.CL/IWCL.make Executable file
View File

@ -0,0 +1 @@
# # IWCL.make - Makefile for the ImageWriter CL driver # # Copyright © 1989, Claris Corporation. # # This makefile only assembles IWCL code. It is NOT intended to be used # as a sub-build to ::AppleWorks.make. # # To build LQ driver instead of regular driver, change the "-d lq=0" to # "-d lq=1" and change Program to "ImageWriter.CLQ" #-------------------------------------------------------------------------------- # Variables AsmIIGSOptions1 = -i {IWCLIncDir},{AWGS}Macros AsmIIGSOptions2 = -d lq=0 Program = ImageWriter.CL IWCLSrcDir = {iwcl}src: IWCLIncDir = {iwcl}src: IWCLObjDir = {iwcl}obj: Makefile = {iwcl}IWCL.make GlobalMacros = {iwcl}src:all.macros ¶ {iwcl}src:iw.macros ¶ {awgs}macros:m16.stack ¶ {awgs}macros:m16.cmp Objs = {IWCLObjDir}iw.o ¶ {IWCLObjDir}dialogdata.o {IWCL}{Program} ÄÄ {Objs} @If "`Newer {Objs} {IWCL}{Program}`" LinkIIGS {IWCLObjDir}iw.o {IWCLObjDir}dialogdata.o -o {IWCL}{Program} -t $BB -at $0001 -l > {IWCL}Link.map @End {Objs} Ä {makefile} {IWCLObjDir}iw.o Ä {IWCLSrcDir}iw.asm ¶ {IWCLSrcDir}hld.asm ¶ {IWCLSrcDir}lld.asm ¶ {IWCL}iw.sym ¶ {Makefile} ASMIIGS {IWCLSrcDir}iw.asm -o {IWCLObjDir}iw.o {AsmIIGSOptions1} {AsmIIGSOptions2} {IWCLObjDir}dialogdata.o Ä {IWCLSrcDir}dialogdata.asm ASMIIGS {IWCLSrcDir}dialogdata.asm -o {IWCLObjDir}dialogdata.o {AsmIIGSOptions1} {AsmIIGSOptions2} {IWCL}iw.sym Ä {IWCLSrcDir}iw.asm {GlobalMacros} ASMIIGS -c -d DUMPIT {IWCLSrcDir}iw.asm {AsmIIGSOptions1}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
appleworksgs/IW.CL/Src/hld.asm Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/IW.CL/Src/iw.asm Executable file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
MACRO &Lab _Names &MyName bra Skip&SysCnt dc i1'$42' dc i1'L:&MyName' msb on dc c'&MyName' msb off Skip&SysCnt Anop Mend MACRO &lab _PmGetPrinterName &lab ldx #19+256*40 jsl $E10000 MEND MACRO &lab _PrDevPrChanged &lab ldx #19+256*25 jsl $E10000 MEND MACRO &lab _PrDevStartup &lab ldx #19+256*26 jsl $E10000 MEND MACRO &lab _PrDevShutdown &lab ldx #19+256*27 jsl $E10000 MEND MACRO &lab _PrDevOpen &lab ldx #19+256*28 jsl $E10000 MEND MACRO &lab _PrDevRead &lab ldx #19+256*29 jsl $E10000 MEND MACRO &lab _PrDevWrite &lab ldx #19+256*30 jsl $E10000 MEND MACRO &lab _PrDevClose &lab ldx #19+256*31 jsl $E10000 MEND MACRO &lab _PrDevStatus &lab ldx #19+256*32 jsl $E10000 MEND MACRO &lab _PrDevInitBack &lab ldx #19+256*33 jsl $E10000 MEND MACRO &lab _PrDevFillBack &lab ldx #19+256*34 jsl $E10000 MEND MACRO &lab _PrDevAsyncRead &lab ldx #19+256*33 jsl $E10000 MEND MACRO &lab _PrDevAsyncWrite &lab ldx #19+256*34 jsl $E10000 MEND MACRO &lab _error &lab bcc @1 dc.b 0,$4c ; brk $4c @1 mend MACRO &lab _DevIsItSafe &lab ldx #19+256*48 jsl $E10000 MEND MACRO &lab MoveRect &Src,&Dest &lab lda &Src sta &Dest lda &Src+2 sta &Dest+2 lda &Src+4 sta &Dest+4 lda &Src+6 sta &Dest+6 MEND

1
appleworksgs/IW.CL/Src/lld.asm Executable file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
all Ä unset echo cd :: make cd src

1
appleworksgs/IW.CL/makefile Executable file
View File

@ -0,0 +1 @@
### Dependencies for building both the imagewriter and imagewriter.lq drivers. install Ä both choose -u 'Scott Lindsey' ':StyleWare, Inc.:' -pw azures cp -y imageÅ Royalton:Appleworks_GS:Bandit:Utilities: ³ Dev:Null all Ä imagewriter.cl beep mac2gs -y imagewriter.cl :imagewriter.cl both Ä imagewriter.cl imagewriter.clq beep mac2gs -y imagewriter.cl :imagewriter.cl beep mac2gs -y imagewriter.clq :imagewriter.clq macros Ä :src:iw.sym ### Dependancies for IW imagewriter.cl Ä :obj:iw.o ¶ :obj:dialogdata.o LINKIIGS :obj:iw.o :obj:dialogdata.o -o imagewriter.cl -t $70BB0001 ¶ -s > list imagewriter.clq Ä :obj:lq.o ¶ :obj:dialogdata.o LINKIIGS :obj:lq.o :obj:dialogdata.o -o imagewriter.clq -t $70BB0001 ### Dependancies for iw.o ### Setting the variable lq to 0 will build the regular Imagewriter driver :obj:iw.o Ä :src:iw.asm ¶ :src:hld.asm ¶ :src:lld.asm ASMIIGS -d lq=0 :src:iw.asm -o :obj:iw.o ### Dependencies for lq.o ### Setting the variable lq to 1 will build the Imagewriter LQ driver :obj:lq.o Ä :src:iw.asm ¶ :src:hld.asm ¶ :src:lld.asm ASMIIGS -d lq=1 :src:iw.asm -o :obj:lq.o ### Dependancies for dialogdata.o :obj:dialogdata.o Ä :src:dialogdata.asm ASMIIGS :src:dialogdata.asm -o :obj:dialogdata.o ### Dependancies for stdtext.o :obj:stdtext.o Ä :src:stdtext.asm ASMIIGS :src:stdtext.asm -o :obj:stdtext.o ### Dependancies for iw.sym :src:iw.sym Ä :src:iw.asm :src:all.macros ASMIIGS -c -d DUMPIT :src:iw.asm

1
appleworksgs/Link.Map Executable file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

BIN
appleworksgs/Macros/Macros.dump Executable file

Binary file not shown.

View File

@ -0,0 +1 @@
# # Macros.make - Makefile for Macros # # Copyright © 1989, Claris Corporation. # # This makefile rebuilds the symbol table dump file # whenever any of the macro files it includes have changed. #-------------------------------------------------------------------------------- # Variables Module = Macros ModuleDir = {AWGS}{Module}: Makefile = {ModuleDir}{Module}.make MacroFiles = {ModuleDir}m16.bob ¶ {ModuleDir}m16.branch ¶ {ModuleDir}m16.cmp ¶ {ModuleDir}m16.eval ¶ {ModuleDir}m16.math ¶ {ModuleDir}m16.move ¶ {ModuleDir}m16.msl ¶ {ModuleDir}m16.stack ¶ {ModuleDir}m16.tools ¶ {ModuleDir}m16.utility ¶ {ModuleDir}e16.tools #-------------------------------------------------------------------------------- # Main target {ModuleDir}Macros.dump ÄÄ {MacroFiles} {MakeFile} @echo "# Creating {ModuleDir}DumpMacros.aii É" @echo > {ModuleDir}DumpMacros.aii @for i in {MacroFiles}; ¶ @echo "¶tinclude¶t¶'{i}¶'" >> {ModuleDir}DumpMacros.aii; ¶ @end @echo >> {ModuleDir}DumpMacros.aii @echo "¶tDUMP¶t¶'{ModuleDir}Macros.dump¶'" >> {ModuleDir}DumpMacros.aii @echo "¶tEND" >> {ModuleDir}DumpMacros.aii AsmIIGS {ModuleDir}DumpMacros.aii -c # don't even bother with object. Delete {ModuleDir}DumpMacros.aiiÅ # don't need source files clean Ä @confirm "Delete {ModuleDir}Macros.dump" @if {status} == 0 then delete {ModuleDir}Macros.dump @end

1
appleworksgs/Macros/e16.tools Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/Macros/m16.bob Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/Macros/m16.branch Executable file
View File

@ -0,0 +1 @@
;..............................................................................; ; ; Bgt & Ble - Branch greater than and branch less than equal ; ; Bgt adrs - Branch if Z flag clear and Carry set ; Ble adrs - Branch if Z flag set or Carry clear ; ;..............................................................................; MACRO bgt &adr beq *+4 bge &adr MEND MACRO ble &adr blt &adr beq &adr MEND ;..............................................................................; ; ; Jcc adrs - Jump (long branch) on condition code macros ; ; Jmi adrs - Branch if N flag set ; Jpl adrs - Branch if N flag clear ; Jeq adrs - Branch if Z flag set ; Jne adrs - Branch if Z flag clear ; Jcs adrs - Branch if carry set ; Jcc adrs - Branch if carry clear ; Jlt adrs - Branch if less than (carry clear) ; Jge adrs - Branch if greater than or equal (carry set) ; Jle adrs - Branch if less than or equal ; Jgt adrs - Branch if greater than ;..............................................................................; MACRO jmi &adr bpl *+5 brl &adr mexit MEND MACRO jpl &adr bmi *+5 brl &adr mexit MEND MACRO jeq &adr bne *+5 brl &adr mexit MEND MACRO jne &adr beq *+5 brl &adr mexit MEND MACRO jcs &adr bcc *+5 brl &adr mexit MEND MACRO jcc &adr bcs *+5 brl &adr mexit MEND MACRO jlt &adr bcs *+5 brl &adr mexit MEND MACRO jge &adr bcc *+5 brl &adr mexit MEND MACRO jle &adr beq ~bra&sysindex bge ~nobra&sysindex ~bra&sysindex brl &adr ~nobra&sysindex mexit MEND MACRO jgt &adr blt ~nobra&sysindex beq ~nobra&sysindex brl &adr ~nobra&sysindex mexit MEND ;..............................................................................; ; ; JTS tableadrs,index - Jump Subroutine Table Short ; BTS tableadrs,index - Jump Table Short ; ; Thess macros implement a short jump to subroutine using the value of the ; accumulator or index to index into the table for the subroutines address. ; ;..............................................................................; MACRO JTS &table,&index IF &nbr(&syslist) ³ 2 THEN lda &index ENDIF asl a tax jsr (&table,x) MEND MACRO BTS &table,&index IF &nbr(&syslist) ³ 2 THEN lda &index ENDIF asl a tax jmp (&table,x) MEND ;..............................................................................; ; ; JTL tableadrs - Jump Subroutine Table Long ; ; This macros implements a long jump to subroutine using the value of the ; accumulator to index into the given table for the subroutines address. ; ;..............................................................................; MACRO JTL &table,&index IF &nbr(&syslist) ³ 2 THEN lda &index ENDIF asl a asl a tax lda &table+1,x sta ~b&sysindex+2 lda &table,x sta ~b&sysindex+1 ~b&sysindex jsl * mexit MEND ******************************************************************** * * AWGS WP module requires a case sensitive jsl to call the * SpellChecker. * * * * Thursday, May 4, 1989 11:16:10 AM ******************************************************************** MACRO &lab Case_Jsl &to &lab Case Object jsl &to Case Off mend

1
appleworksgs/Macros/m16.cmp Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/Macros/m16.eval Executable file
View File

@ -0,0 +1 @@
;..............................................................................; ; ; EVAL - Evaluate word expression to A ; ; eval expression ; ; The first operand in an expression may or may not be present. If it is ; present then the accumulator will be loaded with its value before expression ; evaluation begins. ; ; Sample expressions: ; ; eval 'Var1.+Var2.-Var3.+#10' ; eval '.*Var3./Var4.%Var5' ; ; Note: ; ; Eleven operations are supported +,-,*,/,% (mod), ^ (and), | (or), x (eor), < (asl), ; > (lsr), i (inc), and d (dec). Each of these must be preceded by a '.' and no spaces ; can be present in the expression. The expression should be quoted. Also note that ; both immediate and variable word values may be operands. ; ;..............................................................................; MACRO &lab eval &exp &lab lclc &operand lcla &opstart lclc &newexp IF (&substr(&exp,1,1) = '''') or (&substr(&exp,1,1) = '"') THEN &newexp setc &substr(&exp,2,&len(&exp)-2) ELSE &newexp setc &exp ENDIF &operand setc &substr(&newexp,1,1) IF &operand='.' GOTO .no1op &opstart seta &pos('.',&newexp) IF &opstart>0 GOTO .doexp lda &newexp mexit .doexp &operand setc &substr(&newexp,1,&opstart-1) &newexp setc &substr(&newexp,&opstart,&len(&newexp)-&opstart+1) lda &operand .no1op eval2 &newexp mexit MEND ; ; Eval2 is the heart of the eval macro ; MACRO &lab eval2 &exp &lab ; IF (&nbr(&syslist)=0) GOTO .done lclc &op lclc &operand lclc &rest lcla &restbegin lclc &newexp &newexp setc &exp .start &op setc &substr(&newexp,2,1) &rest setc &substr(&newexp,3,&len(&newexp)-2) &restbegin seta &pos('.',&rest) IF &restbegin>0 GOTO .ok &restbegin seta &len(&rest)+1 .ok &operand setc &substr(&rest,1,&restbegin-1) IF &op='+' GOTO .doadd IF &op='-' GOTO .dosub IF &op='*' GOTO .domul IF &op='/' GOTO .dodiv IF &op='%' GOTO .domod IF &op='^' GOTO .doand IF &op='|' GOTO .door IF &op='x' GOTO .doxor IF &op='<' GOTO .doasl IF &op='>' GOTO .dolsr IF &op='i' GOTO .doinc IF &op='d' GOTO .dodec .done mexit .doadd clc adc &operand GOTO .dorest .dosub sec sbc &operand GOTO .dorest .domul pha pha pha lda &operand pha _Multiply pla plx GOTO .dorest .dodiv pha pha pha lda &operand pha _SDivide pla plx GOTO .dorest .domod pha pha pha lda &operand pha _SDivide plx pla GOTO .dorest .doand and &operand GOTO .dorest .door ora &operand GOTO .dorest .doxor eor &operand GOTO .dorest .doasl asl a GOTO .dorest .dolsr lsr a GOTO .dorest .doinc inc a GOTO .dorest .dodec dec a GOTO .dorest .dorest &restbegin seta &pos('.',&rest) IF &restbegin>0 GOTO .next mexit .next &newexp setc &substr(&rest,&restbegin,&len(&rest)-&restbegin+1) GOTO .start mexit MEND

1
appleworksgs/Macros/m16.math Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/Macros/m16.move Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/Macros/m16.msl Executable file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
;----------------------------------------------- ; ; Imported addresses ; ;----------------------------------------------- ; File: M16.ProDos ; ; StyleWare, Inc. ; ; New (10/27/87), Stack Version of ProDOS macros. ; Usage: (e.g.) ; pushlong paramblock ; _OPEN ; ; CLASS 1 string. MACRO &lab STR1 &string lclc &sset &sset SETC &SETTING('STRING') STRING ASIS &lab DC.W &len(&string)-2 ; eliminate enclosing quotes. DC.B &string STRING &sset MEND MACRO &lab _CREATE &lab pea $2001 jsl $E100B0 MEND MACRO &lab _DESTROY &lab pea $2002 jsl $E100B0 MEND MACRO &lab _OS_ShutDown &lab pea $2003 jsl $E100B0 MEND MACRO &lab _CHANGE_PATH &lab pea $2004 jsl $E100B0 MEND MACRO &lab _SET_FILE_INFO &lab pea $2005 jsl $E100B0 MEND MACRO &lab _GET_FILE_INFO &lab pea $2006 jsl $E100B0 MEND MACRO &lab _VOLUME &lab pea $2008 jsl $E100B0 MEND MACRO &lab _SET_PREFIX &lab pea $2009 jsl $E100B0 MEND MACRO &lab _GET_PREFIX &lab pea $200A jsl $E100B0 MEND MACRO &lab _CLEAR_BACKUP_BIT &lab pea $200B jsl $E100B0 MEND MACRO &lab _SET_SYS_PREFS &lab pea $200C jsl $E100B0 MEND MACRO &lab _Null &lab pea $200D jsl $E100B0 MEND MACRO &lab _Expand_Path &lab pea $200E jsl $E100B0 MEND MACRO &lab _Get_SYS_PREFS &lab pea $200F jsl $E100B0 MEND MACRO &lab _OPEN &lab pea $2010 jsl $E100B0 MEND MACRO &lab _NEWLINE &lab pea $2011 jsl $E100B0 MEND MACRO &lab _READ &lab pea $2012 jsl $E100B0 MEND MACRO &lab _WRITE &lab pea $2013 jsl $E100B0 MEND MACRO &lab _CLOSE &lab pea $2014 jsl $E100B0 MEND MACRO &lab _FLUSH &lab pea $2015 jsl $E100B0 MEND MACRO &lab _SET_MARK &lab pea $2016 jsl $E100B0 MEND MACRO &lab _GET_MARK &lab pea $2017 jsl $E100B0 MEND MACRO &lab _SET_EOF &lab pea $2018 jsl $E100B0 MEND MACRO &lab _GET_EOF &lab pea $2019 jsl $E100B0 MEND MACRO &lab _SET_LEVEL &lab pea $201A jsl $E100B0 MEND MACRO &lab _GET_LEVEL &lab pea $201B jsl $E100B0 MEND MACRO &lab _GET_DIR_ENTRY &lab pea $201C jsl $E100B0 MEND MACRO &lab _Begin_Session &lab pea $201D jsl $E100B0 MEND MACRO &lab _End_Session &lab pea $201E jsl $E100B0 MEND MACRO &lab _Session_Status &lab pea $201F jsl $E100B0 MEND MACRO &lab _GET_DEV_NUM &lab pea $2020 jsl $E100B0 MEND MACRO &lab _GET_LAST_DEV &lab pea $2021 jsl $E100B0 MEND MACRO &lab _READ_BLOCK &lab pea $2022 jsl $E100B0 MEND MACRO &lab _WRITE_BLOCK &lab pea $2023 jsl $E100B0 MEND MACRO &lab _FORMAT &lab pea $2024 jsl $E100B0 MEND MACRO &lab _ERASE_DISK &lab pea $2025 jsl $E100B0 MEND MACRO &lab _Reset_Cache &lab pea $2026 jsl $E100B0 MEND MACRO &lab _GETNAME &lab pea $2027 jsl $E100B0 MEND MACRO &lab _GET_BOOT_VOL &lab pea $2028 jsl $E100B0 MEND MACRO &lab _Quit &lab pea $2029 jsl $E100B0 MEND MACRO &lab _GET_VERSION &lab pea $202A jsl $E100B0 MEND MACRO &lab _Get_FST_Info &lab pea $202B jsl $E100B0 MEND MACRO &lab _D_INFO &lab pea $202C jsl $E100B0 MEND MACRO &lab _D_Status &lab pea $202D jsl $E100B0 MEND MACRO &lab _D_Control &lab pea $202E jsl $E100B0 MEND MACRO &lab _D_Read &lab pea $202F jsl $E100B0 MEND MACRO &lab _D_Write &lab pea $2030 jsl $E100B0 MEND MACRO &lab _ALLOC_INTERRUPT &lab pea $2031 jsl $E100B0 MEND MACRO &lab _DEALLOC_INTERRUPT &lab pea $2032 jsl $E100B0 MEND MACRO &lab _Add_Notify_Proc &lab pea $2034 jsl $E100B0 MEND MACRO &lab _Del_Notify_Proc &lab pea $2035 jsl $E100B0 MEND MACRO &lab _D_Rename &lab pea $2036 jsl $E100B0 MEND MACRO &lab _Get_Std_Ref_Num &lab pea $2037 jsl $E100B0 MEND MACRO &lab _Get_Ref_Num &lab pea $2038 jsl $E100B0 MEND MACRO &lab _Get_Ref_Info &lab pea $2039 jsl $E100B0 MEND MACRO &lab ChkBugIn &callnum &lab IF (Developing AND &Type('PDOS')­'UNDEFINED ') THEN lda GSBugging bne @1 lda >$C025 and #$C0 ; -opt cmp #$C0 bne @2 @1 call GSOSBug,in=(#1:w,#0:w,&callnum:w,!pblock:l) @2 ENDIF MEND MACRO &lab ChkBugOut &callnum &lab IF (Developing AND &Type('PDOS')­'UNDEFINED ') THEN php pha lda GSBugging bne @3 lda >$C025 and #$C0 ; -opt cmp #$C0 bne @4 @3 call GSOSBug,in=(#0:w,err:w,&callnum:w,!pblock:l) @4 pla plp ENDIF MEND MACRO &lab _BindInt &lab pea $2031 jsl $E100B0 MEND MACRO &lab _UnBindInt &lab pea $2032 jsl $E100B0 MEND

View File

@ -0,0 +1 @@
; File: M16.ProDos ; ; ; Copyright Apple Computer, Inc. 1986, 1987, 1988 ; All Rights Reserved ; ; MACRO &lab _CREATE &params &lab jsl $E100A8 DC.W 1 DC.L &params MEND MACRO &lab _DESTROY &params &lab jsl $E100A8 DC.W 2 DC.L &params MEND MACRO &lab _CHANGE_PATH &params &lab jsl $E100A8 DC.W 4 DC.L &params MEND MACRO &lab _SET_FILE_INFO &params &lab jsl $E100A8 DC.W 5 DC.L &params MEND MACRO &lab _GET_FILE_INFO &params &lab jsl $E100A8 DC.W 6 DC.L &params MEND MACRO &lab _VOLUME &params &lab jsl $E100A8 DC.W 8 DC.L &params MEND MACRO &lab _SET_PREFIX &params &lab jsl $E100A8 DC.W 9 DC.L &params MEND MACRO &lab _GET_PREFIX &params &lab jsl $E100A8 DC.W $0A DC.L &params MEND MACRO &lab _CLEAR_BACKUP_BIT &params &lab jsl $E100A8 DC.W $0B DC.L &params MEND MACRO &lab _OPEN &params &lab jsl $E100A8 DC.W $10 DC.L &params MEND MACRO &lab _NEWLINE &params &lab jsl $E100A8 DC.W $11 DC.L &params MEND MACRO &lab _READ &params &lab jsl $E100A8 DC.W $12 DC.L &params MEND MACRO &lab _WRITE &params &lab jsl $E100A8 DC.W $13 DC.L &params MEND MACRO &lab _CLOSE &params &lab jsl $E100A8 DC.W $14 DC.L &params MEND MACRO &lab _FLUSH &params &lab jsl $E100A8 DC.W $15 DC.L &params MEND MACRO &lab _SET_MARK &params &lab jsl $E100A8 DC.W $16 DC.L &params MEND MACRO &lab _GET_MARK &params &lab jsl $E100A8 DC.W $17 DC.L &params MEND MACRO &lab _SET_EOF &params &lab jsl $E100A8 DC.W $18 DC.L &params MEND MACRO &lab _GET_EOF &params &lab jsl $E100A8 DC.W $19 DC.L &params MEND MACRO &lab _SET_LEVEL &params &lab jsl $E100A8 DC.W $1A DC.L &params MEND MACRO &lab _GET_LEVEL &params &lab jsl $E100A8 DC.W $1B DC.L &params MEND MACRO &lab _GET_DIR_ENTRY &params &lab jsl $E100A8 DC.W $1C DC.L &params MEND MACRO &lab _GET_DEV_NUM &params &lab jsl $E100A8 DC.W $20 DC.L &params MEND MACRO &lab _GET_LAST_DEV &params &lab jsl $E100A8 DC.W $21 DC.L &params MEND MACRO &lab _READ_BLOCK &params &lab jsl $E100A8 DC.W $22 DC.L &params MEND MACRO &lab _WRITE_BLOCK &params &lab jsl $E100A8 DC.W $23 DC.L &params MEND MACRO &lab _FORMAT &params &lab jsl $E100A8 DC.W $24 DC.L &params MEND MACRO &lab _ERASE_DISK &params &lab jsl $E100A8 DC.W $25 DC.L &params MEND MACRO &lab _GET_NAME &params &lab jsl $E100A8 DC.W $27 DC.L &params MEND MACRO &lab _GET_PATH_NAME &params &lab jsl $E100A8 DC.W $27 DC.L &params MEND MACRO &lab _GET_BOOT_VOL &params &lab jsl $E100A8 DC.W $28 DC.L &params MEND MACRO &lab _QUIT &params &lab jsl $E100A8 DC.W $29 DC.L &params MEND MACRO &lab _GET_VERSION &params &lab jsl $E100A8 DC.W $2A DC.L &params MEND MACRO &lab _D_INFO &params &lab jsl $E100A8 DC.W $2C DC.L &params MEND MACRO &lab _ALLOC_INTERRUPT &params &lab jsl $E100A8 DC.W $31 DC.L &params MEND MACRO &lab _DEALLOC_INTERRUPT &params &lab jsl $E100A8 DC.W $32 DC.L &params MEND

File diff suppressed because one or more lines are too long

1
appleworksgs/Macros/m16.stack Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/Macros/m16.tools Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/PL.equ Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/PL.link Executable file
View File

@ -0,0 +1 @@
-lseg:dynamic PL Source:AWGS:PL:Obj:pl.o Source:AWGS:PL:Obj:pdata.o Source:AWGS:PL:Obj:picon.o Source:AWGS:PL:Obj:putil.o Source:AWGS:PL:Obj:poptions.o Source:AWGS:PL:Obj:pfile.o Source:AWGS:PL:Obj:pprint.o Source:AWGS:PL:Obj:ptool.o Source:AWGS:PL:Obj:pmouse.o Source:AWGS:PL:Obj:pobject.o Source:AWGS:PL:Obj:pobjutil.o Source:AWGS:PL:Obj:plist.o Source:AWGS:PL:Obj:pmove.o Source:AWGS:PL:Obj:ppage.o Source:AWGS:PL:Obj:pruler.o Source:AWGS:PL:Obj:pupdate.o Source:AWGS:PL:Obj:pmenus.o Source:AWGS:PL:Obj:pedit.o Source:AWGS:PL:Obj:pundo.o Source:AWGS:PL:Obj:parrange.o Source:AWGS:PL:Obj:pscroll.o Source:AWGS:PL:Obj:pguide.o Source:AWGS:PL:Obj:pdrag.o Source:AWGS:PL:Obj:ptab.o Source:AWGS:PL:Obj:main.o Source:AWGS:PL:Obj:prim.o Source:AWGS:PL:Obj:prim2.o Source:AWGS:PL:Obj:tutil.o Source:AWGS:PL:Obj:tdraw.o Source:AWGS:PL:Obj:click.o Source:AWGS:PL:Obj:key.o Source:AWGS:PL:Obj:edit.o Source:AWGS:PL:Obj:format.o Source:AWGS:PL:Obj:truler.o Source:AWGS:PL:Obj:tcntl.o -lseg:dynamic PL2 Source:AWGS:PL:Obj:pruler2.o Source:AWGS:PL:Obj:putil2.o Source:AWGS:PL:Obj:pobjutil2.o Source:AWGS:PL:Obj:tscrap.o Source:AWGS:PL:Obj:tutil2.o -lseg PLSCRAP Source:AWGS:PL:Obj:pscrap.o Source:AWGS:PL:Obj:strings.o

1
appleworksgs/PL/Src/CLICK.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/EDIT.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/FORMAT.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/KEY.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/MAIN.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/PARRANGE.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/PDBG.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/PDRAG.S Executable file
View File

@ -0,0 +1 @@
load 'macros.dump' include 'driver.equ' include 'pl.equ' ;----------------------------------------------- ; ; Imported addresses ; ;----------------------------------------------- IMPORT D_Deref IMPORT D_NeedHand IMPORT P_AddGuide IMPORT P_ContentRect IMPORT P_FixPt IMPORT P_H IMPORT P_PageMode IMPORT P_RoundGuide IMPORT P_Traverse IMPORT P_V IMPORT D_UnLock IMPORT P_PaperRect IMPORT P_FullPaperRect ; pdrag.s ; Notes for D_DrawProc: ; newpt of -1,-1 says to get rid of the old drawing & nothing else ; newpt == oldpt says to get rid of old, then redraw it for real. ; need to clip as necessary. ;--------------------------------------------------------------------------- ; ; P_DragStuff (OldPt:l, starting D_MouseDown Q_Point ; Array:l, array HANDLE of guides/tabs ; Count:w, Number of items currently in array. ; D_DrawProc:l, procedure/function to draw tab/guide ; TabType:w, L/D/R ; Vert:w, Vertical Guide? ; Max:w, Maximum pixel position for valid whatever ; Min:w, Minimum ' ' ' ' " ; Erase:w Erase an old whatever first? ; ; ----> NewCount, NewArrayHdl, NewPt P_DragStuff PROC EXPORT ;Using P_Data local adjpt:l,hoffset:w,voffset:w local newpt:l,tmp:l,ptr:l,ppi:l input oldpt:l,count:w,array:l,D_DrawProc:l,tabtype:w input vert:w,max:w,min:w,dist:w,erase:w output newcount:w,amt:w error err begin stz err lda oldpt+2 and #$FFFE sta oldpt+2 moveaddr D_DrawProc,DrawIt+1 ; patch in the functional moveaddr D_DrawProc,DrawIt2+1 ; parameter. moveaddr D_DrawProc,DrawIt3+1 subword P_V,P_ContentRect,voffset ; correct for subword P_H,P_ContentRect+2,a ; scrolled-over-ness and #$FFFE ; make sure it's even sta hoffset ; pixelized, to be safe... lda vert bne VertMaxMin moveword max,newpt jsr AdjustPt moveword amt,max moveword min,newpt jsr AdjustPt moveword amt,min bra DidMaxMin VertMaxMin moveword max,newpt+2 jsr AdjustPt moveword amt,max moveword min,newpt+2 jsr AdjustPt moveword amt,min DidMaxMin lda count beq StartDrag rcall D_Deref,in=(array:ax),out=(ptr:ax) StartDrag lda erase beq DragLoop movelong #-1,newpt brl OKDraw DragLoop tool _GetMouse,in=(!newpt:l) lda newpt+2 and #$FFFE sta newpt+2 lda vert ; Only redraw beq HorizCmp ; when vertical cmpw oldpt+2,newpt+2 ; or horizontal jeq ContLoop ; changes, as bra DoneCmp ; is appropriate HorizCmp cmpw oldpt,newpt ; . jeq ContLoop ; : DoneCmp jsr AdjustPt ; Check to see if it is too D_Close to another one... lda count beq OKDraw call P_Traverse,in=(array:l,amt:w,#4:w,count:w),out=(tmp:w) lsr a lsr a cmp count bge CheckLesser addword amt,dist,a scmpw a,[ptr]:tmp bge DontMove CheckLesser subword amt,dist,y subword tmp,#4,tmp bmi OKDraw tya scmpw a,[ptr]:tmp ble DontMove OKDraw pushlong oldpt pushlong newpt pushword tabtype pushword vert DrawIt jsl * bra ContLoop DontMove movelong oldpt,newpt bra CheckDown ContLoop movelong newpt,oldpt CheckDown tool _StillDown,in=(#0:w),out=(a:w) jne DragLoop PutDown movelong newpt,oldpt jsr AdjustPt scmpw amt,min jlt NoDice scmpw max,amt jlt NoDice lda count beq NeedNew rcall D_UnLock,in=(array:ax) bra Unlocked NeedNew call D_NeedHand,in=(#4:l),out=(array:l) movelong [array],ptr movelong #0,[ptr] Unlocked lda P_PageMode beq DoAddG ; Round call P_RoundGuide,in=(amt:w,vert:w),out=(amt:w) moveword amt,newpt moveword amt,newpt+2 rcall P_FixPt,in=(newpt:ax),out=(newpt:ax) pushlong oldpt pushlong newpt pushword tabtype pushword vert DrawIt3 jsl * movelong newpt,oldpt DoAddG in amt:w,array:l,count:w,tabtype:w out count:w xerr err xcall P_AddGuide bra Dice NoDice movelong #-1,newpt Dice pushlong oldpt pushlong newpt pushword tabtype pushword vert DrawIt2 jsl * moveword count,newcount return ;------------------------- ; ; AdjustPt (local routine) ; adjust a Q_Point for drawing ; AdjustPt addword newpt,voffset,adjpt addword newpt+2,hoffset,adjpt+2 lda P_PageMode beq DidMap subword adjpt,voffset,adjpt subword adjpt+2,hoffset,adjpt+2 tool _MapPt,in=(!adjpt:l,#P_FullPaperRect:l,#P_PaperRect:l) DidMap lda vert beq HorizAmt lda adjpt+2 ; and #$FFFE ; Q_Mask to even pixel sta amt bra DidHV HorizAmt moveword adjpt,amt DidHV rts ENDP END

1
appleworksgs/PL/Src/PEDIT.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/PFILE.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/PGUIDE.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/PLIST.S Executable file
View File

@ -0,0 +1 @@
load 'macros.dump' include 'driver.equ' include 'pl.equ' ;----------------------------------------------- ; ; Imported addresses ; ;----------------------------------------------- IMPORT D_Deref IMPORT P_AddObjRgn IMPORT P_DrawRgn IMPORT P_ObjList IMPORT P_RemoveObj IMPORT P_ToolType IMPORT T_Dispose ;-------------------------------------------------------------------------- ; ; P_SetObjAttr (Attr:w; NewValue:w) ; P_SetObjAttr PROC EXPORT ;Using P_Data ;Using P_ObjData INPUT Attr:w,NewValue:w LOCAL ObjHdl:l,ObjPtr:l,UpdateRgn:l,ObjType:w BEGIN lda P_ToolType jne Exit tool _NewRgn,out=(UpdateRgn:l) movelong P_ObjList,ObjHdl WhileLoop cpzl ObjHdl jeq EndLoop rcall D_Deref,in=(ObjHdl:ax),out=(ObjPtr:ax) moveword [ObjPtr]:#P_Selected,a jeq NextObject moveword [ObjPtr]:#P_Type,ObjType cmp #P_ALPHA jeq NextObject lda Attr asl a tax jmp (JumpTable,x) ChangeFill lda ObjType cmp #P_RECTANGLE blt NextObject cmp #P_CIRCLE+1 bge NextObject moveword NewValue,[ObjPtr]:#P_ObjFilled bra AddObj ChangePen cmpw ObjType,#P_CIRCLE+1 bge NextObject call P_AddObjRgn,in=(ObjPtr:l,UpdateRgn:l) moveword NewValue,[ObjPtr]:#P_PenSize bra AddObj ChangeColor cmpw ObjType,#P_PICTURE bge NextObject moveword NewValue,[ObjPtr]:#P_ObjColor bra AddObj ChangeFont jsr IsPageDate bcc NextObject moveword NewValue,[ObjPtr]:#P_ItemFontID bra AddObj ChangeStyle jsr IsPageDate bcc NextObject movebyte NewValue,[ObjPtr]:#P_ItemFontID+2 bra AddObj ChangeSize jsr IsPageDate bcc NextObject movebyte NewValue,[ObjPtr]:#P_ItemFontID+3 AddObj call P_AddObjRgn,in=(ObjPtr:l,UpdateRgn:l) NextObject tool _HUnlock,in=(ObjHdl:l) movelong [ObjPtr],ObjHdl brl WhileLoop EndLoop call P_DrawRgn,in=(UpdateRgn:l) Exit RETURN ; Returns with carry set if it is a page or date object IsPageDate lda ObjType cmp #P_PAGETOOL blt @Clear cmp #P_DATETOOL+1 bge @Clear sec rts @Clear clc rts JumpTable DC.W ChangeFill DC.W ChangePen DC.W ChangeColor DC.W ChangeFont DC.W ChangeStyle DC.W ChangeSize ENDP ;----------------------------------------------------------------------------- ; ; P_SetDelFlag (Value:w) ; P_SetDelFlag PROC EXPORT ;Using P_Data ;Using P_ObjData INPUT Value:w LOCAL ObjHdl:l,ObjPtr:l BEGIN movelong P_ObjList,ObjHdl ObjLoop cpzl ObjHdl beq Exit movelong [ObjHdl],ObjPtr moveword [ObjPtr]:#P_Selected,a beq NextObj moveword Value,[ObjPtr]:#P_Deleted NextObj movelong [ObjPtr],ObjHdl bra ObjLoop Exit RETURN ENDP ;------------------------------------------------------------------------------ ; ; P_DelMarkObj () ; ; Deletes are objects that are marked as deleted from the object list. P_DelMarkObj PROC EXPORT ;Using P_Data ;Using P_ObjData LOCAL ObjHdl:l,ObjPtr:l,NextObj:l BEGIN movelong P_ObjList,ObjHdl While cpzl ObjHdl jeq EndWhile movelong [ObjHdl],ObjPtr movelong [ObjPtr],NextObj moveword [ObjPtr]:#P_Deleted,a beq TryNext ; need to do more if Q_Text object or picture moveword [ObjPtr]:#P_Type,a cmp #P_Alpha bne NotAlpha call T_Dispose,in=(ObjHdl:l,#0:w) bra Dispose NotAlpha cmp #P_PICTURE bne Dispose tool _KillPicture,in=([ObjPtr]:#P_PictHandle:l) Dispose call P_RemoveObj,in=(ObjHdl:l) tool _DisposeHandle,in=(ObjHdl:l) TryNext movelong NextObj,ObjHdl brl While EndWhile RETURN ENDP END

1
appleworksgs/PL/Src/PMENUS.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/PMOUSE.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/PMOVE.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/POBJECT.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/POBJUTIL.S Executable file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/POPTIONS.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/PPAGE.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/PPRINT.S Executable file
View File

@ -0,0 +1 @@
load 'macros.dump' include 'driver.equ' include 'pl.equ' ;----------------------------------------------- ; ; Imported addresses ; ;----------------------------------------------- IMPORT D_CheckPurge IMPORT P_ContentRect IMPORT P_CurrentWin IMPORT P_DrawContent IMPORT P_FirstPOff IMPORT P_H IMPORT P_LoadPage IMPORT P_Page IMPORT P_PageCount IMPORT P_PageMode IMPORT P_PageRect IMPORT P_PaperRect IMPORT P_PrintHand IMPORT P_SavePage IMPORT P_V IMPORT D_PrintToLW IMPORT D_PrOpenDoc ; pprint.s ;--------------------------------------------------------------------------- ; ; P_PrintDoc (Window:l) ; P_PrintDoc PROC EXPORT ;Using P_Data input Window:l error Err local PHdl:l,PPtr:l,PrinterPort:l,Spool:w,Copies:w local FirstPage:w,LastPage:w,CurPage:w,docOpened:w BEGIN +b stz Err stz docOpened call P_SavePage,in=(P_Page:w) ; D_Save to be restored pushword P_Page pushword P_PageMode pushlong P_CurrentWin pushword P_H pushword P_V pushlong P_ContentRect stz P_PageMode stz P_H stz P_V subword P_PaperRect,P_PageRect,P_ContentRect subword P_PaperRect+2,P_PageRect+2,P_ContentRect+2 movelong P_PrintHand,PHdl movelong [PHdl],PPtr moveword [PPtr]:#oPrJob+oBJDocLoop,a and #$ff sta Spool moveword [PPtr]:#oPrJob+oICopies,Copies moveword [PPtr]:#oPrJob+oIFstPage,FirstPage moveword [PPtr]:#oPrJob+oILstPage,LastPage moveword #1,[PPtr]:#oPrJob+oIFstPage moveword #1,[PPtr]:#oPrJob+oICopies ; do copies *our* way: collated. ; if it's a LaserWriter, do it the ÔnormalÕ way. lda >D_PrintToLW bne @normalMuck moveword #1,[PPtr]:#oPrJob+oILstPage bra @didMuck @normalMuck subword LastPage,FirstPage,a ina moveword a,[PPtr]:#oPrJob+oILstPage @didMuck ; Adjust the page range... ; if it's 1-999, pretend like it's 0-999 cmpw LastPage,#999 bne @cont cmpw FirstPage,#1 bne @cont stz FirstPage @cont lda FirstPage bne NotZero cmpw P_FirstPOff,#-2 beq NotZero inc FirstPage NotZero subword LastPage,P_FirstPOff,LastPage cmpw a,P_PageCount blt LastOkay lda P_PageCount inc a sta LastPage LastOkay subword FirstPage,P_FirstPOff,FirstPage scmpw a,#2 bge FirstOkay moveword #2,FirstPage FirstOkay CopyLoop lda Copies jeq Exit dec Copies moveword FirstPage,CurPage PageLoop cmpw LastPage,CurPage blt CopyLoop ; D_Open printer doc lda docOpened bne @opened moveword #-1,docOpened call D_PrOpenDoc,in=(PHdl:l,#0:l),out=(PrinterPort:l),err=(Err) jcs Abort @opened movelong PrinterPort,P_CurrentWin call P_LoadPage,in=(CurPage:w) tool _PrOpenPage,in=(PrinterPort:l,#0:l),err=(err) bcs CloseIt tool _SetFontFlags,in=(#4:w) tool _SetTextMode,in=(#modeForeCopy:w) call P_DrawContent,in=(#P_PaperRect:l,#1:w) CloseIt tool _PrClosePage,in=(PrinterPort:l) lda err jne Abort lda >D_PrintToLW bne ckMem closeD tool _PrCloseDoc,in=(PrinterPort:l),err=(Err) stz docOpened jcs Exit didclose jsl D_CheckPurge bcc MemOkay tool _PRSetError,in=(#-128:w) lda docOpened jeq Exit brl abort ckMem jsl D_CheckPurge bcc NoSpool tool _PRSetError,in=(#-128:w) lda docOpened jeq Exit brl abort MemOkay ; Print spooled file if neccessary lda Spool beq NoSpool tool _PrPicFile,in=(PHdl:l,#0:l,#StatusRecord:l),err=(Err) bcs Exit NoSpool inc CurPage brl PageLoop Exit lda docOpened beq @restore stz Copies bra closeD @restore ; Restore from stack pulllong P_ContentRect pullword P_V pullword P_H pulllong P_CurrentWin pullword P_PageMode call P_LoadPage,in=(:w) RETURN Abort tool _PrCloseDoc,in=(PrinterPort:l) stz docOpened bra Exit StatusRecord DS.B 28 ENDP END

1
appleworksgs/PL/Src/PRIM.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/PRIM2.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/PRULER.S Executable file
View File

@ -0,0 +1 @@
load 'macros.dump' include 'driver.equ' include 'pl.equ' ;----------------------------------------------- ; ; Imported addresses ; ;----------------------------------------------- IMPORT D_Deref IMPORT DoneH IMPORT DoneV IMPORT P_ContentRect IMPORT P_Do_Ruler IMPORT P_FullPaperRect IMPORT P_H IMPORT P_HRulRect IMPORT P_PageMode IMPORT P_PaperRect IMPORT P_PortRect IMPORT P_PrintHand IMPORT P_V IMPORT P_VRulRect IMPORT D_Set4Pat IMPORT D_UnLock ;---------------------------------------------------------------------- ; ; Draw Rulers ; P_DrawRulers PROC EXPORT ;Using P_Data ;Using P_RulerData ;Using P_IconData input rgnhdl:l local tmprect:r,counter:w,offset:w,printstuff:l,vert:l local horz:l,ppp:w,startloc:w,tmp:l,ppfp:w,rgnptr:l begin +b call D_Set4Pat,in=(#LightYellow:w) moveword #P_TabWTop,tmprect moveword #P_TabWBottom,tmprect+4 moveword P_VRulRect+2,tmprect+2 moveword P_VRulRect+6,tmprect+6 tool _ClipRect,in=(!tmprect:l) tool _PaintRect,in=(!tmprect:l) _PenNormal rcall D_Deref,in=(P_PrintHand:ax),out=(printstuff:ax) moveword [printstuff]:#4,vert moveword [printstuff]:#6,horz stz vert+2 stz horz+2 rcall D_UnLock,in=(P_PrintHand:ax) rcall D_Deref,in=(rgnhdl:ax),out=(rgnptr:ax) ; ; Horizontal ruler moverect P_HRulRect,tmprect moveword P_VRulRect+2,tmprect+2 tool _RectInRgn,in=(!tmprect:l,rgnhdl:l),out=(a:w) jeq CkVert subword P_PaperRect+6,P_PaperRect+2,ppp ; do D_Update Q_Rect!?!?! subword P_ContentRect+2,P_H,startloc lda P_PageMode bne DoHPage tool _Long2Fix,in=(horz:l),out=(horz:l) bra DoHoriz DoHPage moveword P_FullPaperRect+2,startloc subword P_FullPaperRect+6,P_FullPaperRect+2,ppfp tool _Multiply,in=(horz:w,ppfp:w),out=(tmp:l) tool _FixDiv,in=(tmp:l,#0:w,ppp:w),out=(horz:l) DoHoriz pushlong horz pushword startloc cmpw [rgnptr]:#4,P_ContentRect+2 blt HContent1 and #$FFFE pushword a bra HCk HContent1 pushword P_ContentRect+2 HCk cmpw [rgnptr]:#8,P_ContentRect+6 blt HContent2 pushword P_ContentRect+6 bra DoneH HContent2 pushword a DoneH ; in :l,:w,:w,:w in #0:w,#P_HRulRect:l,#P_VRulRect:l,#P_PortRect:l in #P_ContentRect:l,P_Pagemode:w xcall P_Do_Ruler ; ; Vertical ruler CkVert tool _RectInRgn,in=(#P_VRulRect:l,rgnhdl:l),out=(a:w) jeq exit subword P_PaperRect+4,P_PaperRect,ppp subword P_ContentRect,P_V,startloc lda P_PageMode bne DoVPage tool _Long2Fix,in=(vert:l),out=(vert:l) bra DoVert DoVPage moveword P_FullPaperRect,startloc subword P_FullPaperRect+4,P_FullPaperRect,ppfp tool _Multiply,in=(vert:w,ppfp:w),out=(tmp:l) tool _FixDiv,in=(tmp:l,#0:w,ppp:w),out=(vert:l) DoVert pushlong vert pushword startloc cmpw [rgnptr]:#2,P_ContentRect blt VContent1 pushword a bra VCk VContent1 pushword P_ContentRect VCk cmpw [rgnptr]:#6,P_ContentRect+4 blt VContent2 pushword P_ContentRect+4 bra DoneV VContent2 pushword a DoneV ; in :l,:w,:w,:w in #1:w,#P_HRulRect:l,#P_VRulRect:l,#P_PortRect:l in #P_ContentRect:l,P_Pagemode:w xcall P_Do_Ruler Exit rcall D_UnLock,in=(rgnhdl:ax) _PenNormal return ENDP END

1
appleworksgs/PL/Src/PRULER2.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/PSCRAP.S Executable file
View File

@ -0,0 +1 @@
load 'macros.dump' include 'driver.equ' include 'pl.equ' ;----------------------------------------------- ; ; Imported addresses ; ;----------------------------------------------- IMPORT X_CopyOneHandle IMPORT X_DisposeThread IMPORT P_CopyObjList IMPORT P_MakePict IMPORT T_CpyOrClrObj IMPORT T_ReThread ;----------------------------------------------- ; ; Forward addresses and entries ; ;----------------------------------------------- ENTRY P_CopyPLScrap ENTRY P_DelObjList ENTRY P_DelPLScrap ENTRY P_PL2Pict ENTRY T_Dispose P_ScrapJumps PROC EXPORT DC.L P_CopyPLScrap DC.L P_DelPLScrap DC.L P_PL2Pict ENDP P_ScrapData PROC EXPORT EXPORT P_QDPict EXPORT P_ConvErr P_QDPict DS.B 4 P_ConvErr DS.B 2 ENDP ;------------------------------------------------------------------------------ ; ; P_CopyPLScrap (ScrapHdl:l) : CopyHdl:l ; P_CopyPLScrap PROC EXPORT input ScrapHdl:l output CopyHdl:l error Err begin call P_CopyObjList,in=(ScrapHdl:l,#1:w),out=(CopyHdl:l),err=(Err) return ENDP ;----------------------------------------------------------------------------- ; ; P_DelPLScrap (ObjHdl:l,KillData:w) ; P_DelPLScrap PROC EXPORT ;Using P_ObjData ;Using P_ScrapData input ObjHdl:l,KillData:w local ObjPtr:l,NextObj:l begin +b cpzl P_QDPict beq DoIt tool _KillPicture,in=(P_QDPict:l) stzl P_QDPict DoIt call P_DelObjList,in=(ObjHdl:l,KillData:w,#1:w) return ENDP ;----------------------------------------------------------------------------- ; ; P_PL2Pict (ObjHdl:l) : PictHdl:l ; P_PL2Pict PROC EXPORT ;Using P_ScrapData input ObjHdl:l output PictHdl:l error Err begin +b cpzl P_QDPict beq DoIt moveword P_ConvErr,Err bne Exit call X_CopyOneHandle,in=(P_QDPict:l),out=(PictHdl:l),err=(Err) bra Exit DoIt call P_MakePict,in=(ObjHdl:l),out=(PictHdl:l),err=(Err) Exit return ENDP ;----------------------------------------------------------------------------- ; ; P_DelObjList (ObjHdl:l,KillData:w,All:w) ; P_DelObjList PROC EXPORT ;Using P_ObjData ;Using P_ScrapData input ObjHdl:l,KillData:w,All:w local ObjPtr:l,NextObj:l begin WhileLoop cpzl ObjHdl jeq Exit movelong [ObjHdl],ObjPtr movelong [ObjPtr],NextObj lda KillData beq TrashIt moveword [ObjPtr]:#P_Type,a cmp #P_ALPHA bne TryPict call T_Dispose,in=(ObjHdl:l,All:w) bra TrashIt TryPict cmp #P_PICTURE bne TrashIt tool _KillPicture,in=([ObjPtr]:#P_PictHandle:l) TrashIt tool _DisposeHandle,in=(ObjHdl:l) movelong NextObj,ObjHdl brl WhileLoop Exit return ENDP ;---------------------------------------------------------------------------- ; ; T_Dispose (ObjHdl:l,All:w) ; ; Can call X_DisposeThread if there are no objects attached to this one. T_Dispose PROC EXPORT ;Using P_ObjData input ObjHdl:l,All:w local ObjPtr:l,NThread:l,PThread:l,Ptr:l begin +b movelong [ObjHdl],ObjPtr movelong [ObjPtr]:#P_NThread,NThread movelong [ObjPtr]:#P_PThread,PThread lda All beq NotAll cpzl PThread beq KillThread lda PThread and PThread+2 cmp #$FFFF beq Killthread brl Exit NotAll lda NThread ora NThread+2 ora PThread ora PThread+2 bne Linked KillThread call X_DisposeThread,in=([ObjPtr]:#P_ParagHdl:l,#1:w) brl Exit Linked call T_CpyOrClrObj,in=(ObjPtr:l,#0:w),out=(a:l) cpzl PThread beq NoPrev movelong [PThread],Ptr movelong NThread,[Ptr]:#P_NThread NoPrev cpzl NThread beq NoNext movelong [NThread],Ptr movelong PThread,[Ptr]:#P_PThread NoNext cpzl PThread beq AtStart pushlong PThread bra Cont AtStart pushlong NThread Cont jsl T_ReThread Exit return ENDP END

1
appleworksgs/PL/Src/PSCROLL.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/PTAB.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/PTOOL.S Executable file
View File

@ -0,0 +1 @@
load 'macros.dump' include 'driver.equ' include 'pl.equ' ;----------------------------------------------- ; ; Imported addresses ; ;----------------------------------------------- IMPORT D_DrawIcon IMPORT P_BuildUndo IMPORT P_CheckIcon IMPORT P_CkLoc IMPORT P_ContentRect IMPORT P_Cursor IMPORT P_DeSelectAll IMPORT P_FillMode IMPORT P_FillRect IMPORT P_FrameRect IMPORT P_IconPalette IMPORT P_IsObjSel IMPORT P_KillImport IMPORT P_LineSize IMPORT P_Palette IMPORT P_SetObjAttr IMPORT P_ToolHeights IMPORT P_ToolType IMPORT P_UnCkIcon IMPORT P_VisPalette IMPORT T_Deactivate ;----------------------------------------------- ; ; Forward addresses and entries ; ;----------------------------------------------- ENTRY P_NewTool ;--------------------------------------------------------------------------- ; ; P_DrawTools ; P_DrawTools PROC EXPORT ;Using P_IconData ;Using P_Data ;Using P_ObjData LOCAL tmp:l,tmprect:r BEGIN call D_DrawIcon,in=(#P_IconPalette:l,#-1:w,#-1:w,#0:w) tool _SetPenSize,in=(#2:w,#1:w) tool _MoveTo,in=(#36:w,#0:w) tool _LineTo,in=(#36:w,#220:w) tool _PenNormal tool _InvertRect,in=(#P_Palette:l) lda P_FillMode beq DoFrame tool _InvertRect,in=(#P_FillRect:l) bra DrawCheck DoFrame tool _InvertRect,in=(#P_FrameRect:l) DrawCheck lda P_LineSize asl a addlong a,#P_CkLoc,tmp call D_DrawIcon,in=(#P_CheckIcon:l,#1:w,[tmp]:w,#0:w) RETURN ENDP ;------------------------------------------------------------------------------ ; ; P_MDInTools (ThePt:l) ; P_MDInTools PROC EXPORT ;Using P_IconData ;Using P_Data ;Using P_ObjData INPUT ThePt:l LOCAL Tmp:l,NewSize:w BEGIN lda ThePt ldx #0 ToolLoop cmp P_ToolHeights,x blt FoundIt inx inx bra ToolLoop FoundIt txa lsr a cmp #P_CIRCLE+1 beq ChangeFill bge ChangeLine NewTool call P_NewTool,in=(a:w,#1:w) brl Exit ChangeFill lda ThePt+2 cmp P_FrameRect+6 bge DoFill lda P_FillMode beq SetFF stz P_FillMode bra DoFillStuff DoFill lda P_FillMode bne SetFF moveword #1,P_FillMode DoFillStuff tool _ClipRect,in=(#P_IconPalette:l) tool _InvertRect,in=(#P_FillRect:l) tool _InvertRect,in=(#P_FrameRect:l) tool _ClipRect,in=(#P_ContentRect:l) SetFF call P_IsObjSel,out=(a:w) beq ToExit call P_BuildUndo,in=(#P_FillUndo:w) call P_SetObjAttr,in=(#P_FillAttr:w,P_FillMode:w) ToExit brl Exit ChangeLine subword a,#P_CIRCLE+1,NewSize tool _ClipRect,in=(#P_IconPalette:l) ; uncheck old D_Mark lda P_LineSize asl a addlong a,#P_CkLoc,tmp call D_DrawIcon,in=(#P_UnCkIcon:l,#1:w,[tmp]:w,#0:w) ; check D_New D_Mark lda NewSize sta P_LineSize asl a addlong a,#P_CkLoc,tmp call D_DrawIcon,in=(#P_CheckIcon:l,#1:w,[tmp]:w,#0:w) tool _ClipRect,in=(#P_ContentRect:l) call P_IsObjSel,out=(a:w) beq Exit call P_BuildUndo,in=(#P_PenSizeUndo:w) call P_SetObjAttr,in=(#P_PenSizeAttr:w,P_LineSize:w) Exit RETURN ENDP ;--------------------------------------------------------------------------- ; ; P_NewTool (NewTool:w; KillImport:w) ; P_NewTool PROC EXPORT ;Using P_Data ;Using P_IconDATA ;Using P_OBJData ;Using T_Data INPUT NewTool:w,KillImport:w LOCAL CRect:r BEGIN tool _ClipRect,in=(#P_ContentRect:l) cmpw NewTool,P_ToolType jeq Exit ; Deselect old tool and select D_New one stz CRect stz CRect+2 moveword P_ContentRect+4,CRect+4 moveword P_IconPalette+6,CRect+6 tool _ClipRect,in=(!CRect:l) lda P_VisPalette beq NotVis1 tool _InvertRect,in=(#P_Palette:l) NotVis1 lda NewTool asl a tax lda CursorTypes,x sta P_Cursor lda P_ToolHeights,x dec a moveword a,P_Palette+4 subword a,#12,P_Palette lda P_VisPalette beq NotVis2 tool _InvertRect,in=(#P_Palette:l) NotVis2 tool _ClipRect,in=(#P_ContentRect:l) lda KillImport beq NoKill jsl P_KillImport NoKill ; If we're un-using the Arrow tool, deselect everything. lda P_ToolType cmp #P_ARROW bne UnText call P_DeSelectAll bra Choose ; If we're un-using the I-beam tool, deactivate the Q_Text. UnText cmp #P_ALPHA bne Choose call T_Deactivate,in=(#1:w,#1:w) Choose moveword NewTool,P_ToolType Exit RETURN CursorTypes DC.W ArrowCursor DC.W BeamCursor DC.W PageNumCursor DC.W DateCursor DC.W -1 DC.W -1 DC.W -1 DC.W -1 DC.W -1 ENDP END

1
appleworksgs/PL/Src/PUNDO.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/PUPDATE.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/PUTIL.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/PUTIL2.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/SCRAP.S Executable file
View File

@ -0,0 +1 @@
load 'macros.dump' include 'driver.equ' ;----------------------------------------------- ; ; Imported addresses ; ;----------------------------------------------- IMPORT T_GetParPtr IMPORT T_LineCount IMPORT T_LineInfoSize IMPORT T_LinesHdl IMPORT T_MulLine ;------------------------------------------------------------------------------ ; ; T_OffsetLines (ParagNo:w,LineNo:w,CharCount:w) ; T_OffsetLines PROC EXPORT ;Using T_Data ;Using T_TextEqu INPUT ParagNo:w,LineNo:w,CharCount:w LOCAL ParagPtr:l,LinesHdl:l,LinePtr:l,LineCount:w BEGIN rcall T_GetParPtr,in=(ParagNo:a),out=(ParagPtr:ax) movelong [ParagPtr]:#T_LinesHdl,LinesHdl movelong [LinesHdl],LinePtr moveword [ParagPtr]:#T_LineCount,LineCount rcall T_MulLine,in=(LineNo:a),out=(a:a) addwl a,LinePtr ldx LineNo LLoop inx cpx LineCount bge EndLLoop addwl #T_LineInfoSize,LinePtr addword CharCount,[LinePtr],[LinePtr] bra LLoop EndLLoop RETURN ENDP END

1
appleworksgs/PL/Src/TCNTL.S Executable file
View File

@ -0,0 +1 @@
load 'macros.dump' include 'driver.equ' include 'pl.equ' ;----------------------------------------------- ; ; Imported addresses ; ;----------------------------------------------- IMPORT P_KillUndo IMPORT T_DotLine IMPORT T_DotObj IMPORT T_DotOffset IMPORT T_DotParag IMPORT T_DotPixs IMPORT T_FontFlags IMPORT T_GetObject IMPORT T_GetParPtr IMPORT T_GetParSize IMPORT T_InvSelect IMPORT T_JunkRight IMPORT T_MovedDot IMPORT T_NextChar IMPORT T_Pix2Offset IMPORT T_PrevChar IMPORT T_RangeFont IMPORT T_TextSelect ;----------------------------------------------------------------------------- ; ; T_DoControl (Char:w; ModFlags:w) ; T_DoControl PROC EXPORT ;Using P_ObjData ;Using T_TextEqu ;Using T_Data INPUT Char:w,ModFlags:w LOCAL ParagPtr:l,LastPar:w LOCAL ObjHdl:l,ObjPtr:l,MaxWidth:w BEGIN stz T_FontFlags jsl T_InvSelect stz T_TextSelect rcall T_GetParPtr,in=(#0:a),out=(ParagPtr:ax) moveword [ParagPtr],a dec a sta LastPar lda Char asl a tax jmp (JumpTable,x) ; Left arrow _LeftArrow rcall T_PrevChar,in=(T_DotParag:a,T_DotOffset:x) cmp #0 beq PrevParag sta T_DotOffset brl MovedDot PrevParag lda T_DotParag beq NoDec dec a sta T_DotParag rcall T_GetParSize,in=(a:a),out=(a:a) dec a sta T_DotOffset NoDec brl MovedDot _RightArrow rcall T_NextChar,in=(T_DotParag:a,T_DotOffset:x) cmp #0 beq NextParag sta T_DotOffset brl MovedDot NextParag cmpw T_DotParag,LastPar bge NoInc inc T_DotParag moveword #T_ParHeader,T_DotOffset NoInc brl MovedDot _UpArrow lda T_DotLine beq PrevParag2 dec T_DotLine bra FindPixs PrevParag2 lda T_DotParag jeq Exit dec T_DotParag rcall T_GetParPtr,in=(T_DotParag:a),out=(ParagPtr:ax) moveword [ParagPtr]:#T_LineCount,a dec a sta T_DotLine bra FindPixs _DownArrow rcall T_GetParPtr,in=(T_DotParag:a),out=(ParagPtr:ax) lda T_DotLine inc a cmpw a,[ParagPtr]:#T_LineCount bge NextParag2 inc T_DotLine bra FindPixs NextParag2 cmpw T_DotParag,LastPar jeq Exit inc T_DotParag stz T_DotLine FindPixs call T_GetObject,in=(T_DotParag:w,T_DotLine:w),out=(T_DotObj:l) movelong T_DotObj,ObjHdl movelong [ObjHdl],ObjPtr subword [ObjPtr]:#P_TRect+6,[ObjPtr]:#P_TRect+2,MaxWidth in T_DotParag:w,T_DotLine:w,T_DotPixs:w,MaxWidth:w out T_DotOffset:w,T_DotPixs:w xcall T_Pix2Offset MovedDot rcall T_JunkRight,in=(T_DotParag:a,T_DotOffset:x) sta T_DotOffset jsl P_KillUndo jsl T_MovedDot jsl T_RangeFont Exit RETURN JumpTable DC.W Exit ;0 DC.W Exit ;1 DC.W Exit ;2 DC.W Exit ;3 DC.W Exit ;4 DC.W Exit ;5 DC.W Exit ;6 DC.W Exit ;7 DC.W _LeftArrow ;8 DC.W Exit ;9 Tab DC.W _DownArrow ;10 DC.W _UpArrow ;11 DC.W Exit ;12 DC.W Exit ;13 CR DC.W Exit ;14 DC.W Exit ;15 DC.W Exit ;16 DC.W Exit ;17 DC.W Exit ;18 DC.W Exit ;19 DC.W Exit ;20 DC.W _RightArrow ;21 DC.W Exit ;22 DC.W Exit ;23 DC.W Exit ;24 DC.W Exit ;25 DC.W Exit ;26 DC.W Exit ;27 DC.W Exit ;28 DC.W Exit ;29 DC.W Exit ;30 DC.W Exit ;31 ENDP END

1
appleworksgs/PL/Src/TDBG.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/TDRAW.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/TRULER.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/TSCRAP.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/TUTIL.S Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/TUTIL2.S Executable file
View File

@ -0,0 +1 @@
load 'macros.dump' include 'driver.equ' include 'pl.equ' ;----------------------------------------------- ; ; Imported addresses ; ;----------------------------------------------- IMPORT D_GrowHandle IMPORT T_GetParPtr IMPORT T_OffsetPars ;----------------------------------------------- ; ; Forward addresses and entries ; ;----------------------------------------------- ENTRY T_LessRoom ENTRY T_MakeRoom ; ------------------------------------------------------------------------------ ; T_MakeRoom and T_LessRoom will grow or shrink the Q_Text blocks the ; correct amount and make sure everything in the parag array data ; structure gets updated, with the exception of the LinesHdl. ; ;------------------------------------------------------------------------------ ; ; T_DoRoom (Par:w,Offset:w,Bytes:w) ; T_DoRoom PROC EXPORT lda 4,s ;look at bytes jpl T_MakeRoom eor #$ffff inc a sta 4,s brl T_LessRoom ENDP ;------------------------------------------------------------------------------ ; ; T_MakeRoom (ParagNo:w,Offset:w,Bytes:w) ; T_MakeRoom PROC EXPORT ;Using T_Data ;Using T_TextEqu INPUT ParagNo:w,Offset:w,Bytes:w LOCAL ParagPtr:l,TextHdl:l,TextPtr:l LOCAL X_Blocksize:w,TextSize:w,NewTSize:w ERROR Err BEGIN stz Err lda Bytes jeq Exit rcall T_GetParPtr,in=(ParagNo:a),out=(ParagPtr:ax) movelong [ParagPtr]:#T_TextBlock,TextHdl addword [ParagPtr]:#T_ParOffset,Offset,Offset movelong [TextHdl],TextPtr moveword [TextPtr],X_Blocksize moveword [TextPtr]:#T_TextSize,TextSize addword a,Bytes,NewTSize cmp X_Blocksize blt Fits ; 1. Grow Q_Text Block call D_GrowHandle,in=(#0:w,NewTSize:w,TextHdl:l),err=(Err) bcs Exit movelong [TextHdl],TextPtr moveword NewTSize,[TextPtr] ; BlockMove rest of Q_Text down Fits moveword NewTSize,[TextPtr]:#T_TextSize addwl Offset,TextPtr pushlong TextPtr lda Bytes addlong a,TextPtr,s pushword #0 subword TextSize,Offset,s _BlockMove call T_OffsetPars,in=(ParagNo:w,Bytes:w) Exit RETURN ENDP ;------------------------------------------------------------------------------ ; ; T_LessRoom (ParagNo:w,Offset:w,Bytes:w) ; ; This routine will remove the Bytes starting at ParagNo,Offset. T_LessRoom PROC EXPORT ;Using T_TextEqu INPUT ParagNo:w,Offset:w,Bytes:w LOCAL ParagPtr:l,TextBlock:l,TextPtr:l LOCAL TextSize:w,SrcOffset:w,DestOffset:w BEGIN rcall T_GetParPtr,in=(ParagNo:a),out=(ParagPtr:ax) movelong [ParagPtr]:#T_TextBlock,TextBlock movelong [TextBlock],TextPtr moveword [TextPtr]:#T_TextSize,TextSize addword [ParagPtr]:#T_ParOffset,Offset,DestOffset addword a,Bytes,SrcOffset addlong a,TextPtr,s ;Src lda DestOffset addlong a,TextPtr,s ;Dest subword TextSize,SrcOffset,a pushword #0 pushword a ;Amount _BlockMove subword TextSize,Bytes,TextSize cmp #4 beq KillIt moveword a,[TextPtr] moveword a,[TextPtr]:#T_TextSize pushword #0 pushword TextSize pushlong TextBlock _SetHandleSize pushword ParagNo subword #0,Bytes,s jsl T_OffsetPars bra Exit KillIt tool _DisposeHandle,in=(TextBlock:l) Exit RETURN ENDP ;------------------------------------------------------------------------------- ; ; T_CalcFBytes (FontId1:l,Color1:w,FontId2:l,Color2:w) : Bytes:w ; T_CalcFBytes PROC EXPORT INPUT FontID1:l,Color1:w,FontID2:l,Color2:w OUTPUT Bytes:w BEGIN stz Bytes cmpw FontId1,FontID2 beq SameFont moveword #3,bytes SameFont cmpb FontId1+2,FontId2+2 beq SameStyle addword #2,bytes,bytes SameStyle cmpb FontId1+3,FontId2+3 beq SameSize addword #2,bytes,bytes SameSize cmpb color1,color2 beq SameColor addword #2,bytes,bytes SameColor RETURN ENDP ;------------------------------------------------------------------------------ ; ; T_WriteFbytes (Ptr:l,FontId1:l,Color1:w,FontId2:l,Color2:w) ; T_WriteFBytes PROC EXPORT INPUT Ptr:l,FontID1:l,Color1:w,FontID2:l,Color2:w BEGIN cmpw FontId1,FontID2 beq SameFont moveword #1,[Ptr] moveword FontId2,[Ptr]:#1 addwl #3,Ptr SameFont cmpb FontId1+2,FontId2+2 beq SameStyle lda FontId2+1 ;2 is in the high shortm lda #2 ;flag is in the low longm sta [Ptr] addwl #2,Ptr SameStyle cmpb FontId1+3,FontId2+3 beq SameSize lda FontId2+2 ;3 is in the high shortm lda #3 ;flag is in the low longm sta [Ptr] addwl #2,Ptr SameSize cmpb color1,color2 beq SameColor lda color2-1 ;2 is in the high shortm lda #4 ;flag is in the low longm sta [Ptr] SameColor RETURN ENDP END

1
appleworksgs/PL/Src/pdata.s Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/picon.s Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/pl.s Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/PL/Src/strings.s Executable file
View File

@ -0,0 +1 @@
load 'macros.dump' include 'driver.equ' P_Strings PROC EXPORT P_KillLMasterStr,P_CancelStr,P_OKStr,P_InsText1Msg EXPORT P_InsText2Msg,P_RCtlMsg1,P_RCtlMsg2,P_RCtlMsg3 EXPORT P_DelText1Msg,P_DelText2Msg,P_GotoTextMsg EXPORT P_PNumMsg,P_LRMsg,P_TBMsg,P_ColMsg,P_CSMsg P_KillLMasterStr STR 'This will delete anything on the left master page.' P_CancelStr STR 'Cancel' P_OKStr STR 'OK' P_InsText1Msg STR 'Insert' P_InsText2Msg STR 'page(s)' P_RCtlMsg1 STR 'at the beginning.' P_RCtlMsg2 STR 'after the current page.' P_RCtlMsg3 STR 'at the end.' P_DelText1Msg STR 'Delete pages' P_DelText2Msg STR 'through' P_GotoTextMsg STR 'Go to page' P_PNumMsg STR 'First page number:' P_LRMsg STR 'Left / Right Margins' P_TBMsg STR 'Top / Bottom Margins' P_ColMsg STR 'Columns' P_CSMsg STR 'Column Spacing' ENDP END

1
appleworksgs/PL/pl.make Executable file
View File

@ -0,0 +1 @@
# # PL.make - Makefile for PL # # Copyright © 1989, Claris Corporation. # # This is a sub-makefile, called recursively when ::AppleWorks.make is # executed. # # All modules (including Driver, Scrap, Pict., SS, DB, etc.) # should have similar makefiles in their respective folders. # # This makefile rebuilds the module object files as necessary and creates a # file containing the necessary steps to link this module with the rest of # AppleWorksGS. ::AppleWorks.make combines the link files from the modules # into a script which it executes to create an executable. #-------------------------------------------------------------------------------- # Variables AsmIIGSOptions = Segment1 = PL Segment2 = PL2 Segment3 = PLSCRAP Module = PL ModuleDir = {AWGS}{Module}: SrcDir = {ModuleDir}Src: IncDir = {ModuleDir} ObjDir = {ModuleDir}Obj: GlobalIncludes = {AWGS}Macros:Macros.dump ¶ {IncDir}PL.equ ¶ {AWGS}Driver:Driver.equ Linkfile = {ModuleDir}{Module}.link Makefile = {ModuleDir}{Module}.make Objs = {Objs1} {Objs2} {Objs3} Objs1 = {objdir}pl.o ¶ {objdir}pdata.o ¶ {objdir}picon.o ¶ {objdir}putil.o ¶ {objdir}poptions.o ¶ {objdir}pfile.o ¶ {objdir}pprint.o ¶ {objdir}ptool.o ¶ {objdir}pmouse.o ¶ {objdir}pobject.o ¶ {objdir}pobjutil.o ¶ {objdir}plist.o ¶ {objdir}pmove.o ¶ {objdir}ppage.o ¶ {objdir}pruler.o ¶ {objdir}pupdate.o ¶ {objdir}pmenus.o ¶ {objdir}pedit.o ¶ {objdir}pundo.o ¶ {objdir}parrange.o ¶ {objdir}pscroll.o ¶ {objdir}pguide.o ¶ {objdir}pdrag.o ¶ {objdir}ptab.o ¶ {objdir}main.o ¶ {objdir}prim.o ¶ {objdir}prim2.o ¶ {objdir}tutil.o ¶ {objdir}tdraw.o ¶ {objdir}click.o ¶ {objdir}key.o ¶ {objdir}edit.o ¶ {objdir}format.o ¶ {objdir}truler.o ¶ {objdir}tcntl.o Objs2 = {objdir}pruler2.o ¶ {objdir}putil2.o ¶ {objdir}pobjutil2.o ¶ {objdir}tscrap.o ¶ {objdir}tutil2.o ¶ # {objdir}tdbg.o ¶ # {objdir}tdbg.o ¶ # {objdir}pdbg.o ¶ # {objdir}pdbg.o Objs3 = {objdir}pscrap.o ¶ {objdir}strings.o ScrapDpndtObj = {objdir}pedit.o ¶ {objdir}pl.o #-------------------------------------------------------------------------------- # Main target {Linkfile} ÄÄ {Objs} {Makefile} @if "`newer {Makefile} {LinkFile}`"; ¶ @echo "# Creating {LinkFile} ¶É" @echo " -lseg:dynamic {Segment1} {Objs1} ¶¶" > {targ} @echo " -lseg:dynamic {Segment2} {Objs2} ¶¶" >> {targ} @echo " -lseg {Segment3} {Objs3} ¶¶" >> {targ} @else @touch {linkfile} @end # Global PL dependencies {Objs} Ä {GlobalIncludes} # Other PL dependencies {ScrapDpndtObj} Ä {AWGS}Scrap:Scrap.equ clean Ä @confirm "Delete {Module} objs and linkfile?" @if ({status} == 0) set foobar {exit} unset exit delete -y {awgs}{module}:src:Å.lst delete -y {Linkfile} delete -y {Objs} set exit {foobar} @end #-------------------------------------------------------------------------------- # Default rules .o Ä .s AsmIIGS {DepDir}{Default}.s -i {IncDir},{AWGS}Macros,{AWGS}Driver,{AWGS}Scrap -o {TargDir}{Default}.o {AsmIIGSOptions} {ObjDir} Ä {SrcDir}

BIN
appleworksgs/Pict/.DS_Store vendored Normal file

Binary file not shown.

1
appleworksgs/Pict/Pict.link Executable file
View File

@ -0,0 +1 @@
-lseg:dynamic PICT Source:AWGS:Pict:Obj:picture.aii.o Source:AWGS:Pict:Obj:fliprot.aii.o Source:AWGS:Pict:Obj:region.aii.o Source:AWGS:Pict:Obj:pixels.aii.o Source:AWGS:Pict:Obj:text.aii.o Source:AWGS:Pict:Obj:misc.aii.o

1
appleworksgs/Pict/Pict.make Executable file
View File

@ -0,0 +1 @@
# # Pict.make - Makefile for Pict # # Copyright © 1989, Claris Corporation. # # This is a sub-makefile, called recursively when ::AppleWorks.make is # executed. # # All modules (including Driver, Scrap, Pict., SS, DB, etc.) # should have similar makefiles in their respective folders. # # This makefile rebuilds the module object files as necessary and creates a # file containing the necessary steps to link this module with the rest of # AppleWorksGS. ::AppleWorks.make combines the link files from the modules # into a script which it executes to create an executable. #-------------------------------------------------------------------------------- # Variables AsmIIGSOptions = Segment1 = PICT Module = Pict ModuleDir = {AWGS}{Module}: SrcDir = {ModuleDir}Src: IncDir = {ModuleDir} ObjDir = {ModuleDir}Obj: Linkfile = {ModuleDir}{Module}.link Makefile = {ModuleDir}{Module}.make GlobalIncludes = {IncDir}Pict.equ ¶ {AWGS}Driver:Driver.equ GlobalMacros = {AWGS}Macros:Macros.dump Objs = {ObjDir}picture.aii.o ¶ {ObjDir}fliprot.aii.o ¶ {ObjDir}region.aii.o ¶ {ObjDir}pixels.aii.o ¶ {ObjDir}text.aii.o ¶ {ObjDir}misc.aii.o #-------------------------------------------------------------------------------- # Main target {Linkfile} ÄÄ {Objs} {Makefile} @echo "Creating {LinkFile} ¶É" @echo " -lseg:dynamic {Segment1} {Objs} ¶¶" > {Targ} # Global Pict dependencies {Objs} Ä {GlobalIncludes} {GlobalMacros} clean Ä @confirm "Delete {Module} objs and linkfile?" @if {status} == 0 then rm {Linkfile} {Objs} @end #-------------------------------------------------------------------------------- # Default rules .aii.o Ä .aii AsmIIGS -i {AWGS}Macros,{AWGS}Driver,{AWGS}Pict {DepDir}{Default}.aii -o {TargDir}{Default}.aii.o {AsmIIGSOptions} {ObjDir} Ä {SrcDir}

View File

@ -0,0 +1 @@
LOAD 'Macros.dump' INCLUDE 'Pict.equ' INCLUDE 'Driver.equ' IMPORT Q_FlipHMap IMPORT Q_FlipVMap IMPORT Q_RotLMap IMPORT Q_RotRMap **************************************************************** * ; * Picture flipping and rotating routines ; * Jeff G. Erickson ; * ; **************************************************************** **************************************************************** Q_PictData PROC EXPORT EXPORT Q_picterr EXPORT Q_gotPScomm EXPORT Q_op EXPORT Q_center EXPORT Q_addbytes EXPORT Q_pictSCB EXPORT Q_thePnSize EXPORT Q_theMask EXPORT Q_thePnLoc EXPORT Q_theFGcolor EXPORT Q_theBGcolor EXPORT Q_theTxFont EXPORT Q_theTxMode EXPORT Q_theChExtra EXPORT Q_theSpExtra EXPORT Q_theFontFlags EXPORT Q_theTxLoc EXPORT Q_txtPort EXPORT Q_txtPortLoc EXPORT Q_txtSCB EXPORT Q_txtImage EXPORT Q_txtWidth EXPORT Q_txtBounds EXPORT Q_txtHandle EXPORT Q_txtHsize EXPORT Q_txtRect EXPORT Q_pixSCB EXPORT Q_pixbounds EXPORT Q_srcpixsize EXPORT Q_dstpixsize EXPORT Q_PixelTable EXPORT Q_printsquare EXPORT Q_square EXPORT Q_half Q_picterr DS.B 2 Q_gotPScomm DC.W 0 *--------------------------------------------------------------* * Picture stuff ; *--------------------------------------------------------------* Q_op DS.B 2 ; current picture opcode Q_center DS.B 4 ; TWICE the Q_center of the picture Q_addbytes DS.B 4 ; how many bytes to add to the pict? Q_pictSCB DS.B 2 ; picture's original SCB Q_thePnSize DS.B 4 ; current pen size w/i the D_New picture Q_theMask DS.B 8 ; ... pen Q_Mask ... Q_thePnLoc DS.B 4 ; current pen location w/i OLD picture *--------------------------------------------------------------* * Q_Text stuff ; *--------------------------------------------------------------* Q_theFGcolor DS.B 2 ; ... foreground color ... Q_theBGcolor DS.B 2 ; ... background color ... Q_theTxFont DS.B 4 ; ... font ID ... Q_theTxMode DS.B 2 ; ... Q_Text mode ... Q_theChExtra DS.B 4 ; ... charExtra ... Q_theSpExtra DS.B 4 ; ... spaceExtra ... Q_theFontFlags DS.B 2 ; ... font flags ... Q_theTxLoc DS.B 4 ; ... the Q_Text location ... Q_txtPort DS.B 170 ; Q_Text port Q_txtPortLoc ; ; Q_Text port loc Q_txtSCB DS.B 2 ; SCB Q_txtImage DS.B 4 ; pointer to Q_Text image Q_txtWidth DS.B 2 ; byte width of Q_Text image (mult. of 8) Q_txtBounds DS.B 8 ; bounds of Q_Text image (adj'd to width) Q_txtHandle DS.B 4 ; handle on Q_Text image (ptr to Q_txtImage) Q_txtHsize DS.B 4 ; size of Q_txtHandle Q_txtRect DS.B 8 ; REAL bounds of Q_Text image *--------------------------------------------------------------* * Pixelmap stuff ; *--------------------------------------------------------------* Q_pixSCB DS.B 2 ; pixmap's scan-Q_Line control byte Q_pixbounds DS.B 4 ; bottom right of (old) bounds Q_srcpixsize DS.B 4 ; size (bytes) of source pixmap Q_dstpixsize DS.B 4 ; size (bytes) of detination pixmap Q_PixelTable ; ; routines for mangling pixmaps DC.L Q_FlipHMap DC.L Q_FlipVMap DC.L Q_RotRMap DC.L Q_RotLMap *--------------------------------------------------------------* * Q_Region stuff ; *--------------------------------------------------------------* Q_printsquare DC.W 0,0,128,256 Q_square DC.W 0,0,128,128 Q_half DC.W 0,0,128,64 ENDP END

1
appleworksgs/Pict/Src/misc.aii Executable file
View File

@ -0,0 +1 @@
LOAD 'Macros.dump' INCLUDE 'Pict.equ' INCLUDE 'Driver.equ' IMPORT Q_printsquare IMPORT Q_square **************************************************************** * * Q_ManglePoint(srcpt:l,rectptr:l,what:w,prrec:l):dstpt:l * Flip/rotate a Q_Point around the Q_center of a rectangle. * srcpt and dstpt are values, not pointers. Everything * is done according to the print record prrec. * **************************************************************** Q_ManglePoint PROC EXPORT ;Using Q_PictData input srcpt:l,rectptr:l,who:w,prrec:l output dstpt:l local middle:l,prptr:l begin +b movelong [rectptr],myrect movelong [rectptr]:#4,myrect+4 cmpl prrec,#0 beq nomap movelong [prrec],prptr movelong [prptr]:#4,Q_printsquare+4 pushlong #myrect pushlong #Q_printsquare pushlong #Q_square _MapRect pushlong !srcpt pushlong #Q_printsquare pushlong #Q_square _MapPt nomap addword myrect,myrect+4,middle addword myrect+2,myrect+6,middle+2 jtl trashPt,who cmpl prrec,#0 beq nomap2 pushlong !srcpt pushlong #Q_square pushlong #Q_printsquare _MapPt nomap2 movelong srcpt,dstpt return trashPt DC.L h_pt DC.L v_pt DC.L r_pt DC.L l_pt *--------------------------------------------------------------* h_pt lda middle+2 ; H-flip the Q_Point around middle.x sec sbc srcpt+2 sta srcpt+2 rtl *--------------------------------------------------------------* v_pt lda middle ; V-flip the Q_Point around middle.y sec sbc srcpt sta srcpt rtl *--------------------------------------------------------------* ; ; NOTE: The reason behind adding the last bit of either middle or ; middle+2 in the calculations below is to prevent the Q_Point ; from creeping up and/or to the left when (middle)+(middle+2) ; is odd. Trust me. It works. ; -- jge, 1/20/88 ; r_pt lda middle+2 ; R-rotate the Q_Point around middle and #1 ; <adjust for creep> clc adc middle+2 ; pt.x <= -(pt.y - middle.y) + middle.x adc middle sta dstpt ; (divide middle by 2, preserving asl dstpt ; the sign) ror a ; sec sbc srcpt tax ; D_Save it here... lda middle ; pt.y <= pt.x - middle.x + middle.y and #1 ; <adjust for creep> clc adc middle sec sbc middle+2 sta dstpt ; (divide middle by 2, preserving asl dstpt ; the sign) ror a ; clc adc srcpt+2 sta srcpt stx srcpt+2 ; ...and store it here. r_ptdone rtl *--------------------------------------------------------------* l_pt lda middle ; L-rotate the Q_Point around middle and #1 ; <adjust for creep> clc adc middle ; pt.y <= -(pt.x - middle.x) + middle.y adc middle+2 sta dstpt ; (divide middle by 2, preserving asl dstpt ; the sign) ror a ; sec sbc srcpt+2 tay ; D_Save it here... lda middle+2 ; pt.x <= pt.y - middle.y + middle.x and #1 ; <adjust for creep> clc adc middle+2 sec sbc middle sta dstpt ; (divide middle by 2, preserving asl dstpt ; the sign) ror a ; clc adc srcpt sta srcpt+2 sty srcpt ; ...and store it here. l_ptdone rtl *--------------------------------------------------------------* myrect DS.B 8 ENDP END

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
appleworksgs/Pict/Src/text.aii Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/Pict/pict.equ Executable file
View File

@ -0,0 +1 @@
;------------------------------------------ ; ; Equates from procedure Q_PictData ; ;------------------------------------------ Q_fliph equ 0 Q_flipv equ 1 Q_rotr equ 2 Q_rotl equ 3 Q_BadPictData equ $A501 ; Error code: illegal picture data

1
appleworksgs/SS/SS.equ Executable file

File diff suppressed because one or more lines are too long

1
appleworksgs/SS/SS.link Executable file
View File

@ -0,0 +1 @@
-lseg{Kind} SS Source:AWGS:SS:Obj:Data.aii.o Source:AWGS:SS:Obj:SS.aii.o Source:AWGS:SS:Obj:FileIO.aii.o Source:AWGS:SS:Obj:Edit.aii.o Source:AWGS:SS:Obj:Edit2.aii.o Source:AWGS:SS:Obj:Undo.aii.o Source:AWGS:SS:Obj:Move.aii.o Source:AWGS:SS:Obj:Move2.aii.o Source:AWGS:SS:Obj:Move3.aii.o Source:AWGS:SS:Obj:Sort.aii.o Source:AWGS:SS:Obj:Format.aii.o Source:AWGS:SS:Obj:Options.aii.o Source:AWGS:SS:Obj:DataMenu.aii.o Source:AWGS:SS:Obj:Update.aii.o Source:AWGS:SS:Obj:Draw.aii.o Source:AWGS:SS:Obj:Draw2.aii.o Source:AWGS:SS:Obj:Mouse.aii.o Source:AWGS:SS:Obj:Key.aii.o Source:AWGS:SS:Obj:Misc.aii.o Source:AWGS:SS:Obj:Cells.aii.o Source:AWGS:SS:Obj:Cells2.aii.o Source:AWGS:SS:Obj:CellEdit.aii.o Source:AWGS:SS:Obj:CellEval.aii.o Source:AWGS:SS:Obj:Eval2.aii.o Source:AWGS:SS:Obj:Dlog.aii.o -lseg{Kind} SS2 Source:AWGS:SS:Obj:Misc2.aii.o Source:AWGS:SS:Obj:Dlog2.aii.o Source:AWGS:SS:Obj:Chart.aii.o Source:AWGS:SS:Obj:Pie.aii.o Source:AWGS:SS:Obj:Bar.aii.o Source:AWGS:SS:Obj:ChartData.aii.o

1
appleworksgs/SS/SS.make Executable file
View File

@ -0,0 +1 @@
# # SS.make - Makefile for SS # # Copyright © 1989, Claris Corporation. # # This is a sub-makefile, called recursively when ::AppleWorks.make is # executed. # # All modules (including Driver, Scrap, Pict., SS, DB, etc.) # should have similar makefiles in their respective folders. # # This makefile rebuilds the module object files as necessary and creates a # file containing the necessary steps to link this module with the rest of # AppleWorksGS. ::AppleWorks.make combines the link files from the modules # into a script which it executes to create an executable. #-------------------------------------------------------------------------------- # Variables AsmIIGSOptions = -i {IncDir},{AWGS}Macros,{AWGS}Driver,{AWGS}Heap,{AWGS}Eval # -d Profile,ProfileNumber=13 Segment1 = SS Segment2 = SS2 Module = SS ModuleDir = {AWGS}{Module}: SrcDir = {ModuleDir}Src: IncDir = {ModuleDir} ObjDir = {ModuleDir}Obj: Linkfile = {ModuleDir}{Module}.link Makefile = {ModuleDir}{Module}.make GlobalIncludes = {IncDir}SS.equ ¶ {AWGS}Driver:Driver.equ ¶ {AWGS}Heap:Heap.aii.i GlobalMacros = {AWGS}Macros:Macros.dump ¶ {AWGS}Macros:M16.Profile ¶ Objs = {Objs1} {Objs2} Objs1 = {ObjDir}Data.aii.o ¶ {ObjDir}SS.aii.o ¶ {ObjDir}FileIO.aii.o ¶ {ObjDir}Edit.aii.o ¶ {ObjDir}Edit2.aii.o ¶ {ObjDir}Undo.aii.o ¶ {ObjDir}Move.aii.o ¶ {ObjDir}Move2.aii.o ¶ {ObjDir}Move3.aii.o ¶ {ObjDir}Sort.aii.o ¶ {ObjDir}Format.aii.o ¶ {ObjDir}Options.aii.o ¶ {ObjDir}DataMenu.aii.o ¶ {ObjDir}Update.aii.o ¶ {ObjDir}Draw.aii.o ¶ {ObjDir}Draw2.aii.o ¶ {ObjDir}Mouse.aii.o ¶ {ObjDir}Key.aii.o ¶ {ObjDir}Misc.aii.o ¶ {ObjDir}Cells.aii.o ¶ {ObjDir}Cells2.aii.o ¶ {ObjDir}CellEdit.aii.o ¶ {ObjDir}CellEval.aii.o ¶ {ObjDir}Eval2.aii.o ¶ {ObjDir}Dlog.aii.o Objs2 = {ObjDir}Misc2.aii.o ¶ {ObjDir}Dlog2.aii.o ¶ {ObjDir}Chart.aii.o ¶ {ObjDir}Pie.aii.o ¶ {ObjDir}Bar.aii.o ¶ {ObjDir}ChartData.aii.o #-------------------------------------------------------------------------------- # Main target {Linkfile} ÄÄ {Objs} {Makefile} @if "`newer {Makefile} {LinkFile}`" @echo "Creating {LinkFile} ¶É" @echo " -lseg¶{Kind¶} {Segment1} {Objs1} ¶¶" > {Targ} @echo " -lseg¶{Kind¶} {Segment2} {Objs2} ¶¶" >> {Targ} @else @touch {Linkfile} @end # SS dependencies {Objs} Ä {GlobalIncludes} {GlobalMacros} {ObjDir}Data.aii.o ¶ {ObjDir}CellEdit.aii.o ¶ {ObjDir}CellEval.aii.o ¶ {ObjDir}Cells2.aii.o ¶ {ObjDir}Move.aii.o ¶ {ObjDir}Move2.aii.o ¶ {ObjDir}Move3.aii.o ¶ {ObjDir}Undo.aii.o ¶ {ObjDir}SS.aii.o Ä {Makefile} {ObjDir}CellEval.aii.o ¶ {ObjDir}CellEdit.aii.o ¶ {ObjDir}Cells2.aii.o ¶ {ObjDir}Dlog2.aii.o ¶ {ObjDir}Draw.aii.o ¶ {ObjDir}Edit.aii.o ¶ {ObjDir}Eval2.aii.o ¶ {ObjDir}Misc.aii.o ¶ {ObjDir}Misc2.aii.o ¶ {ObjDir}Move.aii.o ¶ {ObjDir}Move2.aii.o ¶ {ObjDir}Move3.aii.o ¶ {ObjDir}SS.aii.o Ä {AWGS}Eval:Eval.aii.i clean Ä @confirm "Delete {Module} objs and linkfile?" @if {status} == 0 then rm {Linkfile} {Objs} @end #-------------------------------------------------------------------------------- # Default rules .aii.o Ä .aii AsmIIGS {DepDir}{Default}.aii -o {TargDir}{Default}.aii.o {AsmIIGSOptions} {ObjDir} Ä {SrcDir}

Some files were not shown because too many files have changed in this diff Show More