home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / eric.hdv / SOURCE / ML.INTEGRATOR.txt < prev    next >
Text File  |  2020-08-13  |  3KB  |  121 lines

  1. ;*==============================================================
  2. ;* ML.INTEGRATOR - integrates basic pgm and ml code @ $804
  3. ;* from NIBBLE, April 1990, (c) 1990 Stephen M. Hall, Mindcraft
  4. ;*==============================================================
  5. ;
  6.          ORG $0801
  7. ;
  8. TXTTAB   EQU $67
  9. BUF      EQU $200
  10. DOSVEC   EQU $3D0
  11. RUN      EQU $D566
  12. ;
  13. ;*===========*
  14. ;* SECTION 1 *
  15. ;*===========*
  16. ;
  17. BGN      JMP       STARTUP   ; *** SEE SECTION 4 ***
  18. ;
  19. ;*===========================================*
  20. ;* YOUR MACHINE LANGUAGE SUBROUTINES GO HERE *
  21. ;*===========================================*
  22. ;
  23. ;
  24. ;
  25. ;
  26. ;*===========*
  27. ;* SECTION 2 *
  28. ;*===========*
  29. ;this can be called at end of BASIC program using CALL 2049
  30. ;
  31. QUIT     LDA       #<BGN
  32.          STA       TXTTAB+1
  33.          LDA       #>BGN
  34.          STA       TXTTAB
  35.          LDA       #$00
  36.          STA       BGN
  37.          STA       BGN+1
  38.          STA       BGN+2
  39.          JMP       DOSVEC
  40. ;
  41. ;*===========*
  42. ;* SECTION 3 *
  43. ;*===========*
  44. ;this section gets written over by your BASIC program
  45. ;only used if running under DOS 3.3 - it is a one line program
  46. ;
  47. PGRM     BRK
  48.          DW        PGRM1
  49.          DW        $000A
  50.          DFB       $BA       ;TOKEN FOR PRINT
  51.          DFB       $22,$04   ;"ctrl-D
  52. ;
  53. ;*** EDASM SETS HI BIT OF ASCII CHARACTERS - WE'LL GET RID OF THEM LATER
  54. RUNCMD   ASC       'RUN '
  55.          ASC       'PROGRAM.NAME'      ;CHANGE TO YOUR BASIC PGM NAME
  56. ;
  57.          DFB       $00       ;MARKER FOR END OF STATEMENT
  58. PGRM1    BRK
  59.          BRK
  60. ;
  61. ;*===========*
  62. ;* SECTION 4 *
  63. ;*===========*
  64. ;set up ptrs to new program and vector to quit exit
  65. ;
  66. STARTUP  LDA       #<PGRM+1
  67.          STA       TXTTAB+1
  68.          LDA       #>PGRM+1
  69.          STA       TXTTAB
  70.          LDA       #<QUIT
  71.          STA       BGN+2
  72.          LDA       #>QUIT
  73.          STA       BGN+1
  74. ;
  75. ; you can add extra stuff here
  76. ; ex: &vectors, reset vectors, interface initialization, welcome message
  77. ;
  78. ;*===========*
  79. ;* SECTION 5 *
  80. ;*===========*
  81. ;used to run the basic program from PRODOS - setup filename at bottom
  82. ;
  83.          LDA       $BF00
  84.          CMP       #$4C
  85.          BNE       NOPRODOS
  86.          LDX       CMD
  87.          INX
  88.          LDA       #$8D
  89. STR      STA       BUF-1,X
  90.          DEX
  91.          BMI       RUNPRO
  92.          LDA       CMD,X
  93.          JMP       STR
  94. ;
  95. RUNPRO   JSR       $BE03     ;BI VECTOR
  96.          LDA       $BE0F     ;IF ERROR
  97.          JSR       $BE0C     ;PRINT MSG
  98.          RTS
  99. ;
  100. ; ***================================*** 
  101. ; *** SET UP PRODOS RUN COMMAND HERE ***
  102. ; ***================================***
  103. CMD      DFB       16                  ; LENGTH OF STRING BELOW
  104.          ASC       'RUN PROGRAM.NAME'  ; (EDASM SETS HI BITS FOR US)
  105. ;
  106. ; ***-----------------***
  107. ; *** DOS 3.3 ROUTINE ***
  108. ; ***-----------------***
  109. NOPRODOS LDX       #$00      ;FOR DOS 3.3, CONVERT PGM NAME TO 
  110. ASCLOOP  LDA       RUNCMD,X  ;ASCII WITH HI BIT CLEAR.
  111.          BEQ       RUNIT
  112.          AND       #$7F
  113.          STA       RUNCMD,X
  114.          INX
  115.          BNE       ASCLOOP
  116. ;
  117. RUNIT    JMP       RUN
  118.          BRK
  119. ;
  120.