1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2024-09-30 07:57:05 +00:00

Fix some formattig

This commit is contained in:
David Schmenk 2017-12-06 15:10:58 -08:00
parent 42a58938b9
commit 685e9f63b3

View File

@ -116,22 +116,22 @@ export def fbrInit(numPool)
fbrPool = heapalloc(fbrMax * 512 + 256)
if fbrPool
//
// Each fiber gets 256 bytes of stack and 256 bytes
// for frame (local) data - except fiber 0 uses original frame data
//
// Each fiber gets 256 bytes of stack and 256 bytes
// for frame (local) data - except fiber 0 uses original frame data
//
pool = fbrPool + 256
for i = fbrMax downto 1
if i < numPool
fbrState[i] = FIBER_FREE
fbrVMState[i] = pool
pool = pool + 512
fin
next
//
// Set fiber 0 to the RUNning fiber
//
fbrState = FIBER_RUN
fbrVMState = fbrPool
for i = fbrMax downto 1
if i < numPool
fbrState[i] = FIBER_FREE
fbrVMState[i] = pool
pool = pool + 512
fin
next
//
// Set fiber 0 to the RUNning fiber
//
fbrState = FIBER_RUN
fbrVMState = fbrPool
else
return -1
fin
@ -147,18 +147,18 @@ export def fbrStop(fid)
//
if fid
//
// Remove fiber from RUN list and tag as free
//
// Remove fiber from RUN list and tag as free
//
fbrState[fid] = FIBER_FREE
i = 0
while fbrNext[i] <> fid
i = fbrNext[i]
loop
fbrNext[i] = fbrNext[fid]
if fid == fbrRunning
fbrRunning = fbrNext[fbrRunning]
return fbrLoad(fbrVMState[fbrRunning])
fin
i = fbrNext[i]
loop
fbrNext[i] = fbrNext[fid]
if fid == fbrRunning
fbrRunning = fbrNext[fbrRunning]
return fbrLoad(fbrVMState[fbrRunning])
fin
fin
end
//
@ -179,40 +179,40 @@ export def fbrStart(defaddr, param)
for i = fbrMax downto 1
if fbrState[i] == FIBER_FREE
//
// Allocate fiber from pool
//
fbrState[i] = FIBER_RUN
vmstate = fbrVMState[i]
vmstate=>ifp = vmstate + 512
//
// Allocate fiber from pool
//
fbrState[i] = FIBER_RUN
vmstate = fbrVMState[i]
vmstate=>ifp = vmstate + 512
vmstate=>pp = vmstate + 512
//
// Set fiber parameters to fiber ID and passed-in value
//
//
// Set fiber parameters to fiber ID and passed-in value
//
vmstate->esp = $0E
vmstate->estklo.$0F = i
vmstate->estkhi.$0F = 0
vmstate->estklo.$0E = param.0 // param lo byte
vmstate->estkhi.$0E = param.1 // param hi byte
//
// Initialize stack to point to fiber def and fbrExit
// This allows a fiber to return and it will fall into fbrExit
//
vmstate->estklo.$0F = i
vmstate->estkhi.$0F = 0
vmstate->estklo.$0E = param.0 // param lo byte
vmstate->estkhi.$0E = param.1 // param hi byte
//
// Initialize stack to point to fiber def and fbrExit
// This allows a fiber to return and it will fall into fbrExit
//
vmstate->hwsp = $FB
vmstate=>$FE = @fbrExit - 1
vmstate=>$FC = defaddr - 1
//
// Link into RUN list
//
fbrNext[i] = fbrNext[fbrRunning]
fbrNext[fbrRunning] = i
//
// Return fiber ID (index)
//
return i
fin
next
return -1
//
// Link into RUN list
//
fbrNext[i] = fbrNext[fbrRunning]
fbrNext[fbrRunning] = i
//
// Return fiber ID (index)
//
return i
fin
next
return -1
end
//
// Round-robin schedule RUNning fibers
@ -226,7 +226,7 @@ export def fbrYield
if fbrNext[fbrRunning] <> fbrRunning
prev = fbrRunning
fbrRunning = fbrNext[fbrRunning]
return fbrSwap(fbrVMState[prev], fbrVMState[fbrRunning])
return fbrSwap(fbrVMState[prev], fbrVMState[fbrRunning])
fin
end
//
@ -240,17 +240,17 @@ export def fbrHalt
//
if fbrRunning
//
// Remove fiber from RUN list
//
// Remove fiber from RUN list
//
i = 0
while fbrNext[i] <> fbrRunning
i = fbrNext[i]
loop
fbrState[fbrRunning] = FIBER_HALT
fbrNext[i] = fbrNext[fbrRunning]
i = fbrRunning
fbrRunning = fbrNext[fbrRunning]
return fbrSwap(fbrVMState[i], fbrVMState[fbrRunning])
i = fbrNext[i]
loop
fbrState[fbrRunning] = FIBER_HALT
fbrNext[i] = fbrNext[fbrRunning]
i = fbrRunning
fbrRunning = fbrNext[fbrRunning]
return fbrSwap(fbrVMState[i], fbrVMState[fbrRunning])
fin
end
//
@ -259,11 +259,11 @@ end
export def fbrResume(fid)
if fbrState[fid] == FIBER_HALT
//
// Insert HALTed fiber back into RUN list
//
fbrState[fid] = FIBER_RUN
fbrNext[fid] = fbrNext[fbrRunning]
fbrNext[fbrRunning] = fid
// Insert HALTed fiber back into RUN list
//
fbrState[fid] = FIBER_RUN
fbrNext[fid] = fbrNext[fbrRunning]
fbrNext[fbrRunning] = fid
fin
end
@ -284,7 +284,7 @@ def fbrTest(fid, param)
for i = 1 to param
puth(fid); putc($0D)
fbrYield
fbrYield
next
end