8L2C)pJJJJ IH(ȱH:=IH[H`@HcH  $ +   I/H`JLNGȄBȄF aK  haaFF  mJm# KKJ UJ )J ۈ) ;J3ȱJFȱJGJKaȄM  aaNNJFLGJL L T2A2.DISK  ' 'MANDEL2x.ZMANDEL2.CC" )TRANSTEST-FXTRPROC.H39? &PRODOS `DaElH$?EGvѶK+`L HHLy XP LM ŠϠĠӠS)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8RU,C ~ExpressLoadU  ((,E - (0E ("" ""E";8!z@)*(wxuvst@(*"q()$!}p#(*((**((((*((*((*(pd{# @!$ @y$ @!! @$p! @!#!(*()D""pR{"pR!!((((,A""@``B!$B!J!`a&O!``#s``ba)"PPPpsvwD!tr!urqrwrzxtsH!#`q#!!"PP2%!' !sRDsRDq$ @$r# @!$ @! @$$qbA$#!!D$D!D$D!D$H!D$H!D$H!D$H!D$D!!(((!`)(!(!!(((!~`)(!(!w!x@!~|@,!{!|!@F!`I!$qyy!y!@KyqyI"`Ls""%zy@%sA#sr@a!x!*@%!!////O$B#////O$A#!////O$¨!////H////H!tD!tD!!tD!pF%~D!x}%!!r!q!r!!q{%|y!q$x!t{D"y$!q}}D"u$!h5 i H i H:">ں"Fh+;ikMandelbrot Demo running on T2A Transputer card (c)2010, by Axel Muhr - www.geekdot.com T2A expected in SLOT #4. Press RETURN to start...   i H>ih i Hh>H7"H."HH"hc: "<H>ih:H>ih>S">S"ںBHDH>H@H"^ "hں "hں"Ihں@H"Bh6""  ں"h IHH  "hZ ں"Sh3    # 80 3H`h   +;ik;8 [ ":;i ?# ":;i ?+ ":;i + " I  ":;i  @  ںs "hں "hں+ ":;i  " ں"h  +;ik;8 [) ":;i ?# ":;i ?+ ":;i + " I  ":;i  @  ں"h/, H "# ":;i {iH" ":;i + "+ " ;iH """ 8""f"B{iH":;i + "+ " ;iH """ 8""f"B ":;i {iH"i H"hں{i HH"h+;iHkmandel.t8;8  [# " ;iH """ 8""f ;iH "{iH":;i # " ;iH """ 8""f ;i"h ʎ!  ںH "hںH "hںH# "hںH+ "hںH "h ʎ!  ںH "h 8pI0ʊBں H{ʊ" ee)H 8IH7"-" ee)H7"H H:"H H<"L  +;ik;8H [H."ںT"%h ʎ!  ںH  +;ik;8  [)Hh  ))Hh  ))Hh  ) N8 pI0ʊ )Hh  )ںH5 "h +;ik;8 [ 8pI0 [8pI0ʊS)) h)Hh  )  +;ik;8 [8pI0ʊS)))H hh  ) LVEITGKeBa)a)a a"cc"  kGHEH"(k;iH"8hihz;oZګkɅ) zhZ(H  H"khkHHH"zhZګkL"I  H \h\!KzZڭHH; ["]i # " Ȁk;iHi H "  ;i k;iHi H "  ;i kLn; [y " +;ikKu u kq s q)q k"LK  kw q s q" k p".0.# e0 Q8. Q0` ΰ`  HH "᭖I )m :͢΢8;8 ;i  "00 c0eE0) ΰPT6100 :P. 蘼0Θ)8I0 H"00 0"Θ)Z)H"zi HHHHZګH;HiH "hk; [{iHHH "+;ik;iHi H "  ;i kcc c I- 8 HH " "0ehih ` QT0R   !NnnnjJJJJJ 0R00N`0 "Θ`KI; [  8+hhzhhZګk; [ +hzzH`zHSٰ S 8ΘΘΘR ٰ 8I0 H" H"H"00 H"Θ 0"΢ȹ) SZ)H"zȀ뭜 HH H ) ͢8 Z)H"zΪhih %Θ H"!8  I-HHS '" &"᭤ 02 ' ٰΘ %"7   QT0RNnnnjJJJJ 0:i    ˭ X 00 HH ȷ  HL  ) m ȭ m  ȷ   ȭ    i ȷ i )8  ȷ :  )    I   )   +;i k;8 [K H H"  ) ) ) m 4"cc"C H H 2     {i  ȷ  ȷ  " I`)0:)HII mIcI%RnsbpjctXpxbo&udifeEgeGj\  +k   ). )l Lh )@K Y|K)-,0"+ + #8``I)*I)    X V +hhkKHH ;[$hHHhk֯HH"+hh`8gMIEGkK ;[)%H" " Ȁ  ZZ8czHHHH "* Out of memoryY"`!\!h h  VXmZ  Ȁ  X V )s  "   i  ")0"! n". "/ "- s .  "0  p q ` . qq K"H"H""/#kIgh#"{"W"c"0%$&+'&7''/'''+ +  ] |# + +  s   ,  & = >Q  : > > > >" 9 WIiYqtI9: KNQTWZ]`cfi  3cfipuxHKQ CThknq}T ? [ w# +   g# q  #    $# A Q+ [+ e + +   + y # 16;>BEHKNcux-369FQ\adqvy5 =Cc%/2B^zjt 'DT^h %/\_|3579;` /mw})@Tft % #include #include #include #include #include "trproc.h" BOOLEAN done; /* are we done, yet? */ BOOLEAN mouseI! +, /* Default values */ top=1.125; bottom=-top; maxiterations=32; xpoints=320; ypoints=200; printf("Mandelbrot Demo running on T2A Transputer card\n"); printf("(c)2010, by Axel Muhr - www.geekdot.com\n"); printf("T2A expected in SLOT #4.\n\n"); printf("Press RETURN to start..."); (void) getchar(); startdesk(320); /* start the tools */ PenNormal(); /* set up normal pen parameters */ InitCursor(); /* start the1:PEEKING. dOUT,0:OUT,0:OUT,0:OUT,128K n(IN);(IN);(IN);(IN)U R(4)} "SENDING PROGRAM TO TRANSPUTER..." X124 T:OUT,T OS,1 X :"READING RESULT:" C0:RETRIES C10220 X05000:X:DELAY ERERRROR: ";((RESET)1)2 -"SENDING POKE COMMAND"= .OUT,0Y 2"O STATUS: ";((OS)1)_ ::y ;"SENDING DATA TO T." <OUT,0:OUT,0:OUT,0:OUT,128 =OUT,12:OUT,34:OUT,56:OUT,78 F"I STATUS: ";((IS)1) O: P"READING FROM T." ZOUT, "INIT TRANSPUTER"D BASE49344:INBASE:OUTBASE1:ISBASE2k OSBASE3:RESETBASE8:ANABASE12 RESET,0:ANA,1:RESET,1CLEAR I/O ENABLEIS,0OS,0READ STATI"I STATUS: ";((IS)1)#"O STATUS: ";((OS)1) ("E./0P~I >ts>t  sk(); } rb.h2 = curpos.h; rb.v2 = curpos.v; FrameRect(&rb); // draw frame... FrameRect(&rb); // and delete it again } newdrawpicture(rb.h1,rb.v1,rb.h2,rb.v2); } else { MoveTo(myEvent.where.h, myEvent.where.v); } } endde else if (myEvent.what == mouseUpEvt) mouseIsDown = FALSE; if (mouseIsDown) { rb.h1 = myEvent.where.h; rb.v1 = myEvent.where.v; SetSolidPenPat(white); SetPenMode(modeXOR); while(StillDown(0)) { GetMouse(&curpos); while (!done) { /* handle the events */ if (GetNextEvent(everyEvent, &myEvent)) if (myEvent.what == keyDownEvt) HandleKey(); else if (myEvent.what == mouseDownEvt) mouseIsDown = TRUE; arrow cursor */ done = FALSE; /* we aren't done, yet */ mouseIsDown = FALSE; /* the mouse is not down */ //startgraph(320); drawpicture(); /* calculate initial picture */ 1:ER10220$ ((IS)1)01813 R(C)(IN)B CC1:ER0K 180i ------------------------ C1ĺ"C004 FOUND" C2ĺ"16 BIT TRANSPUTER FOUND" C4ĺ"32 BIT TRANSPUTER FOUND" C0C4ĺ"COULD NOT IDENTIFY"" 23,177,209,36,242,33,252,36,242,33,248E 240,96,92,42,42,42,74,255,33,47,255,2,0) gettr((char *)(&f),4) #define gettrdouble(d) gettr((char *)(&d),8) // This is the Transputer code static char mandel[] = { 0x46,0x21,0xb8,0x90,0x60,0x49,0x21,0xfb, 0xda,0x24,0xf2,0xd9,0x71,0x79,0xf4,0xd8, 0x79,0x21,0xfc,0x79,0x21,0xf8,0x40,0; *string++ = (char)inp(inreg); } } #define gettrchar(c) gettr(&c,1) #define gettrshort(s) gettr((char *)(&s),2) #define gettrint(i) gettr((char *)(&trdummy),4);\ i=(int)trdummy} #define gettrlong(l) gettr((char *)(&l),4) #define gettrfloat(fhar *)(&l),4) #define puttrfloat(f) puttr((char *)(&f),4) #define puttrdouble(d) puttr((char *)(&d),8) /* length Bytes empfangen - via pointer */ void gettr(char *string,int length) { int i; for (i=0; i /* O_.. */ #define SLOT 4 #define inp(addr) (*(unsigned char*) (addr)) //PEEK #define outp(addr,val) (*(unsigned char*) (addr) = (val)) //P21AB456789:;<=>?@xd1, 0x4b,0xd2,0x79,0x71,0x79,0xfa,0xe0,0x11, 0x49,0x22,0xf1,0x60,0x4c,0x73,0xfa,0xd4, 0x22,0xfa,0xd5,0x22,0xf9,0xc0,0xd6,0x25, 0xf7,0x7a,0x79,0xf4,0xd7,0x40,0x25,0xf4, 0x12,0x73,0x41,0x23,0xf4,0xf7,0x19,0x73, 0x72,0xf7,0x40,0x19,0xf2,0xb2,0xf6,0xcc, 0x00,0x00,0x00,0x61,0xbd,0x21,0x78,0x21, 0x2a,0x40,0x25,0xf2,0x21,0xd2,0x21,0x2f, 0x2f,0x2f,0x2f,0x4f,0x24,0xf2,0xf2,0x42, 0xf0,0x23,0xfb,0x2f,0x2f,0x2f,0x2f,0x4f, 0x24,0xf2,0xf2,0x41,0xf0,0x23,0xfb,0x21, 0x2f,0x2xd9,0x60,0x1a,0x23,0xf9,0x73,0x60, 0xd6,0x10,0x60,0xd5,0x62,0xb5,0x61,0x29, 0x01,0xb4,0x22,0xf0,0x50,0x50,0x50 }; int loadtr(char *name) { /* Occam-Programm laden */ int i; // file,length; char occamprog[512]; /* file0x28,0xf4,0x1b,0x2c, 0x41,0x22,0xf1,0x22,0x1b,0xf3,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x10,0x40,0x60, 0xbc,0x60,0x42,0x21,0xfb,0xd3,0x24,0xf2, 0xd2,0x42,0xd1,0x21,0x4a,0x21,0xfb,0xd0, 0x10,0x60,0xdd,0x61,0x26,0x4f,0x21,0xfb, 0x60,0,0x70, 0x21,0x20,0x40,0x21,0xf3,0xf0,0x23,0xfb, 0x1f,0x21,0x13,0x28,0xfa,0x2a,0xf6,0x1f, 0x28,0xf4,0x19,0x29,0x44,0x22,0xf1,0x22, 0x70,0x52,0x7b,0xff,0x22,0x70,0x52,0x21, 0x7f,0xff,0x21,0x11,0x1d,0x28,0xfa,0x28, 0xfa,0x28,0xf9,0x1d,8,0xfa,0x2a,0xf8,0x15,0x28,0xf4,0x13, 0x13,0x28,0xfa,0x2a,0xf8,0x11,0x28,0xf4, 0x70,0x81,0xd0,0x64,0x01,0x7b,0x23,0x20, 0x40,0x21,0xf3,0x24,0x20,0x40,0xf8,0x79, 0x24,0x20,0x40,0x21,0xf3,0xf5,0x21,0x20, 0x20,0x20,0x40,0x24,0xf2,0xfa,0xf224,0xa0,0x21,0x7d,0x70, 0xf9,0x23,0xaa,0x17,0x13,0x28,0xfa,0x2a, 0xf8,0x13,0x28,0xf4,0x13,0x13,0x28,0xfa, 0x2a,0xf6,0x1d,0x2a,0xf6,0x13,0x28,0xf4, 0x11,0x15,0x28,0xfa,0x28,0xfa,0x28,0xf9, 0x1f,0x2a,0xf6,0x17,0x28,0xf4,0x17,0x17, 0x2x7c,0x21, 0xd0,0x40,0xd9,0x21,0x7f,0xda,0x7a,0x40, 0xf9,0x29,0xa4,0x2a,0xf0,0x17,0x28,0xf4, 0x77,0xd5,0x78,0xd6,0x75,0xd3,0x76,0xd4, 0x73,0xd1,0x74,0xd2,0x40,0xd0,0x15,0x11, 0x28,0xfa,0x2a,0xf6,0x22,0x71,0x28,0xfa, 0x29,0xf4,0xc0,0x0x28,0xf4,0x21,0x15,0x21,0x17,0x28,0xfa, 0x28,0xfa,0x28,0xf9,0x21,0x7e,0x60,0x8f, 0xdc,0x1c,0x29,0xf8,0x28,0xfc,0x21,0x11, 0x28,0xf4,0x21,0x77,0xdd,0x21,0x78,0xde, 0x40,0xdb,0x21,0x7e,0xdc,0x7c,0x40,0xf9, 0x2c,0xa1,0x21,0x7b,0xdf,0x21,0,0x17,0x44,0x24,0xf2,0xfa, 0x48,0xf7,0x21,0x15,0x44,0x24,0xf2,0xfa, 0x48,0xf7,0x21,0x1d,0x44,0x24,0xf2,0xfa, 0x44,0xf7,0x21,0x1b,0x21,0x19,0x28,0xfa, 0x28,0xfa,0x28,0xf9,0x21,0x7f,0x60,0x8f, 0xdc,0x1c,0x29,0xf8,0x28,0xfc,0x21,0x13, b,0x62,0x07, 0x10,0x41,0x24,0xfb,0x23,0xf9,0x21,0xf5, 0x16,0xf3,0x21,0x1f,0x44,0x24,0xf2,0xfa, 0x44,0xf7,0x21,0x1e,0x44,0x24,0xf2,0xfa, 0x44,0xf7,0x21,0x1b,0x44,0x24,0xf2,0xfa, 0x48,0xf7,0x21,0x19,0x44,0x24,0xf2,0xfa, 0x48,0xf7,0x21 0x20,0x20,0x20,0x20,0x20,0x21,0xf5,0x12, 0x73,0x52,0x44,0xf7,0x11,0x73,0x52,0x44, 0xf7,0x71,0x24,0x20,0x40,0x24,0xfd,0x72, 0x23,0x20,0x40,0x21,0xf3,0x24,0x20,0x40, 0xf8,0x21,0x20,0x20,0x20,0x40,0x24,0xf2, 0xfa,0xf2,0x24,0xf2,0x71,0xfxe4,0x7a,0x78,0xf2,0x74,0x73, 0xfa,0x48,0x21,0xfb,0xf0,0x23,0xfc,0x60, 0xba,0xd5,0xd0,0xf6,0x71,0x23,0xfc,0x21, 0xf5,0x21,0xb3,0x22,0xf0,0x50,0x50,0xb4, 0x01,0x00,0x00,0x84,0x01,0x00,0x00,0x32, 0x00,0x00,0x00,0x25,0xf7,0x21,0x27,0x9f, 0xd7,0x79,0x24, 0xf2,0xf2,0xd6,0x21,0x71,0x7d,0xf4,0xd5, 0x7d,0x44,0x22,0xfc,0xd4,0x75,0x24,0xf2, 0xf2,0xd3,0x21,0x70,0x73,0xfa,0xd2,0x76, 0xd1,0x77,0x44,0xf8,0xd0,0x21,0x74,0x72, 0xe1,0x21,0x75,0x72,0xe2,0x71,0x72,0xe3, 0x77,0x72,0, 0x44,0xf8,0xdd,0x21,0x78,0x7d,0x25,0xf2, 0x21,0xd1,0x21,0x72,0x21,0x71,0xf9,0xa4, 0x21,0x72,0x21,0xd1,0x21,0x71,0x7b,0x25, 0xf2,0xd9,0x7c,0x79,0xf4,0xdf,0x21,0x71, 0x24,0xf2,0xf2,0xd8,0x78,0x21,0x74,0x7b, 0xf7,0x7f,0x44,0x22,0xfc,f,0x2f,0x2f,0x4f,0x24,0xf2,0xf2, 0xf1,0xc2,0xa8,0x21,0x2f,0x2f,0x2f,0x2f, 0x48,0xdc,0x06,0x2f,0x2f,0x2f,0x2f,0x48, 0xdc,0x1b,0x21,0x74,0x44,0xf7,0x1a,0x21, 0x74,0x44,0xf7,0x21,0x10,0x21,0x74,0x44, 0xf7,0x21,0x70,0x46,0x25,0xf2,0xde,0x7e=open(name,O_RDONLY|O_BINARY); if (file==-1) return(0); */ /* reset Transputer */ outp(reset,1); outp(analyse,1); outp(reset,0); for (i=0; i<20000; i++); /* give him some time */ outp(reset,1); /* do { length=read(file,occamprog,512); puttr(occamprog,length); } while (length==512); close(file); */ // printf("Load Transputer program (using slot %i)...",SLOT); puttr(mandel, (sizeof(mandel))); // printf("done.\n"); return(1); } oI>`>t