All attempts failed. It’s time to read the manual!

I have started to write some programs for my Elektronika MK-52 calculators (I have 2 of them). Actually, I don’t need them so much but I have decided to use this calculator for my common tasks. I have a few HP calculators (the HP 48 line) but the Soviet thing is simpler and thus easier to use. And it is powerfull enough for my needs (15 easily accessible memories is much more than I actually need). So I also decided to write of some simple programs for the most repeating problems.

There are some articles around the Internet, also the Wikipedia has some informations (surprisingly the English page is more usefull than the Russian one) but I stil have had problems to understand what I have to do in some situations. There is even a “compiler” which is a nice tool for translating of a RPN programs to a sequence of calculator commands. An emulator is available, too.

Elektronika M-52 on my desk

The MK-52 also has a non-volatile memory and I now trying to use it. The non-volatile memory use requires the knowledge of program address (something like “1000007” in my case). Also the clean/read/write operations require the same sequence of commands (just to press the “read address” key and then the “I/O” key) but the type of operation is determined by hardware switch. I often have forgotten about this switch (to change from “write” to “read”, for example) so I have had to retype my program several times…

There is one tricky thing with use of the memory addresses (in tge form 1AAAASS): the initial address (AAAA) must be given in actual memory units but number of steps (SS) must be given in steps (1 step = 2 memory units). Also the number of steps must be a multiplication of 7. And there must be some space between memory blocks (at least 2 units). So if the first program is located at the beginning of the memory and it has 7 steps then its address is 1000007. If the second program has 21 steps then the best address should be 2001621 (16=2*7+2). The first number of the address (2 in this case) can be arbitrary.

There are some other strange things: the display can show only numbers. The operations are shown only their two-number codes and one must remeber them in order to be able to debug programs. The display blinks during computations – like things in old sci-fi movies.

Casio FX-700P programming

I decided to make something usefull for my FX-700P. So I wrote a program that gives internal forces from a beam and computes necessary cross-section (for steel beams and the IPE-type cross sections only). The program uses several simplifications, it takes into account only a bending moments so it is for a preliminary design only. I actually needed it for some work in the wild when no real computer with me and when a fast (and thus just a preliminary) decision is needed.

So the program takes internal forces (bending moment, shear force and normal force) and uses basic computations (normal stress from M/W+N/A and a shear stress computation) to decide what IPE size is enough.
The IPE cross section parameters are approximated by continuous functions to save the memory of the calculator.

The code for the FX-700P looks like this:

10  INPUT "M=",M
20  INPUT "V=",V
30  INPUT "N=",N
40  D = 235000000 * 0.9
100 J = 0 TO 12 STEP 1  
110 H = 80 + J*20 
120 A = H*H*0.000338738+H*0.0836899 -1.60321 
130 I = H*H*H*0.000475247 -0.0512346*H*H + 212.463 
140 B = 0.0148498*H + 2.62096
150 F = 0.0249428*H + 3.39449
160 E = 0.465021*H + 8.23748 
170 S = (F*B*H/2)/1000000+((H/2.0-B/2.0)*F)/1000000
180 H = H/1000
190 A = A/10000
200 I = I/100000000
210 W = I/(0.5*h) 
300 IF ABS(N/A - M/W) > D THEN 400
310 IF ABS(N/A + M/W) > D THEN 400
320 IF ABS(V*S / I*B) > D THEN 400
330 GOTO 410 
400 NEXT J
410 PRINT "IPE";H*1000

For a comparison there is a C code that does exactly the same:

int assess_IPE(double M, double V, double N)
  int i ;
  double h, A, I, W, S, Sh,f,e,a, fy;
  double sigma_top, sigma_bot, tau_top, tau_max ;
  fy = 235e6 * 0.9 ; /* design value of yield stress */
  for (i=0; i 240)&&(h = 300) h = 330 ; /* fix fo real h sizes */

    /* approximations: */
    A = h*h*0.000338738  + h*0.0836899 -1.60321 ;
    I = h*h*h*0.000475247 -0.0512346*h*h + 212.463 ;
    a = 0.0148498*h + 2.62096;  /* wall thickness */
    f = 0.0249428*h + 3.39449 ; /* thicknes of top part  */
    e = 0.465021*h + 8.23748  ; /* width of the top part */

    S = ((h/2.0-a/2.0)*f)/1e6 ; /* static moment S: UNUSED ATM */
    Sh = S + (pow(h/2-a,2)/2.0*a)/1e6 ; /* static moment for center (h/2) */
    h = h/1e3 ; /* mm  -> m  */
    A = A/1e4 ; /* cm2 -> m2 */ 
    I = I/1e8 ; /* cm4 -> m4 */
    W = I/(0.5*h) ;
    /* Stresses: */
    sigma_top = N/A - M/W ;
    sigma_bot = N/A + M/W ;
    tau_max   = V*Sh / I*a ;

    if ((fabs(sigma_top)<fy)&&(fabs(sigma_bot)<fy)&&(fabs(tau_max)<fy/sqrt(3)))
      fprintf(stdout,"Found IPE%i\n",(int)(h*1000));

Both codes are under the GPL v2. But once more: please do not use these codes for any real work! I don’t tested their correctness too much and they use some big simplifications.

Just for those who are curious about it: the BASIC code also works on the Elektronika MK-85.

Elektronika MK-85: pocket-sized PDP-11

I had an opportunity to compare the Casio FX-700P with its soviet clone, the Elektronika MK-85. They have very similar look (actually the MK-85 was designed to have the same user and program interface as the FX-700P had). But the internals are very different: the FX-700P is a calculator but the MK-85 is a 16bit computer compatible with the PDP-11.

Casio FX-700P vs Elektronika MK-85

It means that the MK-85 is a bit heavier and it has bigger power consumption (it uses 4 battery cells instead to 2 in the Casio machine). The Soviet one don’t have so good display cover and it’s keys look worse but the Soviet keyboard feels better (but it is my personal opinion). It is also slower in the normal mode (it has also a “turbo” mode but I didn’t have an opportunity to try it). Good info about diferences in programming of these machines can be found here.

Unfortunately, the MK-85 has a memory only comparable with the FX-700P (about 2 KB) so it is not possible to run anything but the integrated BASIC here (no UNIX or other operating systems). But at least some assembly programming is possible.

Retro-computing on daily basis

Before some time (a year or so) Logout asked me to write an article about my daily life with my SGI O2 workstation. Honestly, some things have been changed from that time. I even started to use a products of the Microsoft. But only in the work, of course (I still refuse to take something strange to my home). And, I don’t use my O2 to write this text. I’m doing that while siting on the sofa in our living room andwhile using my Psion MC600 laptop (yes, that weird thing that can run 60 hours on a set of 8 AA batteries). Anyway, I can connect my MC600 to my O2 workstation and transfer the text via the Kermit.

Of course I can not add images to the article without the O2.

So how powerfull is my main workstation? It’s the SGI O2 with the MIPS R10000 processor (at 250 MHz) and with a maximum possible 1 GB of RAM. Your phone has higher CPU clock and most probably also somewhat larger RAM, doesn’t it have?

O2 desktop

A full report about my hardware:

CPU: MIPS R10000 Processor Chip Revision: 3.4
FPU: MIPS R10010 Floating Point Chip Revision: 0.0
1 250 MHZ IP32 Processor
Main memory size: 1024 Mbytes
Secondary unified instruction/data cache size: 1 Mbyte on Processor 0
Instruction cache size: 32 Kbytes
Data cache size: 32 Kbytes
FLASH PROM version 4.18
Integral SCSI controller 0: Version ADAPTEC 7880
  Disk drive: unit 2 on SCSI controller 0
  CDROM: unit 4 on SCSI controller 0
Integral SCSI controller 1: Version ADAPTEC 7880
On-board serial ports: tty1
On-board serial ports: tty2
On-board EPP/ECP parallel port
CRM graphics installed
Integral Ethernet: ec0, version 1
Iris Audio Processor: version A3 revision 0
Video: MVP unit 0 version 1.4
AV: AV1 Card version 1, Camera not connected.
Vice: TRE
1600SW Flat Panel adapter board and display.


So, what is my typical work on the computer? There are actually only a
few task that I done often:

  • Writing of texts (lectures, presentations for my work, scientific
    articles and so on) with use of LaTeX (good old CSLaTeX with standard packages for the most of this work and LaTeX Beamer for presentations which require a bit better look). I use the Vim (GVim) and the Ispell here (and few other small tools).
  • Programming in the GNU Octave. I do this mostly as a preparation for my teaching and sometimes also when I need to test various stuff.
  • Programming in the C language (CLI programmes usually, but I’m also doing some Gtk+ and OpenGL stuff). I still use Gtk+ 2.x and OpenGL 1.1. It’s because most of my code uses them and I don’t have enough time just to rewrite 100000+ lines of working code in order to be more modern. The C that I’m trying to use is the ANSI89 standard but I also actively use and (well, much less actively) a code which use the old K and C standard (that thing was initially developed to run on a really old machine where modern compilers cannot run but I used to use it more regularily). It is a fun to have a code that actually can run on a PDP-11, isn’t it?
  • Some actual computing: a finite element analysis of building and underground structures. I can do here only a relatively small computations. But it’s usualy fine for me. I use my own software for these tasks (there are some open source packages for these tasks, like the Z88 or the FElt, but I have a limited experience with them).
  • Creating of images with the XFig or (much less often) with the QCAD: warious small illustrations fopresentations adn articles, simple schemes and so. I also make graphs with the Gnuplot.
  • Viewing of images (I do no editing of photos) with programs like the XV and the GQview.
  • Sometimes I listen the music. Radios in MP3 with the XMMS and CDs (yes, that silver discs – I have a good selection at home) with the build-in CD Player.
  • E-mail. Well, I use the Thunderbird. It isn’t slow and it just works.
  • Web browsing. That’s probably the biggest problem. I use the Gopher when possible (but today there is not too much possibilities: the Gopherpedia, the gopher pages of Logout and a few more). If an access of the WWW is necessary, I use the Links browser (a graphical one). If it is not enough the I have to use the Firefox 3.x (nothing better is available on the IRIX). Do I care about the security? Yes. So I access web servers with sensitive data only from my laptop with an up-to-date Linux (it’s a IBM T23 with the Debian). Some web pages are not accessible with the Firefox 3.x at all. So I have to use the laptop also for these pages.
  • Office stuff? Yes, there is the OpenOffice available (the version 1.0.3), there is the Ted Text Editor (it can edit RTF files) and more but I actually wrote less than 10 pages of word documents and made few simple spreadsheet tables at home during the whole time that I own the O2 (it’sabout 10 years). If I have to make a table then I prefer to use the “sc” spreadsheet. It is usually mere than enoug for my needs.

Current desktop 2/2013

Do I forgot something? Most probably, yes. Games, for example? Printing and scanning? Synchronisation with my PDAs? Well, these hings can be topics of further articles.

Sharp Zaurus SL-6000N

Well, I got this thing before some time but I didn’t find time to write something about it (it’s the one on the left). It was the last one in Pulster‘s stocks ;-)

Sharp Zaurus SL-6000N

It’s the biggest Linux-based Zaurus and also probably one of the biggest PDAs. The hardware is similar to other Zauri but it has a more traditional PDA layout – landscape screen (4+”, $480×640) and a keyboard under the screen – it is hidden under sliding panel with controls. Even being pretty heavy it is still very easy to hold and use. Actually I got it for few trips as it is nice for reading (with the FBReader), taking notes or playing music (but one can compile programs or edit and compile LaTeX documents or even edit DOC and XLS files on it, if necessary).

And it also looks very vell in its leather case (Piel Frama one).

A note: if the 6000N’s display looks to be too dim, it is because I use lowest level of backlight (it’s enough for normal use but it looks bad under the camera flash). The NanoNote (the black clamshell thing in the reight of picture) has only one backligh level.

Pebble Smartwatch

After few years without working wristwatch I decided to try a new one: the Pebble Smartwatch. Yes, if was after this post by Logout.

They were designed as an external display for a mobile phone but their possibilities are higher. Actually, I do connect it to the phone only when I want to update OS or applications. The most of stuff that I use on the Pebble is offline:

  • time (several watch faces)
  • calendar
  • compass (shown in the photo)
  • pedometer
  • list of basic formulas (math, physics,…)
  • and few others..

Pebble Smartwatch vs Ben NanoNote

I will probably write more about the Pebble later. There is a possibility to develop own applications and I have few ideas for the future. Maybe I will be able to find some time to translate the ideas into computer code….

Just for fun

I am still dreaming about a Ben NanoNote connected to a serial GPS. I have both ingrediences (a GPS module and the NanoNote) and the only think to do is a soldering of three cables. But I didn’t do anything in this direction for more than two years. So at least I have taken my NanoNote to my car to make some pictures of the NanoNote running the NanoMap software.

NanoNote + NanoMap in car