EA record of 2650 software

See the note on the back of the record sleeve: The recording and these notes are copyright 11978), and may not be reproduced without prior written permission from the Editor-in-Chief or the Editor of Electronics Australia, 57 Regent Street, Sydney, NSW. Presented by Electronics Australia and Philips Electronic Components and Materials, 67 Mars Road, Lane Cove, NSW 2066.

Permission to reproduce all of this data on this website was obtained from Silicon Chip publications who hold the copyright to all Electronics Australia material.

The extracted audio as WAV files

I used a quartz locked direct drive turntable copy the disk into Audacity. From there they were converted into monophonic 8 bit unsigned PCM WAV files. Then I used “minimodem” to extract the data. This took the most time as there is significant variation in the speed of each track. So maybe the disk has changed shape over time, or maybe it was never very good!

The following WAV files are directly recorded off the disk with the varying speed of each.

The decoded data

Below is the decoded data from each of the audio tracks. They are in “Signetics absolute object format”. So if you are running PIPBUG, you can simply copy and paste this code at the “(L)oad” command.

This code has been extracted from the (mono) WAV files using “minimodem”. The command line arguments have been adjusted for each track to allow for the varying speed of the recording on the old plastic disk. Ordinarily it should be 2400/1200 mark/space and 110 baud, but the parameters might be set to 2340/1170 and 107.25 baud to successfully extract some data. i.e. in this case the command would be;

minimodem -r -M 2340 -S 1170 --tx-carrier 107.25 -f 'file.wav'

I have included the command for some of the tracks below to show how it varied from one to the other. It should be possible to load this data into the PIPBUG emulator within Winarcdia and then dump it again to produce “clean” audio files.

In the following notes, “s” represents a space character and “r” a carriage return. All programs are loaded and called using PIPBUG. Programs 3, 6, 8 and 9 are reproduced in this recording by courtesy of the 2650 Users’ Group and Applied Technology Pty Ltd.

Track 1 – HEX INPUT ROUTINE

This routine allows a program to be typed into memory rapidly and conveniently using a standard 1 10-baud terminal keyboard. As load-ed the routine occupies 1250 — 12BD and starts at 1250, but it may be relocated anywhere in page 0. Written by J. Rowe.

minimodem -r -M 2300 -S 1150 --tx-carrier 107 -f 'Audio Track-1.wav'
:12506E0D7640750A3B2D09AE0AAF3F00A43B240AA8CE840DE40D9806040A3BA41B66E4071C00000E040E0D040D8601980285013BDA1B5A0400CC040FCC04103F0286C33F02B4030710EF42591805E7019A771708E83B16C208E03B1144F0C102440F21C8D50244F023C8D21B525050505017C4      
:00000000

Track 2 – HEX LISTING ROUTINE

This routine allows a program in memory to be listed in blocks on a standard 110-baud terminal printer or display. As loaded the routine occupies 1200 — 1248 and starts at 1200, but it may be relocated anywhere in page 0. Call by G1200sXXXXsYYYYr, where XXXX and YYYY are the start and finish respectively of desired block to be listed. For displays and printers allowing only 32-character lines, chang-ing the content of location 1244 from OF to 07 reduces listing width. Written by J. Rowe.

minimodem -r -M 2400 -S 1200 --tx-carrier 110 -f 'Audio Track-2.wav'
:12004902770276403F02DB3F00A43BF9CD040FCE04103F008A0D040D3F02690D040E3BF904203F02B40D840D3BEF08F0E8E2980708E4E8D91C000009DD06018ADF980285013BC5460F184B1B573B
:00000000

Track 3 – BLOCK MOVE & SEARCH

The block move section of this program allows part or whole of a program to be moved in memory, either upwards or downwards. Call by G1100sXXXXsYYYYsZZZZr. where XXXX and YYYY are start and finish of block to be moved and ZZZZ is new starting address. The block search section of the program allows the location of an instruction or similar byte pattern to be found within a memory range. Call by G1 190sXXXXsYYYYsAA B Br, where XXXX and YYYY are the start and finish of the block to be searched and AABB is a consecutive 2-byte pattern to be found. The program will print out the location of the second byte, everywhere the pattern is found in the specified range. Currently occupies 1100 — 11D7, but may be relocated anywhere in page 0. Written by I. Binnie and C. Barratt.

minimodem -r -M 2360 -S 1180 --tx-carrier 110 -f 'Audio Track-3.wav'
:1100DA3D3F02DB3F00A43F02DBAE040E770AAD040D75081A0419045A029B1DCD040F8601CE04103F02DBCE0412CD0411ED040D1A091927EE040E1922185F0E040F1816070005FF0DA40DCDE411FB785A029B2205013B21FA6C0F04101B670E040F0F041002C18601780E0FC40DCFE4115B7805FFFA729B220C040D81CC040D0C041181CC04111758585958D8D859D899181918D93F02DB3F00A43BF9C936CA383BF3C905CA093B17E40E987A3B11E4179876098C3F0269098A3BFABBA51B670D040D0E040E86017708850075083F00A40C840DE5149805E6001C000017FFD5      
:00000000

Track 4 – TAPE VERIFIER

This program allows verification of a tape or cassette dump of a program, against the program still resident in memory. Occupies 1360 – 13F3, but may be relocated anywhere in page 1 by changing the operand of the instruction in locations 13B5-6-7. Call by G1360r, then feed in the desired tape or cassette. The program will type out an error message or “TAPE OK”. Written by J. Rowe.

:136094303F008A3F0286E43A987920C8953B9BCD04253B96CD04263B9159021B25C9913B890C042C9820C3CB843F02240F0429EF0428180801EFE4259810DB6B08E4980E1B4105001B0A05081B0605171B0205273B031F00000D33BD143F02B41B7754415045204F4B004144445220424343204552524F5204444154412042595445204552524F52004441544120424343204552524F520066
:000000

Track 5 – DISASSEMBLER

This program will produce a combined hex listing and reconstructed mnemonic/assembly language listing of any program or routine in memory. It occupies FOO — 1082, and is called by GFOOsXXXXsYYYYr where XXXX and YYYY are the start and finish of the program or routine to be disassembled. Note that mnemonics are not listed for all instruction codes. Written by I. Binnie.

:0F00FF8776403B843F00A43F02DBCD040FCE04101B2277020D040DE9F21D00221A070E040EEAEB19F53B8309F63F02690D840DCD04291B060540C9AB1B58070DCB92040C4C840D1808E40C98233B343B323B300F04283F03610C04293F0FA33F008A0883A401CC041198513F02861B4804FC4C840DE4141858E4341854E49418501B4C07013F03610D840D3F026906018E040E050077088D040D75083F00A40983A503CD042817C3F7181803F710140505ED706214F97A44E0505050F71098026420C205030E30123BA3F97903440CC20C70163B98042C3B94034703D3F4401806F4109802670805020F30523F02B4F978E60898213F035B06000E0412F64098046680D6
:0FFF848E05FF8E040E77088D040D75083B8302C13F0269174C4F445A454F5249414E4452494F5241414444005355420053545200434F4D00424354004253540042524E0042534E00424346004253460042495200424452005230523152325233455147544C54554E1000000000010000100000000000000000000000000000003634373436343F82D2
:0000000

Track 6 – TAPE MEASURE

This program allows you to find the length of a program recorded in Absolute Object Format on a paper tape or cassette. Occupies 0440 – 04FE, but requires RAM storage area after end, for block data buffer: four bytes per block of data on tape. Call by G440r, then feed in tape or cassette. Note that block ends as listed are one greater than true addresses. Written by J. Rowe.

:0440BF5E764020C8A8CC04273F0286E43A987920C8A13B9CC9A6CD040F3B95C99CC9BF3B8F59031F04B4C9A808838401CC04293F02240C042C9C001D0E040E0D040D8A907708850075083F00A43BE50B83A701CF0428E77F98730B930C040F3B130C04103B0E08D83B0A08D13B06CF04271F0448CF24FE1720C8D9C8A705000D24F518043B971B7709CA8501C9C63BA7043A3B890B8E3B1A3B18042D3F02B43B113B0FCF04110886A4011C0000CC04291B4B0F24FEC13F0269170D0A424C4F434B20009D
:00000000

Track 7 – DUMP FOR AUTO STARTING

This program performs the same function as the dump routine in PIPBUG, except that the tape or cassette produced may be arrange to begin execution at any desired address, immediately upon loading via the normal PIPBUG load routine. It occupies E60 — EF7. and is called by GE60sXXXXsYYYYsZZZZr where XXXX and YYYY are the start and finish of the program or block to be dumped and ZZZZ is the desired address for execution to begin. Written by J. Rowe.

:0E6098C076403B923F00A43B8D8601770885007508C99DCA9E3F02DBC9ABCAAE3BB504FFCC04293F008A043A3F02B420CC042C0D040F0E0410AAAB7708A9A275081E001D19165A160D04253BB30D04263BAE05003BAA3F035F1F002206FFCAAC0D040D3B9B0D040E3B9609A03B9209953B8E0B880FA40DEB931809CF0429C13F02691B6E0D042C3BF70ADB8E04280500770889CD75083F00A41F0E7C8B
:00000000

Track 8 – 300-BAUD BINARY DUMP

This program produces 300-baud program dumps in binary format using the “Kansas City” standard, for storing and loading programs on cassettes at higher speed than with PIPBUG. The programs may be dumped either lone, or preceded by the binary loader (at 110-baud) as a bootstrap. The program dumped may also be arranged for auto starting. The program occupies 1200 — 12 FF, but requires the loader to be also resident at 0440 — 0497 if programs are to be dumped with the bootstrap. Call by G1204sXXXXsYYYYr if bootstrap is required, or G1223sXXXXsYYYYr if bootstrap not required, where XXXX and YYYY are start and finish of program to be dumped. For auto starting, call by G1204sXXXXsYYYYsZZZZr where ZZZZ is the desired execution address. Written by I. Binnie.

minimodem -r -M 2420 -S 1210 --tx-carrier 111 -f 'Audio Track-8.wav'
:1200FF6F04400497097A0A793F00A409750A7475023F1243096A3F12CA09663F12CA05003F12CA77023F123A3F02DB3F12CA02C13F12CA05003F12CA9B223F02DB3F00A43F02DB8601770885007508CD040FCE0410072004FF3F12D3FB7904FFCC0414043A3F12D320CC042C0D040F0E0410AE040E7708AD040D75081619035A031706FFCE04130D040D3F12CA0D040E3F12CA0D04133F12CA0D042C3F12CA0F04140FA40DEF04131809CF0414C13F12CA1B6C0D042C3F12CA0E040E8E0413050077088D040D75083F00A41F125AB5029C02693F023D01B5029C02B477107640C205083B183B1674403B12521A0474401B027640F9733B057640751017046BF87EF87E6D
:12FF016D172E
:00000000

Track 9 – 300-BAUD BINARY LOADER

This routine is for loading programs recorded at 300-baud in binary fashion on cassettes, from the binary dump, when the recordings do not have the loader preceding the program as a bootstrap. The routine occupies 0440 — 0497. Call by G440r. Written by I. Binnie.

minimodem -r -M 2420 -S 1210 --tx-carrier 111 -f 'Audio Track-9.wav'
:044058913B30E53A987A20C8763B27C96F3B23C96C3B1F59021BE5C9653B1708629813C33B10EB5A180601CFE43CDB74085118509B1D05000608121A7D3B18121A783B0F1244805161C1FA762C043FD0CC043F04B7F87E04B3F87E176C
:00000000

Track 10 – NIM GAME

A simple version of the traditional computer game. It occupies 0440 — 0588, and is called by G440r. It introduces itself and explains how to play. Adapted by J. Rowe from a program by P. Brown.

:0440FFDE07003F04B80517074B3F04B81B0E075E3F04B801A2C10264303F02B4076B3F04B801C30430A70A1A02D87A873A3F02B4033F02B4E5011907077B3B3C1F0445079D3B353F0286E4311A79E4331975C3470F3F02B401A3C1E501190707AA3B191F0445A4051A0EA403197C8403C2980286011F044E84041B740F24C0143F02B41B770D0A0A4849212049274D204E494D2E574520535441525420574954482032332C0D0A414E4420454143482054414B4520312C32204F5220332E0D0A4C45415645203120544F2057494E21000D0A4F4B2C4C4554275320504C41592E2E2E000D0A49274C4C2054414B4520000D0A4E554D424552204C4546543A20000D0A49E9
:053F4A402057494E2120424554544552204C55434B204E4558542054494D452E0D0A000D0A594F5552204D4F56453F000D0A594F552057494E2120434F4E47524154554C4154494F4E532E0D0A0050
:00000000

Track 11 – NUMBER GUESSING’ GAME

Another simple but amusing game of strategy, which also introduces itself and explains how to play. It occupies 0440 — 059F, and is called by G440r. Adapted by J. Rowe from a program by P. Brown.

:0440FFDE07003F04B60500E563197A12E4001902D975E500187A771007007510076A3F04B607813F04B63B3B0709C282FB7DC23B3282771087017510078BE119610797E11A5C07A33B3077100530A70AE7001A02D978873A013F02B47710033F02B407B91F04423F0286E4301A79E4391975C33F02B403440F170F24C0E400143F02B41B750D0A0A0A484921204C4554275320504C4159204E554D424552204755455353494E472E0D0A49274C4C205448494E4B204F462041204E554D424552204245545745454E0D0A3120414E442039392C594F552046494E442049542E0D0A41524520594F552052454144593F000D0A4F4B2C4920484156452041204E554D424573
:053F6116522E00202047554553533A20000D0A544F4F204849474821000D0A544F4F204C4F572120000D0A594F5520475545535345442049542120494E20002054524945530D0A0A4C4554275320504C415920414741494E00000000000000000000000000D4
:00000000