diff --git a/README.md b/README.md index 103c8b0..6341da7 100644 --- a/README.md +++ b/README.md @@ -56,12 +56,16 @@ tested this on my Macintosh with Virtualbox and Ubunto, and it works very well! There is a file "captured_data" in the repo, which you can use to test the tek4010 emulator. "captured_data" was produced in 2.11 BSD using my program "dodekagon". Type - ./tek4010 -noexit cat captured_data + ./tek4010 -noexit cat dodekagon.plt If you want to test text output, type for example ./tek4010 -noexit head -n 32 tek4010.c +If you want to test an animation, type + + ./tek4010 cat animation.plt + Don't forget the option "-noexit", which tells tek4010 to stay alive after cat or head has finished so that you have a chance to look at the output. For a list of all possible options, see the chapter "Options of the command tek4010" below. diff --git a/animation.plt b/animation.plt new file mode 100644 index 0000000..929fedf --- /dev/null +++ b/animation.plt @@ -0,0 +1,2 @@ +This program requires a Tektronix 4014 terminal! + 1p)BA BOUNCING BALL on the PiDP-110z(Tusing a Tektronix 4014 terminal0d#@demonstrates up to 4K graphics capabilities in the 1970's.x)]PiDP-11 by Oscar Vermeulen.b#\https://obsolescence.wixsite.com/obsolescence/pidp-11,v&Otek4010 terminal emulator by Rene Richarz,`'Xhttps://github.com/rricharz/Tek4010*t&Oanimation on 2.11 BSD Unix by Rene Richarz)~&Ohttps://github.com/rricharz/pidp11-2.11bsd 7v @A BOUNCING BALL on the PiDP-11 j @Reflection off a circle7v5SRunning on 2.11 BSD Unix j6NUsing tek4014 emulator ` @`?^8k^k @ `@ a Aa?]8j]j A aA,f6GGlFrFxFE-eDkCqBw@}5_.c]i[oXuV{S/`QfNkKqGvD{@0`4]eYjUnPsLwG|C1`3^dYgTkOnJrDu2_xYzT}NH2bBd1\fVgPiJjDk0^lXmQKEn/_mYSMlFk@j.ZiTgNfHdBb-\1V}PzJxEu,_rZnTkOgJdE`@0|+[wWsRnNjIeE`A/{*^vZqWkSfP`M.{KuHoFiCcA-})_w^q\k[eZ,YxXrXlXfW`X+zXtXmYgZa[*{\u^o_i*AcC)}FwHqKlMfPaS({WvZq^l+AgEbI'~NyRuWp[l,@hEeJaO&~TzZw_t-ErJoPmVj\h.BfHeNcTbZa/@`F%MSY~_0EKQ&`Xa^b1DcJePfVh\j2BmHoNrTtYw_z3D~J'aOeThYl^p4CuGyL~P(bUgYl]q5@vD{G)aKfNlQqSwV}X*c[i]o_u6@{B+aCgDmEtFzF,`FfG,f6FFlErExED-eCkBqAw5_}^.c\iZoWuU{R/`PfMkJqFvC{4_0`[eWjSnOsKwF{A3]1cXgSkNnHqCt2]wXzR}LG2aAc1[eUgOhIiBj0\kVlPICl/^XQkKEj._iXgRfLdFb@`-Z1~T{OyIvCs,^pXlSiNeIaD0}+_yZuVqQlMgIbE/}Ax*]sYnViScP.}MxJrHlEfC`A-z@t)^n]h[b[,{ZuYoYiYcY+}YwYqZj[d[*~]x^r*@lAfC`E)zHtJoMiPcS(~VyYt]o+AjEeI`M'{QwVsZo_k,DgIcN`S&|Xy^v-CsIqOnTlZj.@hFfLeRcXb_a/EK`QX^`0CIPaVb\c1BdIeOgUi[k2AmGoLrRuXx]{3C~H'aNeSiXm]q4AuFyK~O(bSgWl[q_v5C{F)aJfMlPqRwU}W*cZi\o^u_{6A+aBgCmDtEzE,`EfFp ~!H!bFfCh ^fZcV ~TzVvYt^v!ByF~H!h!\lZpWrRpNmJhHdJ`M ~R!`VcZh\!r"PvNzK|FzBw!^r\n^j"AhFjJmNrP!|#D"`Bd"_fZdVaR!|PxRtUrZt^w#B|D"f#XjVnSpNnJkFfDbF!~I|N~R"aVfX"p$LtJxGzBx#^uZpXlZh]f$BhFkJpL"z%@~$^#b[dVbR"NzLvNrQpVrZu^z%@#d%ThRlOnJlFiBd@`B"|EzJ|NR#dT#n&HrFvCx%^vZsVnTjVfYd^f&BiFnH#x&\|Z$`WbR`N#}JxHtJpMnRpVsZx\$b'PfNjKlFjBg&^b\#~^z'AxFzJ}N$bP$l(DpBt'_vZtVqRlPhRdUbZd^g(BlD$v(XzV~S%`N$~J{FvDrFnIlNnRqVvX%`)LdJhGjBh(^eZ`X$|Zx]v)BxF{J%`L%j*@n)^r[tVrRoNjLfNbQ`VbZe^j*@%t*TxR|O~J|FyBt@pBlEjJlNoRtT%~+H&bFfCh*^fZcV%~TzVvYt^v+ByF~H&h+\lZpWrRpNmJhHdJ`M%~R&`VcZh\&r,PvNzK|FzBw+^r\n^j,AhFjJmNrP&f-EjCn@p,[nWkSfQbS%~V|[~_&a-CfE%p-FtDxAz,\xXuTpRlThWf\h-@kDpF$z-G~E%bBd,]bY$UzSvUrXp]r-AuEzG$d-HhFlCn,^lZiVdT`V#|Yz^|-BF$dH#n-IrGvDx,_v[sWnUjWfZd_f-CiGnI"x-J|H#`Eb@`,\"}XxVtXp[n-@pDsHxJ"b-KfIjFlAj,]gYbW!~Yz\x-AzE}I"bK!l-LpJtGvBt,^qZlXhZd]b-BdFgJlL v-MzK~H!`C ~,_{[vYr[n^l-CnGqKvM j-NnLrItDr@o,\jZf\b_`-DbHeLjN!`-OdMhJjEhAe,]`[ |]x-@vExI{M!`O!v-PzN~K"`F!~B{,^v\r^n-AlFnJqNvP"l-QpOtLvGtCq,_l]h_d-BbGdKgOlQ#b-RfPjMlHjDg@b,^"~-@zCxHzL}P#bR#x-S|Q$`NbI`E#}Ax,_t-ApDnIpMsQxS$n-TrRvOxJvFsBn@jBfEdJfNiRnT%d-UhSlPnKlGiCdA`C$|FzK|OS%dU%z-V~T&bQdLbH%DzBvDrGpLrPuTzV&a-GeEiBk,]iYfUaS%}UyXw]y-A|E&aG%r,WvUzR|MzIwErCnEjHhMjQmUrW%c,GgEkBm+]kYhUcS$U{Xy]{,A~E%cG$t+WxU|R~M|IyEtCpElHjMlQoUtW$e+GiEmBo*]mYjUeSaU#}X{]}+A$`EeG#v*WzU~R$`M#~I{EvCrEnHlMnQqUvW#g*GkEoBq)]oYlUgScU"X}]*A#bEgG"x)W|U#`RbM`I"}ExCtEpHnMpQsUxW"i)GmEqBs(]qYnUiSeUaX!]"a)AdEiG!z(W~U"bRdMbI!EzCvErHpMrQuUzW!k(GoEsBu']sYpUkSgUcXa]c(AfEkG |'W!`UdRfMdIaE |CxEtHrMtQwU|W m'GqEuBw&]uYrUmSiUeXc]e'AhEmG h&WlUpRrMpImEhCdE`HMQcUhW w&G{EB!a%] Y|UwSsUoXm]o&ArEwG!f%WjUnRpMnIkEfCbE ~H|M~Q!aUfW!u%GyE}B$]}YzUuSqUmXk]m%ApEuG"d$WhUlRnMlIiEdC`E!|HzM|QU"dW"s$GwE{B}#]{YxUsSoUkXi]k$AnEsG#b#WfUjRlMjIgEbC"~EzHxMzQ}U#bW#q#GuEyB{"]yYvUqSmUiXg]i#AlEqG$`"WdUhRjMhIeE`C#|ExHvMxQ{U$`W$o"GsEwBy!]wYtUoSkUgXe]g"AjEoG$~!W%bUfRhMfIcE$~CzEvHtMvQyU~W%m!GqEuBw ]uYrUmSiUeXc]e!AhEmG%| W&`UdRfMdIaE%|CxEtHrMtQwU|W&k QoOsLuGsCp@k@g@cBaGcKfOkQ&z!A~ _'b\dWbS&OzMvOrRpWr[u_z!A'i!QmOqLsGqCn _i]e_a!B&G'aKdOiQ'x"A|!_(`\bW`S'}OxMtOpRnWp[s_x"A(g"QkOoLqGoCl!_g]c_'"B}GK(bOgQ(v#Az"_~\)`W(~S{OvMrOnRlWn[q_v#A)e#QiOmLoGmCj"_e]a_(}#B{G}K)`OeQ)t$Ax#_|\~W|SyOtMpOlRjWl[o_t$A*c$QgOkLmGkCh#_c])_{$ByG{K~O*cQ*r%Av$_z\|WzSwOrMnOjRhWj[m_r%A+a%QeOiLkGiCf$_a]*}_y%BwGyK|O+aQ+p&At%_x\zWxSuOpMlOhRfWh[k_p&A+&Q,cOgLiGgCd%_+]{_w&BuGwKzOQ,n'Ar&_v\xWvSsOnMjOfRdWf[i_n'A,}'Q-aOeLgGeCb&_,}]y_u'BsGuKxO}Q-l(Ap'_t\vWtSqOlMhOdRbWd[g_l(A-{(QO.cLeGcC`'_-{]w_s(BqGsKvO{Q.j)An(_r\tWrSoOjMfObR`Wb[e_j)A.y)Q}O/aLcGaC.~(_y]u_q)BoGqKtOyQ/h*Al)_p\rWpSmOhMdO`R.~W/`[c_h*A/w*Q{OL0aG/C|)_w]s_o*BmGoKrOwQ0f+Aj*_n\pWnSkOfMbO/~R|W~[0a_f+A1f+_j]nZpUnQkMfKbM0~P|U~Y1a]f_1w,M{KH2aC1+_|[wYs[o^m,CoGrKwM2h,[lYpVrQpMmIhGdI`L1~Q2`UcYh[2y-I}G3aDc,_a[2~WyUuWqZo_q-CtGyI3j-WnUrRtMrIoEjCfEbH`MbQeUjW3{.EC4c@e-[cW`S3{QwSsVq[s_v.C{E4l.SpQtNvItEqAl-_h.AdDbIdMgQlS4}/A5a._e\gWeSbO4}MyOuRsWu[x_}/A5n/OrMvJxEvAs.]n[j]f/@dEfIiMnO5/]6c[gXiSgOdK5I{KwNuSwWz[]6p0KtIxFzAx/]uYpWlYh\f0AhEkIpK7a0YeWiTkOiKfGaE6}GyJwOyS|W7aY7r1GvEzB|0]zYwUrSnUjXh]j1AmErG7y1U}S8aPcKaG7~CyAuCqFoKqOtSyU7h2ClAp1^rYpUmQhOdQ`T6~Y7`]c2AhC6w2Q{OL7aG6C|1_w]s_o2BmGoKrOwQ6f2_j]nZpUnQkMfKbM5~P|U~Y6a]f_5u3MyK}HC}2_z[uYq[m^k3CmGpKuM5d3[hYlVnQlMiIdG`I4|LzQ|UY5d[4s4IwG{D}3_{[xWsUoWkZi_k4CnGsI4b4WfUjRlMjIgEbC3~EzHxMzQ}U4bW3q5EuCy@{4[yWvSqQmSiVg[i_l5CqE3`5SdQhNjIhEeA`4_2|5AxDvIxM{Q3`S2o6As5_w\yWwStOoMkOgReWg[j_o6A1~6O2bMfJhEfAc5]1~[z]v6@tEvIyM~O1m6]q[uXwSuOrKmIiKeNcSeWh[m]0|7K1`IdFfAd6]aY0|WxYt\r7AtEwI|K0k7YoWsTuOsKpGkEgGcJaOcSfWkY/z8G~E0bBd7]bY/UzSvUrXp]r8AuEzG/i8UmSqPsKqGnCiAeCaF.K/aOdSiU.x9C|A/`8^bY`U.}QxOtQpTnYp]s9AxC.g9QkOoLqGoCl8_g]c_-9B}GK.bOgQ-v9_z]~Z.`U-~Q{MvKrMnPlUnYq]v_-e:MiKmHoCm9_j[eYa[,}^{:C}G-`KeM,t:[xY|V~Q|MyItGpIlLjQlUoYt[,c;IgGkDm:_k[hWcU+W{Zy_{;C~G,cI+r;WvUzR|MzIwErCnEjHhMjQmUrW+aKpItFvAt=]qYlWhYd\b>AdEgIlK'{>YW(cTeOcK`G'{EwGsJqOsSvW{Y'j?GnErBt>]rYoUjSfUbX`]b?AeEjG&y?U}S'aPcKaG&~CyAuCqFoKqOtSyU&h?YlWpTrOpKmGhEdG`J%~O&`ScWhY%w?K{IF&aA%>]|YwWsYo\m?AoErIwK%f>]j[nXpSnOkKfIbK$~N|S~W%a[f]$u>OyM}JE}Az=]u[q]m>@kEmIpMuO$d>Ah=_l\nWlSiOdM`O#|RzW|[_$d>A#s=SwQ{N}I{ExAs<_o=AkDiIkMnQsS#b=EfCj@l<[jWgSbQ"~SzVx[z_}=C#bE"qM#bKfHhCf=_c["~Yz[v^t>CvGyK~M#n>]r[vXxSvOsKnIjKfNdSfWi[n]#~?M$bKfHhCf>_c[#~Yz[v^t?CvGyK~M$n?]r[vXxSvOsKnIjKfNdSfWi[n]$~?^%b^f^hYfUcQ$~OzQvTtYv]y^~^%n?SrQvNxIvEsAn>_j?AfDdIfMiQnS%~?C&bAf>^hYfUcQ%~OzQvTtYv]y?A~C&n>SrQvNxIvEsAn=_j>AfDdIfMiQnS&~>C'bAf=^hYfUcQ&~OzQvTtYv]y>A~C'n=SrQvNxIvEsAn<_j=AfDdIfMiQnS'~=C(bAf<^hYfUcQ'~OzQvTtYv]y=A~C(nErCv@x=[vWsSnQjSfVd[f_i>CnE2r>[vYzV|QzMwIrGnIjLhQjUmYr[2v?QzO~L3`G2~C{>_v]r_n?BlGnKqOvQ2z?]~[3bXdSbO2KzIvKrNpSrWu[z]2~?G3bEfBh>]fYcU2~SzUvXt]v?AyE~G3b>QfOjLlGjCg=_b]2~_z>BxGzK}O3bQ3f=[jYnVpQnMkIfGbI2~L|Q~U3aYf[3j=EnCr@t<[rWoSjQfSbV`[b_e=CjE3nEhCl@n=[lWiSdQ`S1|Vz[|_>C2dE2`>[dYhVjQhMeI`G1|IxLvQxU{Y2`[1|?Q2`OdLfGdCa>_1|]x_t?BrGtKwO|Q1x?]|[2`XbS`O1}KxItKpNnSpWs[x]1t?GxE|B~>]|YyUtSpUlXj]l?AoEtG1p>QtOxLzGxCu=_p]l_h>BfGhKkOpQ1l=[pYtVvQtMqIlGhIdLbQdUgYl[1h=ElCp@r<[pWmShQdS`V0~[1`_c=ChE1dFoDsAu=\sXpTkRgTcWa\c>@fDkF0x>Q|O1`LbG`C0}=_x]t_p>BnGpKsOxQ0e>\iZmWoRmNjJeHaJ/}M{R}V0`Ze\/r?GvEzB|>]zYwUrSnUjXh]j?AmErG.?R/cPgMiHgDd@.>^{?@wCuHwLzPR.l?]p[tXvStOqKlIhKdNbSdWg[l]-y?^}\.aYcTaP-~LyJuLqOoTqXt\y^-f?SjQnNpInEkAf>_b?A,~D|I~M-aQfS,s?HwF{C}>^{ZxVsToVkYi^k?BnFsH,`>]d[hXjShOeK`I+|KxNvSxW{[,`]+m>RqPuMwHuDr@m=^i>@eCcHeLhPmR*z>G~E+bBd=]bY*UzSvUrXp]r>AuEzG*g=\kZoWqRoNlJgHcJ)M}RV*bZg\)t=QxO|L~G|Cy<_t]p_l=BjGlKoOtQ)a=FeDiAk<\iXfTaR(}TyWw\y=@|D)aF(n<[rYvVxQvMsInGjIfLdQfUiYn['{HmFqCs=^qZnViTeVaY"^#a>BdFiH#y>X}V$aScNaJ#~FyDuFqIoNqRtVyX$i?HmFqCs>^qZnViTeVaY#^$a?BdFiH$y?X}V%aScNaJ$~FyDuFqIoNqRtVyX%i?^m\qYsTqPnLiJeLaO$T%aXd\i^%y?N}L&aIcDa@%~>\yZu\q_o?DqHtLyN&i>^m\qYsTqPnLiJeLaO%T&aXd\i^&y>N}L'aIcDa@&~=\yZu\q_o>DqHtLyN'i=^m\qYsTqPnLiJeLaO&T'aXd\i^'y=N}L(aIcDa@'~<\yZu\q_o=DqHtLyN(i<^m\qYsTqPnLiJeLaO'T(aXd\i^(yMeKiHkCi=_f[aY$}[y^w>CyG|K%aM$y?N}L%aIcDa@$~>\yZu\q_o?DqHtLyN$q?^u^y^{[yWvSqQmSiVg[i^l^q^$h?DlBp>_rZpVmRhPdR`U#~Z$`^c?BhD#>C$cAg=^iYgUdQ#O{QwTuYw]z>AC#u=By@}<]X}TzPuNqPmSkXm\p=@uB#k\kZoWqRoNlJgHcJ&M}RV'bZg\'e?\iZmWoRmNjJeHaJ&}M{R}V'`Ze\'c?^g^k^m^k^h^c^&^{^y^{^~^'c^'`?RdPhMjHhDe@`>^&|?@xCvHxL{P'`R&}>R'aPeMgHeDb@&}=^y>@uCsHuLxP}R&y=R}P'aMcHaD&~@y<^u=@qCoHqLtPyR&uPhNlKnFlBi=^d\`^.|>AzF|JN/dP/w?C{A>^0aY/U|QwOsQoTmYo]r?AwC0j?VnTrQtLrHoDjBfDbG`LbPeTjV0|?^1`]dZfUdQaM0|KxMtPrUtYw]|^1n?LrJvGxBv>^sZnXjZf]d?BfFiJnL1>Y2cWgTiOgKdG1E{GwJuOwSzWY2p>FtDxAz=\xXuTpRlThWf\h>@kDpF3`=SdQhNjIhEeA`<_2|=AxDvIxM{Q3`S3p=@t<^x[zVxRuNpLlNhQfVhZk^p=@3IdGhDj=_h[eW`U(|WxZv_x>C{G)`I)q?Bu@y>]{XyTvPqNmPiSgXi\l?@qB*a?[eYiVkQiMfIaG)}IyLwQyU|Y*a[*q?^u^y^{^y\vXqVmXi[g^i^l^q^+`?QdOhLjGhCe>_`]*|_x?BvGxK{O+`Q+o>XsVwSyNwJtFoDkFgIeNgRjVoX+}=_,a]eZgUeQbM+}KyMuPsUuYx]}_,k=FoDsAu<\sXpTkRgTcWa\c=@fDkF,xJ-cHgEi@g=\dX,V{Xw[u>@wDzHJ,s?DwB{>_}Z{VxRsPoRkUiZk^n?BsD,f?^j\nYpTnPkLfJbL+~O|T~X,a\f^+y?^}^,a^c^a^+~\yZu\q^o^q^t^y^+k?ToRsOuJsFpBk@gBcEaJcNfRkT*}>Z+aXeUgPeLbH*}FyHuKsPuTxX}Z*n>@r=^v[xVvRsNnLjNfQdVfZi^n>@)=F*cDgAi<\gXdT)R{TwWu\w=@zDF)o