home *** CD-ROM | disk | FTP | other *** search
/ Commodore Disk User Volume 4 #2 / Commodore_Disk_User_Vol.4_2_1990_-.d64 / runv1.4.asm < prev    next >
Assembly Source File  |  2022-10-26  |  3KB  |  111 lines

  1. E
  2. _*********************************************************
  3. _*                                                       *
  4. _*       MODULE NAME : run.asm                           *
  5. _*                                                       *
  6. _*                mAINTENANCE LOG                        *
  7. _*                ---------------                        *
  8. _*                                                       *
  9. _*   DATE      TIME                     ACTION           *
  10. _*   ----      ----                     ------           *
  11. _* 24/02/89    00:30               INITIAL CODING        *
  12. _* 28/03/89    22:35               UPDATE MESSAGE NO.    *
  13. _* 12/05/89    16:30    UPDATED 0 - 1 PRG RUNNING LOGIC  *
  14. _* 19/05/89    20:20    MAJOR UPDATE TO THE EXECUTION    *
  15. _*                      OF THE FIRST PROGRAM             *
  16. _* 18/06/89    19:00    PLACE INFO STRAIGHT ON STACK     *
  17. _* 05/07/89    22:00    PAGE 0 AND 1 NOW IN ANY RAM BLK  *
  18. _*********************************************************
  19.  
  20.  
  21. _*********************************************************
  22. _*                                                       *
  23. _*       ROUTINE : run - STARTS A PROGRAM EXECUTING      *
  24. _*                                                       *
  25. _*   ENTRY                                               *
  26. _*   -----                                               *
  27. _*   charbuff - COMMAND BUFFER WITH COMMAND AND NAME     *
  28. _*   y        - POINTER IN CHARACTER BUFFER              *
  29. _*.......................................................*
  30. _*   USED                                                *
  31. _*   ----                                                *
  32. _*   a,y                                                 *
  33. _*.......................................................*
  34. _*   EXIT                                                *
  35. _*   ----                                                *
  36. _*   NONE                                                *
  37. _*********************************************************
  38.  
  39. RUNEQU *
  40.  READNAME_ GET NAME OF PROGRAM
  41.  LOCNAME_ LOCATE NAME IN TABLE
  42.  RUNIT_ IF FOUND, RUN IT
  43.  
  44. _ PROGRAM NOT FOUND, DISPLAY MESSAGE
  45.  
  46.  #2
  47.  DISPMESS    
  48.  
  49. RUNITEQU *
  50.  #FLAG
  51.  #PRGRUN_ SET PROGRAM TO RUNNING IN TABLE
  52. {CBM-P} [TABPNTR],Y
  53.  
  54. _ SPECIAL ENTRY FROM THE LOADER ROUTINE
  55.  
  56. LOADRUNEQU *_ LOADER HAS ALREADY SET THE FLAG
  57.  PROGRUN
  58.  PROGRUN
  59.  #1
  60.  SPECPROG
  61.  NOTSPEC
  62.  
  63. _ wE HAVE ONE PROGRAM RUNNING, SO THIS IS THE PROGRAM WE RETURN TO.
  64.  
  65. SPECPROGEQU *
  66.  TABPNTR
  67. {CBM-P} CURRENT
  68.  TABPNTR+1
  69. {CBM-P} CURRENT+1 _ SET THIS PROGRAM TO THE CURRENT ON
  70. _
  71. _ tHE pROGRAM INTERRUPTED WAS THE LOOPING PROGRAM WHICH RUNS WITH THE SYSTEM
  72. _ STACK.  
  73. _
  74.  
  75. _
  76. _ pUT NEW INFORMATION ON THE SAVED STACK INFORMATION, SO AS TO SIMULATE  
  77. _ THE PROGRAM WE WANT TO RUN HAD BEEN INTERRUPTED                        
  78. _
  79.  
  80. RUNCURREQU *
  81.  #ONERAM_ POINT TO PRG'S STACK
  82.  [CURRENT],Y
  83. {CBM-P} SAVEP1H_ CHANGED THE SAVED ADDRESS OF
  84.  #ONEOFF_ INTERRUPTED STACK ADDRESS
  85.  [CURRENT],Y
  86. {CBM-P} SAVEP1L
  87.  #REGSP
  88.  [TABPNTR],Y
  89. {CBM-P} SAVESTK
  90.  
  91.  
  92. _ SET PAGE 0 FOR nmi RETURN ROUTINE. nOTE THAT pAGE 1 HAS ALREADY BEEN SET
  93. _ bY THE LOADER WHEN THE PROGRAM IS FIRST LOADED.
  94. _
  95.  
  96.  
  97.  #ZERORAM
  98.  [CURRENT],Y
  99. {CBM-P} SAVEP0H
  100.  #ZEROOFF
  101.  [CURRENT],Y
  102. {CBM-P} SAVEP0L
  103.  
  104.  
  105. NOTSPECEQU *
  106. {CBM-N}
  107.  
  108. iend
  109.  
  110.