mirror of
https://github.com/livingcomputermuseum/Darkstar.git
synced 2026-02-28 09:37:43 +00:00
39 lines
5.4 KiB
Plaintext
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
|
|
@@
|