mirror of
https://github.com/nathanriggs/AppleIIAsm-Collection.git
synced 2024-12-02 12:52:03 +00:00
c8cac53c5e
Massive updates that changes the way most subroutines are handled. Major bugfixes, various utilities added, started higher-level libraries.
152 lines
3.7 KiB
Plaintext
152 lines
3.7 KiB
Plaintext
********************************
|
|
* *
|
|
* MAKEEXEC *
|
|
* *
|
|
* CREATES AN EXEC FILE THAT *
|
|
* RUNS A BINARY. NECESSARY FOR *
|
|
* ANY FILE OPERATIONS. *
|
|
* *
|
|
* NOTE THAT IRONICALLY, THIS *
|
|
* PROGRAM ITSELF HAS TO BE RUN *
|
|
* THROUGH AN EXEC FILE... *
|
|
* *
|
|
********************************
|
|
*
|
|
** ASSEMBLER DIRECTIVES
|
|
*
|
|
CYC AVE
|
|
EXP ONLY ; TURN OFF LATER
|
|
DSK MAKEEXEC
|
|
TR ON
|
|
OBJ $BFE0
|
|
ORG $6000
|
|
*
|
|
********************************
|
|
* *
|
|
* HEADER, HOOKS AND MACROS *
|
|
* *
|
|
********************************
|
|
*
|
|
PUT MIN.VARS.REQUIRED
|
|
USE MIN.MAC.STRINGS
|
|
USE MIN.MAC.REQUIRED
|
|
USE MIN.MAC.FILEIO
|
|
USE MIN.MAC.STDIO
|
|
PUT MIN.HOOKS.REQUIRED
|
|
PUT MIN.HOOKS.STDIO
|
|
PUT MIN.HOOKS.FILEIO
|
|
PUT MIN.HOOKS.STRINGS
|
|
*
|
|
********************************
|
|
* *
|
|
* CONSTANT DECLARATIONS *
|
|
* *
|
|
********************************
|
|
*
|
|
*
|
|
********************************
|
|
* *
|
|
* MAIN PROGRAM LOOP *
|
|
* *
|
|
********************************
|
|
*
|
|
JSR HOME
|
|
PRN "************************",8D
|
|
PRN "* *",8D
|
|
PRN "* EXEC FILE MAKER FOR *",8D
|
|
PRN "* BINARY PROGRAMS THAT *",8D
|
|
PRN "* USE APPLESOFT. *",8D
|
|
PRN "* * ",8D
|
|
PRN "************************",8D8D8D
|
|
*
|
|
PRN "BIN FILENAME: "
|
|
INP
|
|
LDA RETLEN
|
|
GRET BNAME ; TRANSFER RETURN TO BNAME
|
|
*
|
|
PRN "BIN STARTING ADDRESS: "
|
|
INP
|
|
LDA RETLEN
|
|
GRET BLOC
|
|
*
|
|
SCAT "GO.";BNAME;#20 ; PREFIX NAME WITH GO.
|
|
*
|
|
GRET TNAME ; STORE RESULTING STRING IN TNAME
|
|
*
|
|
PRN " ",8D
|
|
PRN "BUILDING FILE: "
|
|
SPRN TNAME
|
|
PRN " ",8D8D
|
|
*
|
|
** OPEN FILE FOR WRITING
|
|
*
|
|
SCAT "OPEN ";TNAME;#255
|
|
CMD RETURN
|
|
SCAT "WRITE ";TNAME;#255
|
|
CMD RETURN
|
|
*
|
|
** PRINT TO FILE
|
|
*
|
|
SCAT "BLOAD ";BNAME;#255
|
|
FPRN RETURN
|
|
LDA #$8D
|
|
JSR FCOUT
|
|
FPRN "CALL -151"
|
|
SCAT BLOC;"G";#255
|
|
FPRN RETURN
|
|
*
|
|
** CLOSE FILE
|
|
*
|
|
SCAT "CLOSE ";TNAME;#255
|
|
CMD RETURN
|
|
*
|
|
PRN "DONE!",8D8D
|
|
JMP REENTRY
|
|
*
|
|
********************************
|
|
* *
|
|
* VARIABLES *
|
|
* *
|
|
********************************
|
|
*
|
|
BNAME DS 20
|
|
TNAME DS 20
|
|
BLOC DS 10
|
|
LINE DS 40
|
|
HEAD ASC "REM ** THIS FILES BLOADS",8D
|
|
ASC "REM ** A BINARY PROGRAM INTO",8D
|
|
ASC "REM ** MEMORY THEN EXECUTES IT",8D
|
|
ASC "REM ** VIA THE MONITOR. THIS IS",8D
|
|
ASC "REM ** NECESSARY FOR CERTAIN ",8D
|
|
ASC "REM ** EXECUTABLES THAT USE APPLESOFT",8D
|
|
ASC "REM ** ROUTINES.",8D
|
|
ASC "REM **",8D00
|
|
*
|
|
********************************
|
|
* *
|
|
* LOW-LEVEL ROUTINES *
|
|
* *
|
|
********************************
|
|
*
|
|
PUT MIN.LIB.REQUIRED
|
|
*
|
|
** INDIVIDUAL SUBROUTINES
|
|
*
|
|
*** FILEIO
|
|
*
|
|
PUT MIN.SUB.FPRINT
|
|
PUT MIN.SUB.DOSCMD
|
|
PUT MIN.SUB.FPSTR
|
|
*
|
|
*** STDIO
|
|
*
|
|
PUT MIN.SUB.DPRINT
|
|
PUT MIN.SUB.XPRINT
|
|
PUT MIN.SUB.SINPUT
|
|
*
|
|
*** STRINGS
|
|
*
|
|
PUT MIN.SUB.STRCAT
|
|
PUT MIN.SUB.PRNSTR
|
|
*
|