AppleIIAsm-Collection/source/d1_reqcommon/T.HEAD.REQUIRED
nathanriggs 9f35f32f67 Revision 0.5.0
- massive overhaul of architecture
- first round of optimizations
- first draft of the technical manual for the entire library
- reorganization of directory structure
2019-09-27 16:57:34 -04:00

85 lines
2.0 KiB
Plaintext

*
*``````````````````````````````*
* HEAD.REQUIRED *
* *
* THIS HEADER MUST BE THE *
* INCLUDED BEFORE ANY OTHER *
* CODE IN ORDER FOR THE PROPER *
* FUNCTIONING OF THE LIBRARY. *
* *
* AUTHOR: NATHAN RIGGS *
* CONTACT: NATHAN.RIGGS@ *
* OUTLOOK.COM *
* *
* DATE: 30-JUN-2019 *
* ASSEMBLER: MERLIN 8 PRO *
* OS: DOS 3.3 *
*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*
*
* VARIABLE DECLARATIONS ********
*
** JUMP TABLE SETUP. THIS IS FOR LOADING
** SUBROUTINES INTO MEMORY FOR ACCESS BY
** EXTERNAL EXECUTIONS. NOTE THAT THIS
** SHOULD ALWAYS START AT SECOND BYTE OF
** CODE IN THE PROGRAM SO THAT ITS
** LOCATION IN MEMORY IS EASILY KNOWN.
*
JUMPTBL JMP MAIN_START ; ** ALWAYS ** START WITH
; JUMP TO MAIN_START
DS 32 ; 16 MORE ENTRIES
*
** 20 BYTES FOR VARIABLES
*
VARTAB DS 20
*
** 256 BYTES DEDICATED TO RETURN
** VALUES OF VARIABLE LENGTH; CAN BE
** MODIFIED TO SUIT SMALLER OR LARGER
** NEEDS.
*
RETLEN DS 1 ; RETURN VALUE BYTE LENGTH
RETURN DS 256
*
** ADDRESS STORAGE LOCATIONS FOR
** INDIRECT ADDRESSING.
*
ADDR1 EQU $06 ; AND $07
ADDR2 EQU $08 ; AND $09
ADDR3 EQU $EB ; AND $EC
ADDR4 EQU $ED ; AND $EE
*
** SCRATCHPAD ZERO PAGE LOCATIONS AND
** DEDICATED ZERO PAGE ADDRESS TO HOLD
** A RETURN ADDRESS PASSED VIA THE STACK
*
SCRATCH EQU $19
SCRATCH2 EQU $1E
RETADR EQU $FE ; AND $FF
*
** ZERO PAGE ADDRESSES DEDICATED TO PASSING
** BACK RESULTS WHEN THERE ARE MORE THAN
** THREE BYTES BEING PASSED (AXY) AND THE
** USE OF THE STACK IS IMPRACTICAL OR TOO SLOW
*
RESULT EQU $FA
RESULT2 EQU $FC
*
** WORD AND BYTE PARAMETER SPACE USED
** BY APPLEIIASM MACROS
*
WPAR1 EQU $FA
WPAR2 EQU $FC
WPAR3 EQU $FE
BPAR1 EQU $EF
BPAR2 EQU $E3
BPAR3 EQU $1E
BPAR4 EQU $19
*
** VARIOUS HOOKS USED BY ALL ROUTINES
*
REENTRY EQU $3D0
*
MAIN_START
*