;*============================================================== ;* 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 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 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 ;