view level2/modules/kernel/fgprocp.asm @ 2758:e4a0f58a5f9b

Found that people who do not have the envirornment variable NITROS9DIR set before building the project get a error missing file "/rules.mak". Found this is caused do to the fact that the code to set this envirornment variable is in the rules.mak which can't get loaded. To fix this the code needed to set the envirornment variable that is in the rules.mak is now in the makefile(s) right before the include for the rules.mak file. This should fix the problem for those who do not have the NITROS9DIR envirornment variable preset.
author drencor-xeen
date Mon, 14 Jan 2013 14:37:46 -0600
parents 1da8ab9ba433
children 039ddb7c8ad7
line wrap: on
line source

**************************************************
* System Call: F$GProcP
*
* Function: Get process pointer
*
* Input:  A = Process ID
*
* Output: Y = Pointer to process descriptor
*
* Error:  CC = C bit set; B = error code
*
FGProcP  lda   R$A,u        get process #
         bsr   L0B2E        Get ptr to process descriptor
         bcs   L0B2D        If error, exit with it
         sty   R$Y,u        Save ptr in caller's Y
L0B2D    rts                Return

* Entry: A=Process #
* Exit:  Y=Ptr to process descriptor
*  All others preserved
L0B2E    pshs  d,x          Preserve regs
         ldb   ,s           Get process # into B
         beq   L0B40        0, skip ahead
         ldx   <D.PrcDBT    Get ptr to process descriptor block table
         abx                Point to specific process' entry
         lda   ,x           Get MSB of process dsc. ptr
         beq   L0B40        None there, exit with error
         clrb               Clear LSB of process dsc. ptr (always fall on $200
         tfr   d,y            boundaries) & move ptr to Y
         puls  d,x,pc       Restore regs & return

L0B40    puls  d,x          Get regs back
         comb               Exit with Bad process ID error
         ldb   #E$BPrcID
         rts