diff --git a/TEKLINES.BAS b/TEKLINES.BAS index e3ac039..9ceb046 100644 --- a/TEKLINES.BAS +++ b/TEKLINES.BAS @@ -5,15 +5,15 @@ 50 CSI$=ESC$+"[" 60 PRINT CSI$+"?38h" 70 FOR I = 1 TO 200 -80 X=RND(8)*1024: Y=RND(8)*768: GOSUB 160: C1$=XY$ -90 X=RND(9)*1024: Y=RND(9)*768: GOSUB 160: C2$=XY$ +80 X=RND(8)*1024: Y=RND(8)*768: GOSUB 1000: C1$=XY$ +90 X=RND(9)*1024: Y=RND(9)*768: GOSUB 1000: C2$=XY$ 100 PRINT GS$+C1$+C2$+US$+CHR$(13) 110 NEXT 120 REM Pause for a short time 130 FOR I = 1 TO 10000: NEXT 140 PRINT CSI$+"?38l" 150 END -160 REM calculate coordinates for x,y -170 REM returns them in xy$ -180 XY$=CHR$((Y\32) OR 32) + CHR$((Y MOD 32) OR 96) + CHR$((X\32) OR 32) + CHR$((X MOD 32) OR 64) -190 RETURN +1000 REM calculate coordinates for x,y +1010 REM returns them in xy$ +1020 XY$=CHR$((Y\32) OR 32) + CHR$((Y MOD 32) OR 96) + CHR$((X\32) OR 32) + CHR$((X MOD 32) OR 64) +1030 RETURN diff --git a/TEKTEXT2.BAS b/TEKTEXT2.BAS new file mode 100644 index 0000000..cb8b392 --- /dev/null +++ b/TEKTEXT2.BAS @@ -0,0 +1,26 @@ +10 REM Play with Tektronix graphics +20 ESC$=CHR$(27) +30 GS$=CHR$(29) +40 US$=CHR$(31) +50 CSI$=ESC$+"[" +60 SZ$="89:;" +70 REM Tektronix mode +80 PRINT CSI$+"?38h" +90 REM Print random-sized text in random positions +100 FOR I=1 TO 200 +110 X=RND(8)*1024: Y=RND(8)*768:GOSUB 1000 +120 PRINT ESC$+MID$(SZ$,INT(RND(2)*4)+1,1)+"Tektronix" +130 NEXT +140 REM Pause for a short time +150 FOR I = 1 TO 10000: NEXT +160 REM Back to VT mode +170 PRINT CSI$+"?38l" +180 END +1000 REM move-to (X, Y) +1010 GOSUB 2000 +1020 PRINT GS$+XY$+US$; +1030 RETURN +2000 REM calculate coordinate string for (X,Y) +2010 REM returns them in XY$ +2020 XY$=CHR$((Y\32) OR 32) + CHR$((Y MOD 32) OR 96) + CHR$((X\32) OR 32) + CHR$((X MOD 32) OR 64) +2030 RETURN diff --git a/app.dsk b/app.dsk index 7cea243..5b53492 100644 --- a/app.dsk +++ b/app.dsk @@ -1,6 +1,6 @@ ACKER COMACKER SPLBOOTGEN COM BOOTGEN SPL- SPL TXTSPL TXT !"#$%&'SPL TXT (SPLERRORDAT2)*+,DIF SPLNFAC COM -FAC SPLFAMILY PROXFORMAT SPL(:;<WRITE COM=>WRITE SPLo?@ABCDEXFORMAT COMFGINTEGER PRO$KNAKE PRO%LINKMT COMZ&'()*+MTERRS TXT&,-.BOOT MACRURL COMSTBOOT COMUMBASIC COMVWXYZ[\]MTPLUS 004DEFGHIJKMTPLUS 004LMTPLUS 005=MNOPMTPLUS 006.QRSPASCFORMCOMnopqrstuPASCFORMCOMvwPASCFORMPASxyz{|}~PASCFORMPASPASLIB ERL>PINST COMPINST SPLtPRIM COMPROLOGZ SPLPROLOGZ SPL*PROLOGZ TXTPROLOGZ TXTREAD SPLnRELDUMP COMRELDUMP SPLJSHOWSEC COMSPEED SPLSPL COM SPL COM[ +FAC SPLFAMILY PROXFORMAT SPL(:;<WRITE COM=>WRITE SPLo?@ABCDEXFORMAT COMFGINTEGER PRO$KNAKE PRO%LINKMT COMZ&'()*+MTERRS TXT&,-.BOOT MACRURL COMSTBOOT COMUMBASIC COMVWXYZ[\]MTPLUS 004DEFGHIJKMTPLUS 004LMTPLUS 005=MNOPMTPLUS 006.QRSTEKTEXT2BASePASCFORMCOMnopqrstuPASCFORMCOMvwPASCFORMPASxyz{|}~PASCFORMPASPASLIB ERL>PINST COMPINST SPLtPRIM COMPROLOGZ SPLPROLOGZ SPL*PROLOGZ TXTPROLOGZ TXTREAD SPLnRELDUMP COMRELDUMP SPLJSHOWSEC COMSPEED SPLSPL COM SPL COM[    SPL TXTC SUB CALC PRO CR SUBDIF COMSYSCOPY SPL&-./SYSCOPY COM 0WC SPLb1234567WC COM 89FORMEL COMFORMEL SPL1 HDIR COM !HDIR SPL "#URL SPL/HIJSPLRTLB RELKLR COM!MNOW COMPQMTPLUS 000d/012345MTPLUS 001T6789:;MTPLUS 0027<=>?MTPLUS 003;@ABCMBASIC COM>^_`aLOOKBUSYBASbTEKTEXT BAScTEKLINESBASdMTPLUS COMTUVWXYZ[MTPLUS COM\]^_`abcMTPLUS COMdePASCFORMCOMfghijklmPASCFORMPASPASCFORMPAS#PASCFORMSUBPASLIB ERLPRIM SPL PROLOGZ COMwPROLOGZ SPLPROLOGZ SPLPROLOGZ TXT<PROLOGZUMACQUEEN PROREAD COM SHOWSEC SPL3SIEVE COMSIEVE SPL)SPEED COM Please enter X and Y (0 0 to exit): $Ackermann($, $) = $ ! nf͟ !ng͟ ! ^Vڊ!PROCEDURE HALT; EXTERNAL; CONST { BDOS functions } @@ -14514,19 +14514,46 @@ Owned b 30 GS$=CHR$(29) 40 US$=CHR$(31) 50 CSI$=ESC$+"[" -60 PRINT CSI$+"?38h" 0 PRINT GS$+C1$+C2$+US$+CHR$(13) +60 PRINT CSI$+"?38h" Tektronix mode +80 PRINT CSI$+"?38h" +90 REM Print random-sized text in random positions +100 FOR I=1 TO 200 +110 X=RND(8)*1024100 PRINT GS$+C1$+C2$+US$+CHR$(13) 110 NEXT 120 REM Pause for a short time 130 FOR I = 1 TO 10000: NEXT -140 PRINT CSI$+"?38l" ) + CHR$((X\32) OR 32) + CHR$((X MOD 32) OR 64) -190 RETURN -ns them in xy$ -180 XY$=CHR$((Y\32) OR 32) + CHR$((Y MOD 32) OR 96 +140 PRINT CSI$+"?38l FOR I = 1 TO 10000: NEXT +160 REM Back to VT mode +170 PRINT CSI$+"?38l" +180 END +1000 REM move-to (X, Y) +1010 GOSUB 2000 +10OR 96) + CHR$((X\32) OR 32) + CHR$((X MOD 32) OR 64) +1030 RETURN + them in xy$ +1020 XY$=CHR$((Y\32) OR 32) + CHR$((Y MOD 32) (Y\32) OR 32) + CHR$((Y MOD 32) OR 96) + CHR$((X\32) OR 32) + CHR$((X MOD 32) OR 64) +2030 RETURN + them in XY$ +2020 XY$=CHR$(10 REM Play with Tektronix graphics +20 ESC$=CHR$(27) +30 GS$=CHR$(29) +40 US$=CHR$(31) +50 CSI$=ESC$+"[" +60 SZ$="89:;" +70 REM 70 FOR I = 1 TO 200 -80 X=RND(8)*1024: Y=RND(8)*768: GOSUB 160: C1$=XY$ -90 X=RND(9)*1024: Y=RND(9)*768: GOSUB 160: C2$=XY$ -10 +80 X=RND(8)*1024: Y=RND(8)*768: GOSUB 1000: C1$=XY$ +90 X=RND(9)*1024: Y=RND(9)*768: GOSUB 1000: C2$=XY$ +: Y=RND(8)*768:GOSUB 1000 +120 PRINT ESC$+MID$(SZ$,INT(RND(2)*4)+1,1)+"Tektronix" +130 NEXT +140 REM Pause for a short time +150" 150 END -160 REM calculate coordinates for x,y -170 REM returns them in xy$ -180 XY$=CHR$((Y\32) OR 32) + CHR$((Y MOD 32) OR 96 \ No newline at end of file +1000 REM calculate coordinates for x,y +1010 REM returns them in xy$ +1020 XY$=CHR$((Y\32) OR 32) + CHR$((Y MOD 32) 20 PRINT GS$+XY$+US$; +1030 RETURN +2000 REM calculate coordinate string for (X,Y) +2010 REM returns them in XY$ +2020 XY$=CHR$( \ No newline at end of file