first commit

This commit is contained in:
David Meyer 2021-04-14 07:58:17 +09:00
commit 64857d39fb
4 changed files with 119 additions and 0 deletions

3
README.md Normal file
View File

@ -0,0 +1,3 @@
tss8 Repository
Programs developed on the SDF/the interim computer museum's PiDP-8/i TSS/8 system <http://tss8.sdf.org>

48
shuffl.bas Normal file
View File

@ -0,0 +1,48 @@
10 REM SHUFFL - SHUFFLE DECK OF PLAYING CARDS
20 REM 2021/4/3 DAVID MEYER (PAPA AT SDF.ORG) +JMJ
30
40 DEF FNS(C)=INT(C/13)
50 DEF FNR(C)=C-INT(C/13)*13
60
70 DIM S1$(4),S2$(4)
80 LET S1$(0)="C"\LET S2$(0)="CLUBS"
90 LET S1$(1)="D"\LET S2$(1)="DIAMND"
100 LET S1$(2)="H"\LET S2$(2)="HEARTS"
110 LET S1$(3)="S"\LET S2$(3)="SPADES"
120 LET S1$(4)="*J"\LET S2$(4)="JOKER"
130
140 DIM R1$(12),R2$(12)
150 LET R1$(0)="A"\LET R2$(0)="ACE"
160 LET R1$(1)="2"\LET R2$(1)="TWO"
170 LET R1$(2)="3"\LET R2$(2)="THREE"
180 LET R1$(3)="4"\LET R2$(3)="FOUR"
190 LET R1$(4)="5"\LET R2$(4)="FIVE"
200 LET R1$(5)="6"\LET R2$(5)="SIX"
210 LET R1$(6)="7"\LET R2$(6)="SEVEN"
220 LET R1$(7)="8"\LET R2$(7)="EIGHT"
230 LET R1$(8)="9"\LET R2$(8)="NINE"
240 LET R1$(9)="T"\LET R2$(9)="TEN"
250 LET R1$(10)="J"\LET R2$(10)="JACK"
260 LET R1$(11)="Q"\LET R2$(11)="QUEEN"
270 LET R1$(12)="K"\LET R2$(12)="KING"
280
340 LET C0=51
350 DIM D(53)
360 FOR C=0 TO C0
370 LET D(C)=C
380 NEXT C
390
400 RANDOMIZE
410 FOR I=C0 TO 0 STEP -1
420 LET J=INT((I+1)*RND(0))
430 LET T=D(I)\LET D(I)=D(J)\LET D(J)=T
440 NEXT I
450
460 FOR I=0 TO C0
465 IF FNS(D(I)) = 4 THEN 475
470 PRINT R1$(FNR(D(I)));S1$(FNS(D(I)));" ";
471 GO TO 480
475 PRINT S1$(FNS(D(I)));" ";
480 NEXT I
490
2046 END

13
verb3a.asc Normal file
View File

@ -0,0 +1,13 @@
/JOANNES I:I - IN PRINCIPIO ERAT VERBUM
/VERB3 - PRINT FROM MEMORY WITH SAS
CLA
TAD (COUNT)
SAS
JMP .-2
HLT
COUNT, -32 /CHAR. COUNT * -1
PTR, . /ADDR. OF STR. - 1
STRING, "I; "N; " ; "P; "R; "I; "N; "C; "I; "P; "I; "O
" ; "E; "R; "A; "T; " ; "V; "E; "R; "B; "U; "M
215; 212
$

55
verb4a.asc Normal file
View File

@ -0,0 +1,55 @@
/JOANNES I:I - IN PRINCIPIO ERAT VERBUM
/VERB4 - PRINT FROM PACKED STRING
CLA
TAD (-14) /PACKED STR. WORD COUNT * -1
DCA COUNT
TAD (PKSTR) /ADDR. OF PACKED STR.
DCA PTR
LOOP, CLA
TAD I PTR /CURR. PACKED STR. WORD
JMS GETCH1
JMS CVT6B
JMS PRCHR
TAD I PTR /RELOAD CURR. PACKED STR. WORD
JMS GETCH2
JMS CVT6B
JMS PRCHR
ISZ PTR /INCR. PACKED STR. WORD PTR.
ISZ COUNT /INCR. WORD COUNT - LOOP UNTIL 0
JMP LOOP
JMS PRCRLF
HLT
COUNT, 0 /PACKED STR. REMAINING WORD COUNT
PTR, 0 /CURR. PACKED STR. WORD PTR.
PKSTR, TEXT 'IN PRINCIPIO ERAT VERBUM' /PACKED STR.
GETCH1, 0 /EXTRACT 1ST CHAR. FROM PACKED WORD
JMS SHFT6R
JMP I GETCH1
GETCH2, 0 /EXTRACT 2ND CHAR. FROM PACKED WORD
JMS ROT6L
JMS SHFT6R
JMP I GETCH2
SHFT6R, 0 /SHIFT AC VALUE 6 BITS TO RIGHT
RAR CLL; RAR CLL; RAR CLL; RAR CLL; RAR CLL; RAR CLL
JMP I SHFT6R
ROT6L, 0 /ROTATE AC VALUE 6 BITS TO LEFT
RAL; RAL; RAL; RAL; RAL; RAL
JMP I ROT6L
CVT6B, 0 /CONVERT 6-BIT CHAR. CODE TO 8-BIT
TAD (7740) /8-COMPLEMENT OF 40 (SUBTRACT 40)
SPA
TAD (100)
TAD (240)
JMP I CVT6B
PRCRLF, 0 /PRINT CR-LF
TAD (215) /CR
JMS PRCHR
TAD (212) /LF
JMS PRCHR
JMP I PRCRLF
PRCHR, 0 /PRINT CHAR. CODE IN AC
TLS
CLA
JMP I PRCHR
$