mirror of
https://github.com/PDP-10/its.git
synced 2026-02-15 04:16:21 +00:00
357 lines
6.4 KiB
Plaintext
357 lines
6.4 KiB
Plaintext
|
||
TITLE COOKIE BEAR
|
||
|
||
A=1 ;ACS FOR MAIN PROGRAM
|
||
AA=2
|
||
B=3
|
||
C=4
|
||
D=5
|
||
E=6
|
||
F=7
|
||
Q=11 ;ACS FOR INTERRUPT HANDLING
|
||
R=12
|
||
S=13
|
||
T=14
|
||
U=15
|
||
|
||
TYIC=1 ;TTY INPUT
|
||
TYOC=2 ;TTY OUTPUT
|
||
CLIC=3 ;CORE LINK INTERRUPT OUTPUT
|
||
CLAC=4 ;CORE LINK ANSWER INPUT
|
||
|
||
IF1,[
|
||
PRINTX \DEBUGP==\
|
||
.TTYMAC DEBUG/
|
||
DEBUGP==DEBUG
|
||
TERMIN
|
||
|
||
PRINTX \ITEM: \
|
||
.TTYMAC ITEM/
|
||
DEFINE MSG X
|
||
DEFINE MSGX SUBJ
|
||
[ASCIZ \X\]
|
||
TERMIN
|
||
MSGX ITEM
|
||
TERMIN
|
||
DEFINE ITEMCHARS
|
||
IRPC X,,[ITEM]
|
||
"X
|
||
TERMIN
|
||
TERMIN
|
||
TERMIN
|
||
|
||
PRINTX \SUBJECT: \
|
||
.TTYMAC SUBJ
|
||
DEFINE SCONC X
|
||
X!!SUBJ!!TERMIN
|
||
TERMIN
|
||
|
||
PRINTX \NAME: \
|
||
.TTYMAC NAME/
|
||
DEFINE NAMEP X
|
||
<IFSN X,NAME,[1]>,TERMIN
|
||
DEFINE NCONC X
|
||
X!!NAME!!TERMIN
|
||
TERMIN
|
||
] ;END OF IF1
|
||
|
||
LOC 42
|
||
JSR INT ;TO MOBY INTERRUPT HANDLER
|
||
|
||
LOC 100
|
||
|
||
GO: .TRANDL UNTRAN
|
||
JFCL
|
||
.OPEN TYIC,[0,,SIXBIT \ TTYFOOBARTYI \]
|
||
JSP AA,KILL
|
||
.OPEN TYOC,[1,,SIXBIT \ TTYFOOBARTYO \]
|
||
JSP AA,KILL
|
||
MOVEI F,50
|
||
SETZM JCLBUF
|
||
.BREAK 12,[5,,JCLBUF]
|
||
READ: SKIPE JCLBUF
|
||
JRST READ1
|
||
.IOT TYOC,[^M] ;OUTPUT CR, LF, *
|
||
.IOT TYOC,[^J]
|
||
.IOT TYOC,["*]
|
||
READ1: MOVEI A,6
|
||
SETZ C,
|
||
MOVE E,[440700,,JCLBUF]
|
||
SKIPA B,[440600,,C]
|
||
IN: IDPB D,B
|
||
SKIPN JCLBUF
|
||
.IOT TYIC,D
|
||
SKIPE JCLBUF
|
||
ILDB D,E
|
||
CAIN D,177
|
||
JRST READ
|
||
CAIL D,140
|
||
SUBI D,40
|
||
CAIL D,40
|
||
CAILE D,137
|
||
JRST DONE
|
||
SUBI D,40
|
||
SOJGE A,IN
|
||
DONE: MOVEM C,HACKER
|
||
SKIPN DEBUG
|
||
.VALUE [ASCIZ \:PROCED :DISOWN \]
|
||
.SUSET [.SSNAM,,[SIXBIT \.MSGS.\]]
|
||
.SUSET [.SMASK,,[400000]]
|
||
.SUSET [.SPICL,,[-1]]
|
||
.SUSET [.RUIND,,A]
|
||
IFE NAMEP ANIMALS, MOVE E,UNAMES(A)
|
||
IFN NAMEP ANIMALS, MOVE E,[440700,,[NCONC ASCIZ \,\]]
|
||
MOVEM E,MYUNAM
|
||
MOVEI A,40.*30.
|
||
MOVEI B,0
|
||
TRY: .OPEN CLIC,CLIOPN
|
||
JSP AA,KILLP
|
||
.IOT CLIC,[177]
|
||
SKIPA C,[440700,,[SCONC ASCIZ \MESSAGE FROM , \]]
|
||
.IOT CLIC,D
|
||
ILDB D,C
|
||
JUMPN D,.-2
|
||
SKIPA C,MYUNAM
|
||
.IOT CLIC,D
|
||
ILDB D,C
|
||
JUMPN D,.-2
|
||
.IOT CLIC,[^M]
|
||
.IOT CLIC,[^J]
|
||
SKIPA C,MYUNAM
|
||
.IOT CLIC,D
|
||
ILDB D,C
|
||
JUMPN D,.-2
|
||
.IOT CLIC,["@]
|
||
.CALL MACHIN
|
||
.VALUE
|
||
REPEAT 2,[
|
||
SETZ D,
|
||
LSHC D,6
|
||
ADDI D,40
|
||
.IOT CLIC,D
|
||
] ;END OF REPEAT 2
|
||
.IOT CLIC,[40]
|
||
.RTIME E,
|
||
MOVEI AA,6
|
||
MOVE C,[440600,,E]
|
||
TIMOUT: ILDB D,C
|
||
ADDI D,40
|
||
.IOT CLIC,D
|
||
TRNE AA,6
|
||
TRNN AA,1
|
||
JRST .+2
|
||
.IOT CLIC,[":]
|
||
SOJG AA,TIMOUT
|
||
.IOT CLIC,[40]
|
||
HRR C,LMSGS(B)
|
||
HRLI C,440700
|
||
SHOVE: ILDB D,C
|
||
JUMPE D,ALLOUT
|
||
.IOT CLIC,D
|
||
JRST SHOVE
|
||
ALLOUT: .CLOSE CLIC,
|
||
CAIL B,NMSGS-1
|
||
JSP AA,KILL
|
||
MOVE AA,A
|
||
.SLEEP AA,
|
||
IMULI A,6
|
||
IDIVI A,7
|
||
CAIGE A,5*30.
|
||
MOVEI A,5*30.
|
||
AOJ B,
|
||
CAIE B,NMSGS-1
|
||
JRST TRY
|
||
MOVEI AA,15.*30.
|
||
.SLEEP AA,
|
||
JRST TRY
|
||
|
||
KILLP: SOJLE F,KILL
|
||
MOVEI E,5*30.
|
||
.SLEEP E,
|
||
JRST -2(AA)
|
||
KILL: .LOGOUT
|
||
.VALUE
|
||
|
||
UNTRAN: 0
|
||
SIXBIT \HACTRN\
|
||
|
||
MYUNAM: 0 ;UNAME OF THIS PARTICULAR COOKIE BEAR
|
||
|
||
CLIOPN: 1,,'CLI ;CLI OPEN SPECS
|
||
HACKER: BLOCK 1 ;UNAME OF HACKER TO PESTER
|
||
HACTRN: SIXBIT \HACTRN\ ;WE :SEND MESSAGES TO HIS HACTRN
|
||
|
||
CLAOPN: 2,,'CLA ;CLA OPEN SPECS - TO RECEIVE MESSAGES FROM HIS HACTRN
|
||
|
||
LCLABF==8
|
||
CLABUF: BLOCK LCLABF ;BUFFER FOR CLA INPUT
|
||
|
||
COOKIE: ITEMCHARS
|
||
LCOOKIE==.-COOKIE
|
||
|
||
INT: 0 ;MOBY INTERRUPT HANDLER
|
||
0
|
||
.OPEN CLAC,CLAOPN
|
||
.DISMISS INT+1
|
||
MOVE T,[-LCLABF,,CLABUF]
|
||
.IOT CLAC,T
|
||
MOVE T,[440700,,CLABUF+2]
|
||
MOVE Q,CLABUF
|
||
CAME Q,HACKER
|
||
JRST YANK
|
||
MOVE Q,CLABUF+1
|
||
CAME Q,HACTRN
|
||
JRST YANK
|
||
MOVNI S,LCOOKIE
|
||
SKPTIM: JSP Q,GETCLA
|
||
CAIE R,":
|
||
JRST SKPTIM
|
||
JSP Q,GETCLA
|
||
CAIE R,":
|
||
JRST YANK
|
||
FIND: JSP Q,GETCLA
|
||
CAME R,COOKIE+LCOOKIE(S)
|
||
JRST YANK
|
||
AOJL S,FIND
|
||
MOVEI U,THANX-LMSGS
|
||
EXCH U,B
|
||
MOVEI S,TRY
|
||
EXCH S,INT+1
|
||
JSP Q,GETCLA
|
||
MOVEM S,INT+1
|
||
MOVEM U,B
|
||
YANK: JSP Q,GETCLA
|
||
JRST YANK
|
||
|
||
GETCLA: CAIE T,[010700,,CLABUF+LCLABF-1]
|
||
JRST NXTCHR
|
||
MOVE T,[-LCLABF,,CLABUF]
|
||
.IOT CLAC,T
|
||
MOVE T,[440700,,CLABUF]
|
||
NXTCHR: ILDB R,T
|
||
CAIN R,^C
|
||
JRST ENDINT
|
||
CAIN R,":
|
||
JRST (Q)
|
||
CAILE R,"Z
|
||
SUBI R,40
|
||
CAIG R,"Z
|
||
CAIGE R,"A
|
||
JRST GETCLA
|
||
JRST (Q)
|
||
ENDINT: .CLOSE CLAC,
|
||
.DISMISS INT+1
|
||
|
||
|
||
LMSGS:
|
||
IRP QUUX,,[[!SUBJ!?
|
||
],[WILL YOU GIVE ME !SUBJ!?
|
||
],[I WANT !SUBJ!. PLEASE GIVE ME !SUBJ!?
|
||
],[DON'T YOU WANT TO GIVE ME !SUBJ!?
|
||
],[I WANT !SUBJ!! PLEASE GIVE ME !SUBJ!.
|
||
],[PLEASE GIVE ME !SUBJ!. ANY KIND IS OK WITH ME.
|
||
],[AREN'T YOU GOING TO GIVE ME !SUBJ!?
|
||
],[I WANT !SUBJ!!!!!!!
|
||
],[!SUBJ! !SUBJ! !SUBJ! !SUBJ! !SUBJ!!!!!!
|
||
],[YOU OLD MEANY! COME ON, GIVE ME !SUBJ!!
|
||
],[!SUBJ!!!!!!!!!!!!!!!!!
|
||
],[YOU'D BETTER GIVE ME !SUBJ!, OR ELSE!
|
||
],[YOU MISERABLE HACKER! GIVE ME !SUBJ!!
|
||
],[!SUBJ!, !SUBJ!, I WANT !SUBJ!!
|
||
],[YOU BETTER GIVE ME !SUBJ!, OR I'LL TELL MY
|
||
UNCLE GFR ON YOU! (UNCLE GFR = GR*M F*L* R**P*R)
|
||
],[&"%$"@*^@"&$%!!!! I WANT !SUBJ!!!! GIMME !SUBJ!!!!
|
||
],[
|
||
(OR (GIVEP YOU ME '|!SUBJ!|)
|
||
(COND ((ZEROP (BOOLE 1 1 (RANDOM)))
|
||
(GFR-DESTROY (DIRECTORY-OF YOU)))
|
||
(T (GUN YOU 'HACTRN))))
|
||
],[YOU'VE GOT ONE LAST CHANCE TO GIVE ME !SUBJ!!
|
||
],[OKAY FOR YOU! I DON'T WANT !SUBJ! FROM YOU ANYWAY!
|
||
]]
|
||
MSG [QUUX]
|
||
TERMIN
|
||
NMSGS==.-LMSGS
|
||
|
||
THANX: MSG [OH THANK YOU, THANK YOU FOR GIVING ME !SUBJ!! GOODBYE!
|
||
]
|
||
|
||
|
||
IFE NAMEP ANIMALS,[
|
||
UNAMES: 440700,,[ASCIZ \SYSJOB\]
|
||
440700,,[ASCIZ \CORJOB\]
|
||
440700,,[ASCIZ \RABBIT\]
|
||
440700,,[ASCIZ \LION\]
|
||
440700,,[ASCIZ \TIGER\]
|
||
440700,,[ASCIZ \RABBIT\]
|
||
440700,,[ASCIZ \BEETLE\]
|
||
440700,,[ASCIZ \TURKEY\]
|
||
440700,,[ASCIZ \BEAR\]
|
||
440700,,[ASCIZ \WUMPUS\]
|
||
440700,,[ASCIZ \MONKEY\]
|
||
440700,,[ASCIZ \ORANGUTANG\]
|
||
440700,,[ASCIZ \ELEPHANT\]
|
||
440700,,[ASCIZ \PUMA\]
|
||
440700,,[ASCIZ \HYENA\]
|
||
440700,,[ASCIZ \WOLF\]
|
||
440700,,[ASCIZ \FOX\]
|
||
440700,,[ASCIZ \CREATURE\]
|
||
440700,,[ASCIZ \BIRD\]
|
||
440700,,[ASCIZ \EAGLE\]
|
||
440700,,[ASCIZ \FALCON\]
|
||
440700,,[ASCIZ \GIRAFFE\]
|
||
440700,,[ASCIZ \BEAGLE\]
|
||
440700,,[ASCIZ \PENGUIN\]
|
||
440700,,[ASCIZ \AARDVARK\]
|
||
440700,,[ASCIZ \PLATYPUS\]
|
||
440700,,[ASCIZ \TERMITE\]
|
||
440700,,[ASCIZ \CHIMPANZEE\]
|
||
440700,,[ASCIZ \KOALA\]
|
||
440700,,[ASCIZ \PANDA\]
|
||
440700,,[ASCIZ \GAZELLE\]
|
||
440700,,[ASCIZ \ANTELOPE\]
|
||
440700,,[ASCIZ \DEER\]
|
||
440700,,[ASCIZ \GOAT\]
|
||
440700,,[ASCIZ \RABBIT\]
|
||
440700,,[ASCIZ \LION\]
|
||
440700,,[ASCIZ \TIGER\]
|
||
440700,,[ASCIZ \RABBIT\]
|
||
440700,,[ASCIZ \BEETLE\]
|
||
440700,,[ASCIZ \PENGUIN\]
|
||
440700,,[ASCIZ \AARDVARK\]
|
||
440700,,[ASCIZ \PLATYPUS\]
|
||
440700,,[ASCIZ \TERMITE\]
|
||
440700,,[ASCIZ \CHIMPANZEE\]
|
||
440700,,[ASCIZ \KOALA\]
|
||
440700,,[ASCIZ \PANDA\]
|
||
440700,,[ASCIZ \GAZELLE\]
|
||
440700,,[ASCIZ \ANTELOPE\]
|
||
440700,,[ASCIZ \DEER\]
|
||
440700,,[ASCIZ \GOAT\]
|
||
440700,,[ASCIZ \RABBIT\]
|
||
440700,,[ASCIZ \LION\]
|
||
440700,,[ASCIZ \TIGER\]
|
||
440700,,[ASCIZ \RABBIT\]
|
||
440700,,[ASCIZ \BEETLE\]
|
||
440700,,[ASCIZ \TURKEY\]
|
||
440700,,[ASCIZ \BEAR\]
|
||
440700,,[ASCIZ \WUMPUS\]
|
||
440700,,[ASCIZ \MONKEY\]
|
||
440700,,[ASCIZ \ORANGUTANG\]
|
||
440700,,[ASCIZ \ELEPHANT\]
|
||
440700,,[ASCIZ \PUMA\]
|
||
440700,,[ASCIZ \HYENA\]
|
||
440700,,[ASCIZ \WOLF\]
|
||
] ;END OF IFE NAMEP ANIMALS,
|
||
|
||
MACHIN: SETZ
|
||
SIXBIT \SSTATU\
|
||
REPEAT 5, 2000,,E
|
||
402000,,E ;MACHINE NAME
|
||
|
||
JCLBUF: BLOCK 100
|
||
|
||
DEBUG: DEBUGP
|
||
|
||
END GO
|
||
|