Image Map Image Map
Page 8 of 9 FirstFirst ... 456789 LastLast
Results 71 to 80 of 81

Thread: Testimonies of using BASIC back in the day

  1. #71
    Join Date
    May 2019
    Location
    Massachusetts
    Posts
    1

    Default

    My first language in college was FORTRAN using punch card decks in batch mode. Junior year (1972) I passed a room full of teletypes in the ME building. They were open for use, no login or account required. It turned out to be a BASIC time sharing system running on a PDP-8. After that I spent a lot of time there including some skipped economics classes. The only way to save and reload programs was the paper tape punch/reader on the teletypes. One of the programs (not written by me) would punch text onto paper tape. I had tried something similar with asterisk graphics in FORTRAN but the system operators didn't give me the printout and wrote NO! on my deck. That's one reason I appreciated the Basic system, the other being it was interactive and not batch mode.

    In 1977 I worked on an automated test system for a guided missile. It used a lot of HP test equipment connected by HPIB to an HP minicomputer. The test code was Basic. I represented the missile electronics not the test system but I did have to read the code for individual test steps.

    After that I used Basic on various microcomputers at home and a tiny bit at work. Most of my professional coding was in assembly language and C.

  2. #72
    Join Date
    May 2003
    Location
    Back of Burke (Guday!), Australia
    Posts
    2,934

    Default

    I grew up using Locomotive BASIC 1.0 on an Amstrad CPC464, though now days I have an Amstrad CPC6128 with Locomotive BASIC 1.1 though I regularly code in LB1.0 to have it running on all the CPC systems.

    For me personally originally it was about going to the Newsagents, purchasing some Magazines each month and type-in the programmes, I tried creating my own odd programme back then, though there were gaps and would based some of the code from other people's work, I particularly know that I didn't have much understanding on Array's, which looked more like a Mathematical problem.

    These days I look at it a bit differently, for example I might look at some game coded in BASIC and think how would it look if it were like this or this and improve the coding of it. A couple of years ago I had some old 10-Liner riddled with issues, which I dissected with notes running through what it did. Some of the underlining issues were still present until I started focusing on having a Main Loop with some Structured programming put into play. By the end I had something which hardly looked like a 10-Liner, but was able to expose where there were flaws in the original code and fix them which is where I get a great deal of satisfaction.

    But I have to be somewhat thankful that Pascal exists, by setting rules up for Structured Programming has helped me improve in BASIC, though BASIC seems to have tricks of it's own. BASIC can have a structured look to it which makes for easy reading, though with some clever coding skills it almost seems there's a whole other level in LB which I haven't progressed to and reading the source code to that seems like reading gibberish.

    It's difficult to say where I draw the Line with GOTO because if misused, the programme becomes hard to read, this Dragon Curve example on Rosetta Code for the ZX Spectrum presents an unusually complex Loop to determine the Path of the Line. Eventually I had something up and running in Pascal, though for that BASIC example, it had a clever way of freeing up memory which I couldn't produce in Pascal unless, I could exit the Procedure, which I did by forcing an end of a Loop and then call the whole routine again with another Colour.

  3. #73

    Default

    Quote Originally Posted by bear View Post
    Tangentially related, some months ago I started a benchmarking project for 8-bit home micro BASIC systems, calculating prime numbers by trial division (the goal was not to have an efficient way of finding prime numbers, but to have some consistent unit of work that could be expressed simply and therefore be implementable regardless of limitations in any particular system's BASIC).

    At some point I thought I'd try my hand at an APL version to compare the speeds of BASIC and APL in my IBM 5100, and the project started spiraling out of control from there.

    ZBasic, Dartmouth True BASIC (on the Macintosh), various Microsoft BASICs, even Atari 2600 BASIC are all represented (that last one was a challenging port).

    It's pretty clear to see that Microsoft BASICs were all pretty slow, that Woz's Integer BASIC is pretty tidy, and Acorn's BBC BASIC is a masterwork.

    I still have a few more language ports up my sleeves in various unfinished stages, a structural mistake in the DRI Personal BASIC version (which has also snuck into a couple other ports) that causes it to do more work after finding the last prime, which I need to correct both in the source and the published results, and a long list of results to gather using software and hardware I've already collected with ports I've already written.

    Mostly the micro results are in the bottom half.

    http://www.typewritten.org/Articles/...ks/primes.html
    bear,

    Thanks for your benchmark.

    I ported the Commodore 64 program to my early 1980's Tektronix 4054A computer and got 21.27 seconds for n=100 last night:

    Code:
    Benchmark PRIMES
    Start: 04-JAN-20 09:47:03.97 PM
    End:             09:47:27.11 PM
    Benchmark PRIMES (secs)= 21.27
    END
    The Tektronix 4052A and 4054A computers were the last generation of a series started in 1975 with the 4051 using a 6800 CPU running at 833KHz. http://w140.com/tekwiki/wiki/4051
    These computers were designed for scientific and engineering markets with remarkable graphics resolution of 1024x780 on the 4051 in 1975 based on Tektronix storage tube technology using vectors.
    The 4051 entry price was $5995 with 32KB of BASIC ROM and 8KB of DRAM. Memory could be upgraded to a max of 32KB of DRAM.

    The 4052 and 4054 were introduced in the late '70's to support demand for higher performance, and were a custom AMD 2901 bit-slice design with a 16-bit data bus, 128KB of total memory, with over 64KB of BASIC ROM and up to 64KB of DRAM. This architecture also provided 6800 8-bit instructions with new opcodes including micro-coded floating point instructions.

    These hardware floating point instructions showed great performance (for the '80s) in the prime results above.

    The 4052 and 4054 bit-slice microcoded CPU clock rate was 25MHz.

    The 4052 had the same 12" Tektronix flat storage CRT and resolution as the 4051.
    The 4054 and 4054A had a Tektronix 19" storage tube like the Tektronix 4114 terminal with 4096x3072 resolution! Still state of the art today

    The 4052A and 4054A were introduced in the early 1980's, and the series was discontinued in the late 1980's.
    The A-series added structured BASIC commands and other firmware enhancements including an assembly language CALL "EXEC", along with an assembler and documentation for the microcode instruction set and BASIC ROM entry points.

    Here is my port of your prime program in Tektronix 4050 BASIC.
    I have a Transera Real Time Clock ROMPACK plugged into the 4054A that provided the timing in HH,MM,SS,and hundredths of a second in a single CALL "!TIME" with numeric output parameters.

    Tek BASIC arrays do not support a ZERO index, so I adjusted the program accordingly.
    Also I created this one after typing in the nine BM benchmarks, which I will show results in a separate post. I changed the A variable to X in your prime program.
    The output for the benchmark timing used separate 4800 baud serial printout to a laptop computer.

    The serial port is accessed with the PRINT @40: statements. These Tektronix computers had optional serial interfaces and embedded GPIB interfaces. The @#: syntax allowed PRINT, READ, WRITE and byte commands to be addressed to any GPIB device or serial device.

    I printed each computed prime to the screen during the benchmark - to match the other computers.

    The formatted start/end printing and serial printing is outside the benchmark time measurement, which is why the total start/end time is slightly longer than the run.

    Code:
    1 GOSUB 900
    2 CALL "!TIME",A0,B0,C0,D0
    3 GO TO 10
    5 X=X+1
    6 GO TO 50
    10 DIM P(100)
    15 P=0
    20 P(1)=2
    25 PRINT P(1)
    30 X=3
    40 FOR F=2 TO 100
    50 FOR I=1 TO F-1
    60 V=X/P(I)
    65 IF V=INT(V) THEN 5
    70 NEXT I
    80 PRINT X;
    90 P(F)=X
    100 X=X+1
    110 NEXT F
    120 CALL "!TIME",A1,B1,C1,D1
    130 GO TO 1010
    900 REM    PRIMES
    910 C$="PRIMES"
    920 CALL "!DATETIME",A$
    930 PRINT "Benchmark ";C$;"Start: ";A$
    940 PRINT @40:"Benchmark ";C$
    950 PRINT @40:"Start: ";A$
    960 RETURN 
    1010 CALL "!TIME",B$
    1020 PRINT "End:             ";B$
    1030 PRINT @40:"End:             ";B$
    1040 S0=A0*3600+B0*60+C0+D0/100
    1050 S1=A1*3600+B1*60+C1+D1/100
    1060 S=S1-S0
    1070 PRINT "Benchmark ";C$;"(secs)= ";S
    1080 PRINT @40:"Benchmark ";C$;" (secs)= ";S
    1090 PRINT "END"
    1100 PRINT @40:"END"
    1110 END 
    1120 RETURN

  4. #74

    Default

    I forgot to mention, Tektronix 4050 BASIC had no integer variables, all numeric variables were 14 digit floating point +/-8.998E+/-307 (8 bytes plus variable name overhead).

    The 4054A/4054A ALU board used a multiplexed 16-bit address/data bus and extended the 6800 limited register space to sixteen 16-bit registers, which could hold two floating point numbers to speed up the floating point.

    The 'A' and 'B' registers were also extended to take advantage of 16-bit addressing and data operations.

    Here is a 4052/4054 ALU block diagram from the Tekscope 1979 Vol 11 No 3 magazine:

    4054 micro architecture - Tekscope 1979 V11N3.jpg
    Last edited by nikola-wan; January 5th, 2020 at 10:57 AM. Reason: added 4052 ALU block diagram

  5. #75

    Default

    Tektronix 4051 computer was my first 'personal' computer in my first job after college in the mid 1970's.

    I loved the instant access of Tektronix 4050 BASIC a couple of seconds after powering on the computer, and I wrote dozens of programs - for work and for play in the late 1970's, and had the foresight to keep hard copies of all my programs.

    I also made extensive use of the 4050 BASIC graphics, plus the I/O addressing capability, which provided access not only to the internal DC300 tape storage, but also the GPIB access to the 4907 external floppy drive system and a large rear-projected digitizing tablet.

    I had no formal software training in college - and 4050 BASIC was very easy to use, and included several capabilities for debugging, like a SET TRACE command, which prints executed line numbers while running the program. In addition, 4050 BASIC allows quick access to value of any variable by just typing the variable name, and provides calculator capability on the command line.

    I later worked at Compaq Computer in the mid-1980's on the Deskpro 286/386/486 hardware design team - and lamented that Microsoft BASIC did not have many of the capabilities in 4050 BASIC, so I couldn't port many of my 4050 programs.
    Same goes for the early PC CGA graphics. Even VGA graphics 640x480 was about 1/4 of the resolution of the Tektronix 4051 more than ten years prior.
    Last edited by nikola-wan; January 5th, 2020 at 11:18 AM.

  6. #76
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    35,369
    Blog Entries
    18

    Default

    Quote Originally Posted by nikola-wan View Post
    I forgot to mention, Tektronix 4050 BASIC had no integer variables, all numeric variables were 14 digit floating point +/-8.998E+/-307 (8 bytes plus variable name overhead).
    That's not unsual--original BASIC didn't have typed variables. When we did our version, we left out numeric typing as well.

    We did keep string variables and allowed implied conversion between string and numeric; i.e. A$=B$+3 We stored floating point variables in "compressed" as literals. Saved quite a bit of space.

  7. #77
    Join Date
    May 2009
    Location
    Connecticut
    Posts
    4,840
    Blog Entries
    1

    Default

    Quote Originally Posted by nikola-wan View Post
    Same goes for the early PC CGA graphics. Even VGA graphics 640x480 was about 1/4 of the resolution of the Tektronix 4051 more than ten years prior.
    There were third party card and monitor combinations capable of 1024 x 768 or better resolutions in the mid-80s. The Vermont Microsystems doing 1024 x 800 with 256 colors cost about $6,000.

  8. #78

    Default Interface age bm9 basic benchmark from all sources

    "BASIC, FORTRAN, S-ALGOL, and PASCAL Benchmarks on microcomputers including the effects of floating point processor support" was published by Marcus Wigan in August of 1982 as mentioned earlier in this thread in a post by krebizfan:

    Testimonies-of-using-BASIC-back-in-the-day post #39

    Table 7 starting on page 14 showed results from running INTERFACE AGE benchmark BM9 using BASIC or BASIC compilers on a variety of microcomputers, and minicomputers.

    I ran this benchmark on my Tektronix 4054A last night and got 310 seconds which put it in 12th place as my retyped table below shows.


    System CPU MHz O/S Language RUN Time
    CDC CYBER 171 . NOS 1.4 BASIC 5
    IBM 3033 . VS2-10RVYL Stanford BASIC 10
    PRIME 300 . PRIMOS BASIC 25
    Seattle System 2 8086 8 MS-DOS MsB(compiled) 33
    DEC PDP11/70 . kSTS/E BASIC 45
    PRIME Jul-01 . PRIMOS BASIC V16.4 63
    DEC PDP10 . TOPS-10 BASIC 65
    IBM S/34 . R-05 BASIC 129
    Digital Microsystems HEX-29 6 HOST HBASIC_ 143
    HP 3000 . . BASIC 250
    4MHz Z80A Z80 4 CP/M 2.2 MsB(compiled)5.03 277
    Tektronix 4054A AMD2901 25 . 4050A ROM BASIC 310
    terak 8510a LSI-11 CP1600 . UCSD 1.5 BASIC 1.5 Compiler 310
    Seattle System 2 8086 8 MS-DOS BASIC 310
    Alpha Micro AM100T WWD16 3 AMOS 4.3A AlphaBASIC 317
    Apple II+ 6502 2 DOS 3.3 Microsoft TASC 325
    DEC PDP11/45 . . BASIC 330
    Apple II+ 6502 2 DOS 3.3 Expediter II compiler 335
    Data General NOVA3 . Timeshare BASIC 5.32 517
    BBC Micro 6502 . BBC BASIC BBC Integer Basic 523
    SWTPC 6800 . Software Dyn Compiler B 1.2 528
    Alpha Micro AM100 WD16 2 AMOS 4.3A AlphaBASIC 573
    Technico SS-16 9900 3 DOS SuperBASIC3 585
    terak 8510a LSI-11 CP1600 . RT11 V0.3 8k BASIC 596
    BBC Micro 6502 2 BBC BASIC BBC F/POINT BASIC 596
    Ohio C4-P 6502 2 OS65D 3.2 Level I BASIC 680
    North Star FP Z80 4 MS-DOS MS BASIC 685
    terak 8510a LSI-11 CP1600 . RT11 V0.3 MUBASIC 703
    Apple II+ 6502 2 DOS Integer BASIC 722
    ADDS Multivision 8085 5 NUON MBASIC 5.2 877
    4MHz Z80A Z80 4 CP/M 2.2 MBASIC 4.5.1 966
    Apple II+ 6502 2 DOS 3.3 APPLESOFT II 970
    Rexon RX30 8086 5 RECAP Business BASIC 1020
    Cromemco Z80 4 CDOS Extended BASIC 1196
    North Star Z80 4 NS-DOS NS BASIC 1149
    Processor Tech Sol-20 . . Solos Altair BASIC 8k 1231
    Exidy Sorcerer Z80 4 . Microsoft BASIC 1260
    ISC Compucolor CC-II 8080 . . BASIC 1267
    Apple II+ 6502 2 CP/M 2 GBASIC 1284
    Ohio C3-C 6502 1 OS65D Level I BASIC 1346
    Commodore PET 2001 6502 . . Microsoft BASIC 1374
    ISC Compucolor 8051 8080 . DOS BASIC 8001 1375
    Hewlett-Packard HP85 NMOS . . BASIC 1380
    Basic/Four 600 8080 . . BASIC 1404
    Micro V Microstar 1 8085 3 StarDOS StarDOS BASIC 1438
    Sinclair Z80 2.5 . 4k BASIC 1514
    Processor Tech Sol-20 . . Solos PT Extended BASIC 1812
    Heath H89 Z80 . . Microsoft 4.7 BASIC 1850
    Zilog MCZ-1/70 Z80 2 RIO Zilog BASIC 1863
    Tandy TRS Model 1 Z80 2 TRSDOS Level II BASIC 1929
    IBM 5120 . . . BASIC 1956
    4MHz Z80 Z80 4 CP/M 2.2 CB80 v1.3 1988
    4MHz Z80 Z80 4 CP/M 2.2 BASIC-E(M9511 4M) 2208
    Vector MZ Z80 . MDOS Micropolis 8.5 BASIC 2261
    Digicomp P100-Z80 Z80 3 CP/M 2.2 BASIC-E(M9511 4M) 2322
    Cromemco CS3 Z80 4 CDOS CBASIC-2 2245
    Texas Instruments99/4 9900 . . TI BASIC 2479
    Ortex Microengine CP1600 2 UCSD.H1 BASIC 1.1 3017
    4MHz Z80A Z80 4 CP/M 2.2 CBASIC v2.06 3100
    Zenith H89 Z80 . . Benton Harbor BASIC 3550
    Pocket TRS-80 2x4CMOS . . BASIC 55830
    Last edited by nikola-wan; January 5th, 2020 at 01:19 PM.

  9. #79
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    35,369
    Blog Entries
    18

    Default

    Even VGA graphics 640x480 was about 1/4 of the resolution of the Tektronix 4051 more than ten years prior.
    Apples and oranges. The Tek used a storage tube display and was monochrome only. I've never seen a Tek storage tube display in larger sizes (e.g. 20-24"); they might have existed. If you want early, consider the Digigraph 270, circa 1964. 22" CRT with a 1000x1000 resolution. To be fair, this was a vector-mode display.

  10. #80

    Default

    The Nicolet 1080 BASIC used 20 bit integer but one could load the floating point package, that I have but never tried. It also does a number of matrix operations. I can't run the BASIC on it right now as I'm not able to access the disk now. I hope to trouble shoot it in the month or so. I believe it runs an instruction in 1 or two usec, depending on the instruction. It has hardware assist for multiply and divide.
    Dwight

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •