commit 64857d39fb80bb9709f6a0576fdb2534af4335b7 Author: David Meyer Date: Wed Apr 14 07:58:17 2021 +0900 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..aef72ac --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +tss8 Repository + +Programs developed on the SDF/the interim computer museum's PiDP-8/i TSS/8 system diff --git a/shuffl.bas b/shuffl.bas new file mode 100644 index 0000000..cf90d02 --- /dev/null +++ b/shuffl.bas @@ -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 diff --git a/verb3a.asc b/verb3a.asc new file mode 100644 index 0000000..d8a8cbe --- /dev/null +++ b/verb3a.asc @@ -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 +$ diff --git a/verb4a.asc b/verb4a.asc new file mode 100644 index 0000000..8eeb42e --- /dev/null +++ b/verb4a.asc @@ -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 +$ +