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 >
Wrap
Assembly Source File
|
2022-10-26
|
3KB
|
111 lines
E
_*********************************************************
_* *
_* MODULE NAME : run.asm *
_* *
_* mAINTENANCE LOG *
_* --------------- *
_* *
_* DATE TIME ACTION *
_* ---- ---- ------ *
_* 24/02/89 00:30 INITIAL CODING *
_* 28/03/89 22:35 UPDATE MESSAGE NO. *
_* 12/05/89 16:30 UPDATED 0 - 1 PRG RUNNING LOGIC *
_* 19/05/89 20:20 MAJOR UPDATE TO THE EXECUTION *
_* OF THE FIRST PROGRAM *
_* 18/06/89 19:00 PLACE INFO STRAIGHT ON STACK *
_* 05/07/89 22:00 PAGE 0 AND 1 NOW IN ANY RAM BLK *
_*********************************************************
_*********************************************************
_* *
_* ROUTINE : run - STARTS A PROGRAM EXECUTING *
_* *
_* ENTRY *
_* ----- *
_* charbuff - COMMAND BUFFER WITH COMMAND AND NAME *
_* y - POINTER IN CHARACTER BUFFER *
_*.......................................................*
_* USED *
_* ---- *
_* a,y *
_*.......................................................*
_* EXIT *
_* ---- *
_* NONE *
_*********************************************************
RUNEQU *
READNAME_ GET NAME OF PROGRAM
LOCNAME_ LOCATE NAME IN TABLE
RUNIT_ IF FOUND, RUN IT
_ PROGRAM NOT FOUND, DISPLAY MESSAGE
#2
DISPMESS
RUNITEQU *
#FLAG
#PRGRUN_ SET PROGRAM TO RUNNING IN TABLE
{CBM-P} [TABPNTR],Y
_ SPECIAL ENTRY FROM THE LOADER ROUTINE
LOADRUNEQU *_ LOADER HAS ALREADY SET THE FLAG
PROGRUN
PROGRUN
#1
SPECPROG
NOTSPEC
_ wE HAVE ONE PROGRAM RUNNING, SO THIS IS THE PROGRAM WE RETURN TO.
SPECPROGEQU *
TABPNTR
{CBM-P} CURRENT
TABPNTR+1
{CBM-P} CURRENT+1 _ SET THIS PROGRAM TO THE CURRENT ON
_
_ tHE pROGRAM INTERRUPTED WAS THE LOOPING PROGRAM WHICH RUNS WITH THE SYSTEM
_ STACK.
_
_
_ pUT NEW INFORMATION ON THE SAVED STACK INFORMATION, SO AS TO SIMULATE
_ THE PROGRAM WE WANT TO RUN HAD BEEN INTERRUPTED
_
RUNCURREQU *
#ONERAM_ POINT TO PRG'S STACK
[CURRENT],Y
{CBM-P} SAVEP1H_ CHANGED THE SAVED ADDRESS OF
#ONEOFF_ INTERRUPTED STACK ADDRESS
[CURRENT],Y
{CBM-P} SAVEP1L
#REGSP
[TABPNTR],Y
{CBM-P} SAVESTK
_
_ SET PAGE 0 FOR nmi RETURN ROUTINE. nOTE THAT pAGE 1 HAS ALREADY BEEN SET
_ bY THE LOADER WHEN THE PROGRAM IS FIRST LOADED.
_
#ZERORAM
[CURRENT],Y
{CBM-P} SAVEP0H
#ZEROOFF
[CURRENT],Y
{CBM-P} SAVEP0L
NOTSPECEQU *
{CBM-N}
iend