home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Set of Apple II Hard Drive Images
/
eric.hdv
/
SOURCE
/
ML.INTEGRATOR.txt
< prev
next >
Wrap
Text File
|
2020-08-13
|
3KB
|
121 lines
;*==============================================================
;* ML.INTEGRATOR - integrates basic pgm and ml code @ $804
;* from NIBBLE, April 1990, (c) 1990 Stephen M. Hall, Mindcraft
;*==============================================================
;
ORG $0801
;
TXTTAB EQU $67
BUF EQU $200
DOSVEC EQU $3D0
RUN EQU $D566
;
;*===========*
;* SECTION 1 *
;*===========*
;
BGN JMP STARTUP ; *** SEE SECTION 4 ***
;
;*===========================================*
;* YOUR MACHINE LANGUAGE SUBROUTINES GO HERE *
;*===========================================*
;
;
;
;
;*===========*
;* SECTION 2 *
;*===========*
;this can be called at end of BASIC program using CALL 2049
;
QUIT LDA #<BGN
STA TXTTAB+1
LDA #>BGN
STA TXTTAB
LDA #$00
STA BGN
STA BGN+1
STA BGN+2
JMP DOSVEC
;
;*===========*
;* SECTION 3 *
;*===========*
;this section gets written over by your BASIC program
;only used if running under DOS 3.3 - it is a one line program
;
PGRM BRK
DW PGRM1
DW $000A
DFB $BA ;TOKEN FOR PRINT
DFB $22,$04 ;"ctrl-D
;
;*** EDASM SETS HI BIT OF ASCII CHARACTERS - WE'LL GET RID OF THEM LATER
RUNCMD ASC 'RUN '
ASC 'PROGRAM.NAME' ;CHANGE TO YOUR BASIC PGM NAME
;
DFB $00 ;MARKER FOR END OF STATEMENT
PGRM1 BRK
BRK
;
;*===========*
;* SECTION 4 *
;*===========*
;set up ptrs to new program and vector to quit exit
;
STARTUP LDA #<PGRM+1
STA TXTTAB+1
LDA #>PGRM+1
STA TXTTAB
LDA #<QUIT
STA BGN+2
LDA #>QUIT
STA BGN+1
;
; you can add extra stuff here
; ex: &vectors, reset vectors, interface initialization, welcome message
;
;*===========*
;* SECTION 5 *
;*===========*
;used to run the basic program from PRODOS - setup filename at bottom
;
LDA $BF00
CMP #$4C
BNE NOPRODOS
LDX CMD
INX
LDA #$8D
STR STA BUF-1,X
DEX
BMI RUNPRO
LDA CMD,X
JMP STR
;
RUNPRO JSR $BE03 ;BI VECTOR
LDA $BE0F ;IF ERROR
JSR $BE0C ;PRINT MSG
RTS
;
; ***================================***
; *** SET UP PRODOS RUN COMMAND HERE ***
; ***================================***
;
CMD DFB 16 ; LENGTH OF STRING BELOW
ASC 'RUN PROGRAM.NAME' ; (EDASM SETS HI BITS FOR US)
;
; ***-----------------***
; *** DOS 3.3 ROUTINE ***
; ***-----------------***
NOPRODOS LDX #$00 ;FOR DOS 3.3, CONVERT PGM NAME TO
ASCLOOP LDA RUNCMD,X ;ASCII WITH HI BIT CLEAR.
BEQ RUNIT
AND #$7F
STA RUNCMD,X
INX
BNE ASCLOOP
;
RUNIT JMP RUN
BRK
;