mirror of
https://github.com/PDP-10/its.git
synced 2026-02-26 17:03:20 +00:00
TITLER - display text on color scope.
This commit is contained in:
2
Makefile
2
Makefile
@@ -27,7 +27,7 @@ SRC = syseng sysen1 sysen2 sysen3 sysnet kshack dragon channa \
|
||||
macsym lmcons dmcg hack hibou agb gt40 rug maeda ms kle aap common \
|
||||
fonts zork 11logo kmp info aplogo bkph bbn pdp11 chsncp sca music1 \
|
||||
moon teach ken lmio1 llogo a2deh chsgtv clib sys3 lmio turnip \
|
||||
mits_s rab stan_k bs cstacy kp dcp2 -pics- victor imlac rjl
|
||||
mits_s rab stan_k bs cstacy kp dcp2 -pics- victor imlac rjl mb
|
||||
DOC = info _info_ sysdoc sysnet syshst kshack _teco_ emacs emacs1 c kcc \
|
||||
chprog sail draw wl pc tj6 share _glpr_ _xgpr_ inquir mudman system \
|
||||
xfont maxout ucode moon acount alan channa fonts games graphs humor \
|
||||
|
||||
@@ -512,6 +512,10 @@ expect ":KILL"
|
||||
respond "*" ":palx bs;_dazzle\r"
|
||||
expect ":KILL"
|
||||
|
||||
# TITLER
|
||||
respond "*" ":midas dsk0:.;@ titler_mb; titler\r"
|
||||
expect ":KILL"
|
||||
|
||||
# MLIFE
|
||||
respond "*" ":midas;324 games;ts mlife_rwg;mlife\r"
|
||||
expect ":KILL"
|
||||
|
||||
@@ -308,6 +308,7 @@
|
||||
- TIMES, TCP time server.
|
||||
- TIMOON, displays the time and phase of the moon.
|
||||
- TIMSRV, RFC 868 network time protocol server.
|
||||
- TITLER, display text on color scope.
|
||||
- TJ6, typesetting software.
|
||||
- TMPKIL, delete old files from .TEMP.
|
||||
- TREES, list toplevel jobs.
|
||||
|
||||
383
src/mb/titler.3
Normal file
383
src/mb/titler.3
Normal file
@@ -0,0 +1,383 @@
|
||||
TITLE TITLER
|
||||
|
||||
A=1
|
||||
B=2
|
||||
C=3
|
||||
D=4
|
||||
E=5
|
||||
F=6
|
||||
G=7
|
||||
R=10
|
||||
S=11
|
||||
T=12
|
||||
U=T+1
|
||||
X=14
|
||||
Y=15
|
||||
Z=16
|
||||
P=17
|
||||
|
||||
RN2==U+1
|
||||
|
||||
DEFINE FIX X
|
||||
MULI X,400
|
||||
TSC X,X
|
||||
ASH X+1,-243(X)
|
||||
TERMIN
|
||||
|
||||
DEFINE FLOAT X
|
||||
TLC X,232000
|
||||
FADR X,X
|
||||
TERMIN
|
||||
|
||||
DEFINE RANDT
|
||||
MOVE T,U
|
||||
MUL T,[11060471625]
|
||||
DIV T,[SETZ-37] ;RANDOMNESS IN T EXCEPT TOP FEW BITS
|
||||
TERMIN
|
||||
|
||||
DEFINE RANDU
|
||||
MOVE U,RN2
|
||||
MUL U,RN1
|
||||
DIV U,[SETZ-37] ;RANDOMNESS IN U EXCEPT TOP FEW BITS
|
||||
TERMIN
|
||||
CSCOP==420
|
||||
|
||||
WHITE==333733
|
||||
PINK==370037 ;REALLY MAGENTA (PINK = 312525)
|
||||
RED==370000
|
||||
ORANGE==322600 ;INTENSITY KNOB MUST BE AT MAX FOR ANY DECENT ORANGE
|
||||
YELLOW==333300
|
||||
YELGRN==273300
|
||||
GREEN==003700
|
||||
BLUGRN==003727
|
||||
BLUE==000037
|
||||
VIOLET==270035
|
||||
|
||||
;CONO 420 BITS (20 BIT IS ENABLE, SO INTENSITIES < 20 = OFF)
|
||||
;370000 RED INTENSITY (<22 = OFF)
|
||||
;003700 GREEN INTENSITY (ENTIRE RANGE USABLE)
|
||||
;000037 BLUE INTENSITY (<25 = OFF)
|
||||
|
||||
;DATAO 420 BITS
|
||||
;0,,777000 X DEFLECTION
|
||||
;0,,000777 Y DEFLECTION
|
||||
RADIX 2
|
||||
%A==10001100011000111111100011000101110
|
||||
%B==11110100011000111110100011000111110
|
||||
%C==01110100011000010000100001000101110
|
||||
%D==11110100011000110001100011000111110
|
||||
%E==11111100001000011110100001000011111
|
||||
%F==10000100001000011110100001000011111
|
||||
%G==01110100011001110000100001000101110
|
||||
%H==10001100011000111111100011000110001
|
||||
%I==01110001000010000100001000010001110
|
||||
%J==01110100010000100001000010000100111
|
||||
%K==10001100011001011100101001001010001
|
||||
%L==11111100001000010000100001000010000
|
||||
%M==10001100011000110001101011101110001
|
||||
%N==10001100011001110101110011000110001
|
||||
%O==01110100011000110001100011000101110
|
||||
%P==10000100001000011110100011000111110
|
||||
%Q==01111100111010110001100011000101110
|
||||
%R==10001100011000111110100011000111110
|
||||
%S==01110100010000101110100001000101110
|
||||
%T==00100001000010000100001000010011111
|
||||
%U==01110100011000110001100011000110001
|
||||
%V==00100010101000110001100011000110001
|
||||
%W==01010101011000110001100011000110001
|
||||
%X==10001100010101000100010101000110001
|
||||
%Y==00100001000010000100010101000110001
|
||||
%Z==11111010000010001110001000001011111
|
||||
%6==01110100011000111110100001000101110
|
||||
%STAR==00000101010111011011011101010100000
|
||||
%DASH==00000000000000011111000000000000000
|
||||
%%==0 ;SPACE
|
||||
RADIX 8
|
||||
BEG: MOVEI P,PDL-1
|
||||
MOVE RN2,RN1
|
||||
MOVEI E, ;WHERE IN DISBUF TO SALT
|
||||
MOVEI F,
|
||||
PUSHJ P,SALT
|
||||
MOVEM E,DISL1E
|
||||
AOS F
|
||||
PUSHJ P,SALT
|
||||
MOVEM E,DISL2E
|
||||
AOS F
|
||||
PUSHJ P,SALT
|
||||
MOVEM E,DISL3E
|
||||
AOS F
|
||||
PUSHJ P,SALT
|
||||
MOVEM E,DISL4E
|
||||
|
||||
MOVSI A,-4
|
||||
MIX1: MOVE B,DISL0E(A) ;BASE
|
||||
MOVE C,DISL0E+1(A)
|
||||
SUB C,B ;NUMBER OF ENTRIES
|
||||
MOVEI D,1000
|
||||
MIX2: RANDU
|
||||
MOVE T,U
|
||||
IDIV T,C
|
||||
MOVE E,U
|
||||
RANDU
|
||||
MOVE T,U
|
||||
IDIV T,C
|
||||
MOVE F,U
|
||||
ADD E,B
|
||||
ADD F,B
|
||||
MOVE T,DISBUF(E)
|
||||
EXCH T,DISBUF(F)
|
||||
MOVEM T,DISBUF(E)
|
||||
SOJG D,MIX2
|
||||
MIX4: JRST MIX3 ;JFCL TO TEST
|
||||
MOVN D,C
|
||||
HRLS D
|
||||
HRR D,B
|
||||
MIX5: MOVS F,DISBUF(D)
|
||||
CONO CSCOP,(F)
|
||||
DATAO CSCOP,DISBUF(D)
|
||||
MOVEI E,24
|
||||
SOJG E,.
|
||||
AOBJN D,MIX5
|
||||
JRST MIX4
|
||||
SALT:
|
||||
DIS2: SKIPL C,DISL(F)
|
||||
JRST CHAR
|
||||
HLR T,C
|
||||
ANDI T,7
|
||||
XCT DISOPR(T)
|
||||
DIS3: AOJA F,DIS2 ;READY FOR NEXT DISLIST ENTRY
|
||||
|
||||
DISOPR: JRST .
|
||||
HRRZ D,C ;UPDATE X,Y TO THIS
|
||||
HRRM C,CCOLR ;UPDATE COLOR TO THIS
|
||||
JRST . ;TIME TEST
|
||||
HRRM C,CHAR6 ;UPDATE CHARACTER SIZE TO THIS
|
||||
POPJ P, ;DISPLAY DONE
|
||||
|
||||
CHAR: MOVSI B,-7 ;SCANS INCREMENTAL Y
|
||||
HRRZ T,CHAR6
|
||||
IMULI T,7000
|
||||
HRRM T,CHAR4
|
||||
CHAR1: MOVSI A,-5 ;SCANS INCREMENTAL X
|
||||
CHAR2: TLNE C,200000
|
||||
JRST CHAR5
|
||||
CHAR3: LSH C,1
|
||||
AOBJN A,CHAR2
|
||||
AOBJN B,CHAR1
|
||||
CHAR4: ADDI D,7000 ;DX = 7 * SIZE, DY = 0
|
||||
JRST DIS3 ;CHARACTER DONE
|
||||
|
||||
CHAR5: MOVEI T,(A)
|
||||
LSH T,9
|
||||
IORI T,(B)
|
||||
CHAR6: IMULI T,1 ;SIZE
|
||||
ADD T,D
|
||||
HRL T,CCOLR
|
||||
MOVEM T,DISBUF(E)
|
||||
AOS E
|
||||
JRST CHAR3
|
||||
|
||||
CCOLR: 0 ;CURRENT COLOR
|
||||
MIX3: AOBJN A,MIX1
|
||||
|
||||
MOVEI A,
|
||||
SHOW1: MOVEI D,120 ;NUMBER OF STATIC FRAMES
|
||||
SHOW2: MOVE B,DISL0E(A)
|
||||
SUB B,DISL0E+1(A)
|
||||
HRLS B
|
||||
HRR B,DISL0E(A)
|
||||
MOVE C,DISL0E+1(A)
|
||||
SUB C,DISL0E+2(A)
|
||||
HRLS C
|
||||
HRR C,DISL0E+1(A)
|
||||
CAIL D,20
|
||||
MOVE C,B
|
||||
MOVE G,C
|
||||
SHOW3: MOVS F,DISBUF(C)
|
||||
CONO CSCOP,(F)
|
||||
DATAO CSCOP,DISBUF(B)
|
||||
MOVEI E,24
|
||||
SOJG E,.
|
||||
AOBJN C,.+2
|
||||
MOVE C,G
|
||||
AOBJN B,SHOW3
|
||||
PUSHJ P,FRAME
|
||||
SOJG D,SHOW2
|
||||
|
||||
CAIN A,3
|
||||
JRST DONE
|
||||
CLEARM INDEX ;NOT DONE, MERGE TO NEXT STATIC
|
||||
SHOW4: CLEARM FLAG ;FRAME FLAG
|
||||
MOVE B,DISL0E(A)
|
||||
MOVE C,DISL0E+1(A)
|
||||
SHOW5: HRRZ D,DISBUF(B)
|
||||
LSHC D,-11
|
||||
LSH E,-33
|
||||
HRRZ F,DISBUF(C)
|
||||
LSHC F,-11
|
||||
LSH G,-33
|
||||
SUB G,E
|
||||
IMUL G,INDEX
|
||||
ADDI G,200
|
||||
SKIPG G
|
||||
SUBI G,400
|
||||
ASH G,-10
|
||||
ADD E,G
|
||||
SUB F,D
|
||||
IMUL F,INDEX
|
||||
ADDI F,200
|
||||
SKIPG F
|
||||
SUBI F,400
|
||||
ASH F,-10
|
||||
ADD D,F
|
||||
LSH E,33
|
||||
LSHC D,11
|
||||
MOVS F,DISBUF(C)
|
||||
CONO CSCOP,(F)
|
||||
DATAO CSCOP,D
|
||||
AOS B
|
||||
CAME B,DISL0E+1(A) ;END OF OLD FRAME?
|
||||
JRST SHOW6 ;NO
|
||||
AOSG FLAG ;YES, AND NEW?
|
||||
JRST SHOW7 ;BOTH ENDED
|
||||
MOVE B,DISL0E(A)
|
||||
SHOW6: AOS C
|
||||
CAME C,DISL0E+2(A) ;END OF NEW FRAME?
|
||||
JRST SHOW5 ;NO
|
||||
SOSL FLAG ;YES, AND OLD?
|
||||
JRST SHOW7 ;BOTH ENDED
|
||||
MOVE C,DISL0E+1(A)
|
||||
JRST SHOW5
|
||||
|
||||
SHOW7: PUSHJ P,FRAME
|
||||
AOS D,INDEX
|
||||
CAIG D,400
|
||||
JRST SHOW4 ;MORE
|
||||
AOJA A,SHOW1 ;NEXT STATIC
|
||||
|
||||
DONE: PUSHJ P,CLOSE
|
||||
JRST .
|
||||
|
||||
LEADER: MOVEI P,PDL-1
|
||||
MOVEI A,310 ;5 FEET
|
||||
PUSHJ P,FRAME
|
||||
SOJG A,.-1
|
||||
JRST .
|
||||
|
||||
FLAG: 0
|
||||
INDEX: 0
|
||||
|
||||
DISL0E: 0
|
||||
DISL1E: 0 ;END OF FIRST DISPLAY LIST (LAST LOCATION + 1)
|
||||
DISL2E: 0
|
||||
DISL3E: 0
|
||||
DISL4E: 0
|
||||
|
||||
DISBUF: BLOCK 10000
|
||||
|
||||
RN1: 11060471625 ;5 TO THE THIRTEENTH
|
||||
|
||||
PDL: BLOCK 20
|
||||
PATCH: BLOCK 100
|
||||
DEFINE DPY A
|
||||
IRPC B,,[A]
|
||||
%!B
|
||||
TERMIN
|
||||
TERMIN
|
||||
|
||||
DISL:
|
||||
DISL1: 400002,,RED
|
||||
400004,,6
|
||||
400001,,136440
|
||||
DPY FOR%LYNN
|
||||
400001,,012260
|
||||
DPY FROM%MICHAEL
|
||||
400005,,0
|
||||
|
||||
DISL2: 400002,,GREEN
|
||||
400004,,12
|
||||
400001,,335133
|
||||
DPY HELLO
|
||||
400005,,0
|
||||
|
||||
DISL3: 400002,,GREEN
|
||||
400004,,4
|
||||
400001,,026464
|
||||
DPY COMPUTER%MUSIC%BY
|
||||
400002,,RED
|
||||
400001,,116404
|
||||
DPY STEVE%SMOLIAR
|
||||
400002,,GREEN
|
||||
400004,,3
|
||||
400001,,061340
|
||||
DPY PLAYED%BY%THE%PDP
|
||||
%DASH
|
||||
%6
|
||||
400002,,BLUE
|
||||
400004,,4
|
||||
400001,,242260
|
||||
DPY A%I%LAB
|
||||
400005,,0
|
||||
|
||||
DISL4: 400004,,3
|
||||
400001,,061432
|
||||
400002,,RED
|
||||
DPY WITH%
|
||||
400002,,ORANGE
|
||||
DPY SPECIAL%
|
||||
400002,,YELLOW
|
||||
DPY THANKS
|
||||
400001,,163366
|
||||
400002,,YELGRN
|
||||
DPY TO%
|
||||
400002,,GREEN
|
||||
DPY MIKE%
|
||||
400002,,BLUGRN
|
||||
DPY BEELER
|
||||
400001,,210322
|
||||
400002,,BLUE
|
||||
DPY A%I%LAB%%
|
||||
400002,,VIOLET
|
||||
DPY MIT
|
||||
400005,,0
|
||||
;CCW = FWD = 0, 100, 300, 200, 0, ...
|
||||
;WHEN LOADED, THINKS SHUTTER IS CLOSED
|
||||
;CLOBBERS NO ACCUMULATORS
|
||||
|
||||
CLOSE: SKIPN SHUTTR
|
||||
POPJ P,
|
||||
CLEARM SHUTTR
|
||||
JRST OPEN1
|
||||
|
||||
FRAME: PUSHJ P,CLOSE
|
||||
SKIPE STOP
|
||||
JRST .-1
|
||||
OPEN: SKIPE SHUTTR
|
||||
POPJ P,
|
||||
SETOM SHUTTR
|
||||
OPEN1: PUSH P,A
|
||||
PUSH P,B
|
||||
MOVEI A,62 ;25. COMPLETE CYCLES = 1/2 REVOLUTION
|
||||
OPEN2: MOVEI B,100
|
||||
XORB B,MOTOR
|
||||
DATAO 760,B
|
||||
MOVEI B,550 ;PDP-10 2000 MISSES ABOUT 1 STEP/REVOLUTION
|
||||
SOJG B,.
|
||||
MOVEI B,200
|
||||
XORB B,MOTOR
|
||||
DATAO 760,B
|
||||
MOVEI B,550
|
||||
SOJG B,.
|
||||
SOJG A,OPEN2
|
||||
AOS NHREVS
|
||||
POP P,B
|
||||
POP P,A
|
||||
POPJ P,
|
||||
|
||||
SHUTTR: 0 ;0 = SHUTTER CLOSED, -1 = OPEN
|
||||
MOTOR: 0 ;LAST DATAO TO MOTOR
|
||||
NHREVS: 0 ;NUMBER OF HALF REVOLUTIONS SINCE START
|
||||
STOP: 0 ;NON-ZERO = PAUSE WITH SHUTTER CLOSED
|
||||
|
||||
END
|
||||
|
||||
Reference in New Issue
Block a user