1
0
mirror of https://github.com/livingcomputermuseum/Darkstar.git synced 2026-02-28 09:37:43 +00:00
Files
livingcomputermuseum.Darkstar/D/CP/Source/MoonTaskTc.mc,v
2023-09-27 16:17:41 -07:00

39 lines
5.4 KiB
Plaintext

head 1.1;
branch 1.1.1;
access ;
symbols start:1.1.1.1 Xerox:1.1.1;
locks ; strict;
comment @# @;
1.1
date 2001.08.12.22.22.12; author freier; state Exp;
branches 1.1.1.1;
next ;
1.1.1.1
date 2001.08.12.22.22.12; author freier; state Exp;
branches ;
next ;
desc
@@
1.1
log
@Initial revision
@
text
@{ Copyright (C) 1980 by Xerox Corporation. All rights reserved. }
SetTask[1];
StartAddress[Task1];
Task1: Noop,CANCELBR[$,0F], c1;
pCall1, c2;
R8¬R8 LRot0,XDisp ,CALL[DISPACH1], c3, at[0,10];
Task1C: Noop, at[0,10,DisRet1], c1;
R1 ¬R1-1,ZeroBr, c2;
BRANCH[Task1,Task1D], c3;
Task1D: DCtl ¬0, c1;
Noop, c2;
GOTO[Task1], c3;
SetTask[2];
StartAddress[Task2];
Task2: Noop,CANCELBR[$,0F], c1;
pCall2, c2;
R8¬R8 LRot0,XDisp ,CALL[DISPACH2], c3, at[0,10];
Task2C: R8¬R8 xor 0F, at[0,10,DisRet2], c1;
R2 ¬R2-1,ZeroBr, c2;
BRANCH[Task2,Task2D], c3;
Task2D: EOCtl ¬0, c1;
Noop, c2;
GOTO[Task2], c3;
SetTask[3];
StartAddress[Task3];
Task3: Noop,CANCELBR[$,0F], c1;
pCall3, c2;
R8¬R8 LRot0,XDisp ,CALL[DISPACH3], c3, at[0,10];
Task3C: R8¬R8 xor 0F, at[0,10,DisRet3], c1;
R3 ¬R3-1,ZeroBr, c2;
BRANCH[Task3,Task3D], c3;
Task3D: PCtl ¬0, c1;
ClrRefRq, c2;
GOTO[Task3], c3;
SetTask[4];
StartAddress[Task4];
Task4: Noop,CANCELBR[$,0F], c1;
pCall4, c2;
R8¬R8 LRot0,XDisp ,CALL[DISPACH4], c3, at[0,10];
Task4C: Noop, at[0,10,DisRet4], c1;
R4 ¬R4-1,ZeroBr, c2;
BRANCH[Task4,Task4D], c3;
Task4D: KCtl ¬RB LRot8, c1;
KCmd ¬0, c2;
GOTO[Task4], c3;
SetTask[5];
StartAddress[Task5];
Task5: Noop,CANCELBR[$,0F], c1;
pCall5, c2;
R8¬R8 LRot0,XDisp ,CALL[DISPACH5], c3, at[0,10];
Task5C: Noop, at[0,10,DisRet5], c1;
R5 ¬R5-1,ZeroBr, c2;
BRANCH[Task5,Task5D], c3;
Task5D: IOPCtl ¬0, c1;
Noop, c2;
GOTO[Task5], c3;
SetTask[0];
StartAddress[START];
TERROR1: ClrIntErr,CANCELBR[$,0F], c*, at[0];
TERROR: GOTO[TERROR], c*;
START: R1¬0F,CANCELBR[$,0F], c1;
R8¬0A, c2;
R9¬CONF, c3;
RB¬0F8, c1;
RA¬R9 and 0C0, c2;
RA¬RA xor 40, c3;
Noop, c1;
R9¬R9 and 20, c2;
R9¬R9,ZeroBr, c3;
R4¬0F,BRANCH[START1,START2], c1;
START1: R2¬0, GOTO[START3], c2;
START2: R2¬0F,GOTO[START3], c2;
START3: R3¬R2, c3;
RA¬RA,ZeroBr, c1;
R5¬0F,BRANCH[StX000,LFSt], c2;
LFSt: R0 ¬ 8, c3;
R0 ¬ R0 LRot8, c1;
KCtl ¬ RB LRot8, c2;
KCmd ¬ R0 LRot0,GOTO[Start4], c3;
StX000: R0 ¬ CDkStartCmdHi, c3;
R0 ¬ R0 LRot8, c1;
R0 ¬ R0 or CDkStartCmdLo, c2;
KCtl ¬ R0 LRot0, c3;
Start4: R0¬0F, c1;
EOCtl¬1, c2;
IOPCtl ¬ 3, c3;
Task0: DCtl¬3,CANCELBR[$,0F], c1;
PCtl¬1,pCall0, c2;
R8¬R8 LRot0,XDisp ,CALL[DISPACH], c3, at[0,10];
Task0C: Noop, c1, at[0,10,DisRet];
R0 ¬R0-1,ZeroBr, c2;
BRANCH[Task0,Task0D], c3;
Task0D: R7 ¬ 0FF, c1;
Task0D1: R7 ¬ R7 -1,ZeroBr, c2;
BRANCH[Delay,CkRZero], c3;
Delay: GOTO[Task0D1], c1;
{SUBROUTINES*************************************}
CkRZero: R0 ¬ R0,NZeroBr, c1;
R1 ¬ R1,NZeroBr,BRANCH[$,ErrorTask0], c2;
R2 ¬ R2,NZeroBr,BRANCH[$,ErrorTask1], c3;
R3 ¬ R3,NZeroBr,BRANCH[$,ErrorTask3], c1;
R4 ¬ R4,NZeroBr,BRANCH[$,ErrorTask2], c2;
R5 ¬ R5 ,NZeroBr,BRANCH[$,ErrorTask4], c3;
BRANCH[NOERROR1,ErrorTask5], c1;
NOERROR1: GOTO[NOERROR], c2;
NOERROR: GOTO[NOERROR], c*, at[0FFF];
ErrorTask0: CANCELBR[ErrorTask0],GOTO[ErrorTask0], c*;
ErrorTask1: CANCELBR[ErrorTask1],GOTO[ErrorTask1], c*;
ErrorTask2: CANCELBR[ErrorTask2],GOTO[ErrorTask2], c*;
ErrorTask3: CANCELBR[ErrorTask3],GOTO[ErrorTask3], c*;
ErrorTask4: CANCELBR[ErrorTask4],GOTO[ErrorTask4], c*;
ErrorTask5: CANCELBR[ErrorTask5],GOTO[ErrorTask5], c*;
DISPACH: R8¬R8 xor 0F,DISP4[SaveTC] , c1;
SaveTC: GOTO[Error], c2, at[0, 10, SaveTC];
pRet0,GOTO[DISPACHRET], c2, at[5, 10, SaveTC];
pRet0,GOTO[DISPACHRET], c2, at[0A, 10, SaveTC];
DISPACHRET: RET[DisRet], c3;
DISPACH1: R8¬R8 xor 0F,DISP4[SaveTC1] , c1;
SaveTC1: GOTO[Error], c2, at[0, 10, SaveTC1];
pRet1,GOTO[DISPACHRET1], c2, at[5, 10, SaveTC1];
pRet1,GOTO[DISPACHRET1], c2, at[0A, 10, SaveTC1];
DISPACHRET1: RET[DisRet1], c3;
DISPACH2: R8¬R8 xor 0F,DISP4[SaveTC2] , c1;
SaveTC2: GOTO[Error], c2, at[0, 10, SaveTC2];
pRet2,GOTO[DISPACHRET2], c2, at[5, 10, SaveTC2];
pRet2,GOTO[DISPACHRET2], c2, at[0A, 10, SaveTC2];
DISPACHRET2: RET[DisRet2], c3;
DISPACH3: R8¬R8 xor 0F,DISP4[SaveTC3] , c1;
SaveTC3: GOTO[Error], c2, at[0, 10, SaveTC3];
pRet3,GOTO[DISPACHRET3], c2, at[5, 10, SaveTC3];
pRet3,GOTO[DISPACHRET3], c2, at[0A, 10, SaveTC3];
DISPACHRET3: RET[DisRet3], c3;
DISPACH4: R8¬R8 xor 0F,DISP4[SaveTC4] , c1;
SaveTC4: GOTO[Error], c2, at[0, 10, SaveTC4];
pRet4,GOTO[DISPACHRET4], c2, at[5, 10, SaveTC4];
pRet4,GOTO[DISPACHRET4], c2, at[0A, 10, SaveTC4];
DISPACHRET4: RET[DisRet4], c3;
DISPACH5: R8¬R8 xor 0F,DISP4[SaveTC5] , c1;
SaveTC5: GOTO[Error], c2, at[0, 10, SaveTC5];
pRet5,GOTO[DISPACHRET5], c2, at[5, 10, SaveTC5];
pRet5,GOTO[DISPACHRET5], c2, at[0A, 10, SaveTC5];
DISPACHRET5: RET[DisRet5], c3;
Error: GOTO[Error], c*;
@
1.1.1.1
log
@first add
@
text
@@