Pavel Verevkin has pointed me at an interesting computer named the Iskra 226. It was a cloned and enhanced Wang 2200 computer, made in the Soviet Union. Pavel says about the Iskra-226 (combining two emails into one message):
Maybe you will be interested in some additional info I have. The Wang 2200 was cloned (with some apparent modifications) by the Soviet Union and was produced as "Iskra 226". Here is is: http://www.museum.ru/C8008
The fact was just a rumor back then as there were no Internet and there were no widespread access to Western publications. Also the was a rumor that the export of Wang 2200 to the Eastern block was prohibited by CoCom (Coordinating Committee on Multilateral Export Controls), and the computer design was apparently stolen by Soviet intelligence.
[ Ed. note: the Russian Wikipedia page on the Iskra-226 says 2000 or so Wang 2200's had been imported into Russia in the 1970s, no subterfuge required. ]
I worked with the "Iskra 226" in 80s a lot - actually it was pretty popular at least in some parts of Soviet Union. The were several modifications of it. The model I worked with had 128K of RAM - 64K was used for processor code (the T-BASIC interpreter resided there after being loaded from hard drive), and another 64K was used as a data storage (including T-BASIC program and data). Is it different from Wang 2200?
Also I found on your site the following text:
Stupid Trick #7 -- Microcode Abuse
The $GIO instruction allows executing synthetic microcode programs for performing fast I/O to peripherals, such as serial ports and reel-to-reel tape drives. However, they keyboard and display are just peripherals as far as the microcode is concerned. With some cunning, I'm sure some interesting feats could be achieved, such as high speed screen drawing, but I must admit to just speculating here. Some rainy day I'll make an attempt and report my results here.
Actually, "Iskra 226" I dealt with had unique vector graphic controller (with commands very similar to a plotter) which allowed to draw vector graphics to the display (which was usually character) right alongside character data. I never saw anything like this before or after - was it stolen from Wang too or something else? Anyway, I used direct microcode output (not sure about $GIO syntax) to make animation with the vector commands (and code 03 - clear screen) - a little running man. That was all performance allowed to do with the real graphics, so my real games on the computer were made with pseudographics (X and Y for the running man).
The Iskra 226 was produced in USSR by "Schetmash" in Kursk, Russia. This is their history page: http://www.schetmash.ru/index.php?p=184 [Ed. note: dead link now].
The line near "year 1985" states:USSR state prize for personal computer "Iskra 226" was won by V.I.Shuteev and F.A.Bubalo.
Hope this shed a little bit of a new light at the interesting nostalgic theme.
Here are a number of manuals on the ISKRA-226 computer. All are written in Russian. Thanks to Pavel Verevkin and another person for finding these and helping translate some of the title and authors to English.
ПРОГРАММИРОВАНИЕ НА МИКРОЗВМ ИСКРА-226
(Programming for Micro Computer Iskra-226)
by V.E. Balasanian, S.V. Bogdukevich, and V.A. Shakhverdov
ПРОГРАММИРОВАНИЕ НА МИКРОЗВМ ИСКРА-226
An OCR'd copy of the same book immediately above
ПЕРСОНАЛЬНЫЙ КОМПЬЮТЕР АРХИТЕКТУРА И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Справочное руководство
(Personal Computer ISKRA-226 Architecture and Software Reference Manual)
by V.Z. Aladiev, Ya.G. Martynenko, and V.F. Shilenko
Эксплуатация программоуправляемой вычислительной машины "ИСКРА-226"
(Operating the programmable computer "ISKRA 226")
by L.N. Markelova
«ПРОГРАММИРОВАНИЕ НА ЭВМ ИСКРА-226» Часть I
("Programming The ISKRA-226" Part I)
«ПРОГРАММИРОВАНИЕ НА ЭВМ ИСКРА-226» Часть II
("Programming The ISKRA-226" Part II)
Микро-Универсальные машины семейства CM 1800, книга 6
(Micro-Universal machines of the CM 1800 family, book 6)
This is just Chapter 4 of that book, the part dealing with the Iskra-226
ISKRA-226 Technical Information
A sampling of five technical publications about the machine
ИСПОЛЬЗОВАНИЕ МИКРОЭВМ В КУРСЕ классической механики
(Use Of Iskra-226 In Classical Mechanics)
МИКРО ПРОЦЕССОРНЫЕ СРЕДСТВА И СИСТЕМЫ (6 1986)
(Microprocessor Tools and Systems (June 1986))
Two short articles about the Iskra-226, one about accessing BASIC variables from within machine language programs. I've attempted to warm-over a machine translation into English, but it still inscrutable.
|ISKRA-226 BASIC 02 Language Guide||261||61.7 MB|
|Working At the Computer Console Iskra-226||61||2.18 MB|
|Guidelines For Laboratory Practice In Computer Science||57||3 MB|
СПРАВОЧНИК по ЭВМ
by V.I. Grubov, V.S. Kirdan, S.F. Kozubovsky
This pdf is just the extracted parts relevant to the Iskra-226, namely some tables of the available variations the machine. Here is an English machine translation of those parts. It is very rough.
None the publisher nor the authors of the books above have given me permission to share them, as I can't figure out how to contact them to ask them for permission. If they object to having these online, of course I will take them down. Considering how old it is and there is no market left for this information, I hope this is OK and ask for forgiveness if I'm wrong.
Other mentions of the Iskra-226 around the web
This Google Books link is to Advances in computers, Volume 29, by Marshall C. Yovits. Here is the small section about the Iskra-226, on page 297-298:
The ISKRA 226 is a WANG-2200 work-alike. The first half dozen WANG- 2200 machines produced were exported ot the Soviet Union in 1972 and 1973 and many more followed them during the remainder of the decade. In total, about 2000 were shipped to the USSR and Eastern Europe and they became very popular as planner's workstations. The tightening of U.S. and COCOM export restrictions in the wake of the Afghanistan invasion not only ended WANG's exports but deprived Gosplan and other central planning agencies of their supplier.
Minpribor's "Schetmash" factory in Kursk had been producing a variety of ISKRA bookkeeping machines in the 1970s. On the basis of that experience, Minpribor designers reverse engineered the WANG-2200 as the ISKRA 226, which entered serial production in 1981. The first copies of the new machine went to Academy of Sciences and Gosplan and by 1985 more than 800 ministries and departments were using it. The ISKRA 226.7 is shipped with a variety of Soviet, Bulgarian, and East German peripherals in at least seven main configurations. Their prices vary between 11 and 25 thousand rubles ($18000-$42000). Most of the software has been developed by Gosplan. So pleased were the authorities with Minpribor's work that Academician Velikhov nominated the machine's designers for the 1985 State Prize.
Images of the Iskra-226 on the web
The Museum of Technologies of Information website has a wealth of pictures of the Iskra-226. Click on any picture to get a higher resolution jpg of it. In case that page ever disappears, I've saved a copy of the images.
Some Iskra-226 Computer Features
I am unable to read Russian, but I have skimmed through some of the manuals looking at program examples to understand how the syntax compared to that of the Wang 2200 family. What follows is incomplete, but gives some idea of those differences.
- Rather than having underscore characters for HEX(A0) to HEX(FF), the ISKRA-226 populated the character generator with Cyrillic characters from HEX(C0) to HEX(FF). These characters could appear in REM statements, PRINT statements, and % (image) statements.
- The first generation Wang 2200 machines used ROMs to hold the microcoded Wang BASIC interpreter, and the second generation Wang 2200VP and 2200MVP machines and the ISKRA-226 used DRAM to hold the microcode, which was loaded from floppy disks at power up.
- ISKRA-226 support two flavors of BASIC, one simpler one called BASIC 01 and the later, fuller featured one called BASIC 02. BASIC 01 is pretty similar to Wang BASIC. BASIC 02 added some, but not all, of the language features added to Wang BASIC-2, and added significant syntax features unique to the ISKRA-226.
- BASIC 01 and BASIC 02 both retained English BASIC keywords instead of mapping them to a Russian equivalent, which is somewhat curious.
- Both machines were implemented using tons of low density TTL chips and not a microprocessor. The Wang 2200 machines used 74181 4b ALU parts for the main datapath, while the ISKRA used Soviet K589 bitslice ALUs, which were clones of the Intel 3000 chips.
- Wang BASIC and the BASIC-2 for the 2200 VP supported only a single user at a time, while BASIC-2 for the 2200 MVP supported multiple simultaneous users. ISKRA-226 BASIC 01 and BASIC 02 supported only a single user.
- In addition to the 80x24 text display, the ISKRA-226 also had
a 560x256 bitmapped image plane that overlayed the text.
Lines and vector text were written on this plane via
Some Iskra-226 BASIC Language Features
- Wang supported two fundamental data type: 8 byte BCD floating point, and fixed length strings. BASIC 02 added a third type, integer variables, which allowed a range of -7999 to +7999. It is pretty obvious the representation was implemented with two bytes per integer, using a BCD format - the reason the max leading digit is 7 instead of 8 is because one bit is needed to hold the sign.
- Wang BASIC strings were declared with a static size of 1-64 bytes. Wang BASIC-2 strings allowed a size declaration of 1-124 bytes. ISKRA allowed strings to be 1-253 bytes.
- Just about all BASIC implementations, including Wang's, use "$" to
signify string variables. For example,
10 A$="John Doe"Being a product of the USSR, the ISKRA-226 eschewed the use of "$" in preference to "¤", a generic currency symbol. The previous example would be written10 A¤="John Doe"
- In Wang BASIC and BASIC-2, changing the PRINT output device required
executing something like this:
100 SELECT PRINT 215:PRINT "test":SELECT PRINT 005but the ISKRA BASIC 02 allowed changing it temporarily for the current PRINT statement, like this:100 PRINT /15,"test"
- Wang went to great lengths to make sure the microcode was inaccessible
to the user, while ISKRA BASIC 02 supported the
ASMBstatement -- a microcode assembler!
- Wang BASIC-2 required the
IFkeyword to always be followed by a boolean test and the
THENkeyword. ISKRA BASIC 02 had a modified syntax that allowed
THENto be skipped for a handful of cases, for example, the following would be legal in BASIC 02:
100 ¤IF A<10 PRINT "YES" 110 ¤IF A<20 GOTO 200 120 ¤IF A<30 GOSUB 1000 130 ¤IF A<40 GOSUB'15(A¤,X,4)
¤IFinstead of just relaxing the parsing of the normal
- BASIC 02 added a generaliztion of the
ON ... GOTOstatement to allow multiway branching within a single line of code.100 ¤ON(J-4)[PRINT "case 1"][A=5][GOTO 200][GOSUB 500]In this example, if J is 5, the first clause, PRINT, is executed; if J is 6, then A is set to 5; if J is 7, the program branches to line 200; if J is 8, the subroutine at line 500 is called.
- BASIC 02 added an array of powerful but very specific functions to the
language. For example,
100 DIM A(100) 110 ... fill array A() ... 120 MINMAX A(R)=[M,N] 130 PRINT "MIN=";M;", MAX=";N
100 INTEGRAL (A,B,E) S=X^2+5:PRINT "AREA=";S
X^2+5over the interval A to B with an error limit of E. But the weirdest has to be the MODIFY command:
1000 MODIFY (500,A¤,B¤,M)
See this link for more BASIC 02 excerpts taken from one of the programming manuals.
"Cheb" shared a short program he created in 1986 that uses the Iskra-226 graphics feature to plot the trajectory of a projectile given the initial speed and angle.
If anybody out there has any documents on the Iskra-226, please contact me to help this page grow.