News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_jaymanu

N.O.S. Basicode

Started by jaymanu, 13:44, 05 December 19

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

jaymanu


Hello

I found this while browsing :
https://www.discogs.com/Unknown-Artist-BasiCode-Programme-F%C3%BCr-Heimcomputer-Bascoder-Zum-BASICODE-Buch/release/4630940

It is a vinyl disc containing an interpreter for a 1980 "universal" basic language, for several machines including the CPC.
By then, people in netherlands and germany could "download" short programs which were played through air from a radio show. Or as "data tracks" on cassettes and vinyl. like this one : https://www.discogs.com/What-Fun-Lets-Get-Digital/release/12720009

see : https://en.wikipedia.org/wiki/BASICODE

I find this quite cool. Has anyone ever used that on an amstrad ?

I have the "what fun" vinyl and could decode it with a modern machine. But I could never  find an amstrad interpreter apart from that discog entry.

scruss

(aagh, just lost a long edit to some editor malfunction)

There's a CPC decoder here: Update von BASCODER.BAS (🇩🇪)

Rob Hagemans has a huge archive of everything BASICODE here: robhagemans/basicode

Much to my surprise, I managed to decode the BASICODE audio at the end of the YouTube video
What Fun - Let's get digital using

    minimodem --rx 1200 -q -S 1200 -M 2400 --stopbits 2 -f lgd.wav | LC_ALL=C tr '\200-\377' '\000-\177' | tr '\015' '\n'

which gives

1000 A=100:GOTO20
1010 WF$="WHAT FUN!"
1020 LG$="Let's get DIGITAL"
1030 WL$=WF$+" "+LG$+"."
1040 GOSUB100:PRINTWF$;" ";WF$
1050 OH=20:OV=13:VE=5
1060 OH=OH+1:HO=OH:GOSUB110:GOSUB120:IFHO=OH THEN1060
1070 HO=10
1080 OV=OV+1:VE=OV:GOSUB110:GOSUB120:IFVE=OV THEN1080
1090 OH=OH-1:OV=OV-1
1100 SP$="                                       "
1110 SP$=SP$+SP$:SP$=LEFT$(SP$,OH)
1120 GOSUB100
2000 FORC=1 TOOV-2 STEP2
2010 PRINTTAB(INT(C*OH/OV));"*"
2020 PRINTTAB(INT((OH-17)/2));LG$
2030 NEXTC
2040 FORI=1 TO5000:NEXTI
3000 GOSUB100
3010 FORP=1 TOINT(OV/7)
3020 FORQ=0 TO6
3030 TQ=1+INT((OH-19)*Q/7)
3040 IFQ=5 THENBH=TQ
3050 PRINTTAB(TQ);WF$;" ";WF$
3060 NEXTQ
3070 NEXTP
3080 NR=INT(OH/6)
4000 FORL=1 TO350
4010 GOSUB260:HO=INT(OH*RV)
4020 GOSUB260:VE=INT(OV*RV):IFVE=OV THENVE=VE-1
4030 GOSUB260:RN=1+INT(NR*RV)
4040 IFL>150 THENRN=OH
4040 IFHO+RN>OH THENRN=OH-HO
4060 IFVE<>5 THEN4080
4070 IFHO<=BH+8 ORHO+RN>=BH THEN4090
4080 GOSUB110:PRINTLEFT$(SP$,RN);
4090 NEXTL
5000 IM=2*(OH+OV)-3:I0=1
5010 FORI=0 TOIM
5020 IFI<OH THENHO=I:VE=0:GOTO5060
5030 IFI<OH+OV THENVE=I-OH:HO=OH:GOTO5060
5040 IFI<OH+OH+OV THENVE=OV-1:HO=IM-OV-I+2:GOTO5060
5050 HO=0:VE=IM-I+1
5060 GOSUB110:PRINTMID$(WL$,I0,1);
5070 I0=I0+1:IFI0>28 THENI0=1
5080 NEXTI
5090 FORI=1 TO5000:NEXTI
5100 RUN
30000 REM LET'S GET DIGITAL
30010 REM
30020 REM EEN PROGRAMMA VAN
30030 REM   HAN VOET
30040 REM      EN
30050 REM JACK HAUBRICH

I couldn't decode the audio using the BASCODER tool on an emulated Amstrad CPC, though. Maybe I'm not following the German instructions properly.

Here's how the program looks:
https://www.youtube.com/watch?v=QKjKhuei84U


jaymanu

#2
Yeah I bought the what-fun vinyl and was able to decode it like you.


I could run it on browser based interpreter, but i couldnt find a cpc interpreter and was wondering if i needed to buy the interpreter vinyl.
It seems you found it, thanks for the link ! I can't read german at all.


I don't know about decode the audio with BASCODER, but by saving the code as ASCII and adding missing spaces after keywords, I could run this small code successfully.

Thanks

scruss

I found instructions in English lurking on my computer. I think I got them from the now missing-all-files BASICODE yahoo group. I'll post them at the end here.

basicode/tools/convert.py does the insert-spaces thing too.----------
Update from BASCODER.BAS This latest version of the Color Bascoder for the CPC computers is based on the version published on the record to the DDR BasiCode book. The new features are listed below.
Error corrections In the Basic 1.0 of the CPC 464, the DEC $ command requires two opening brackets. On line 310, the second opening bracket is inserted at two places when the program runs on this model.
In the DDR BasiCode book, it is pointed out that the read-back of Character from the screen (GOSUB 220) does not work if the character is inverted (GOSUB 150). This function has now been incorporated.
In "SLIDER-INFO", Olaf Krause points out that there is no command ON BREAK CONT (in GOSUB 280 for blocking / releasing the ESC key) (in Basic 1.0 of the CPC 464). I've worked on his change suggestion.
In the same place, it is found that GOSUB 450 does not return the remaining time but the elapsed time. This too was corrected according to his proposal.
New standard In the computer bulletin from September 1991 to BasiCode-3C, Friedrich Dormeier presents the new functions of the color version of BasiCode. Since I could not find this version for the CPC until today, I have extended the Bascoder by this description and based on the PC implementation itself by these functions.
BasiCode-3C provides the use of eight colors for text and graphics. This can be done on the CPC only in MODE 0, for MODE 1 I have selected four colors and MODE 2 knows anyway only foreground and background color (see also last paragraph).
When starting, a query is made as to whether a color monitor is being worked on, if not, only two colors are used in all MODEs.
When reading characters from the screen (GOSUB 220), lower-case letters can now also be recognized.
The values ​​-1, -2 ... -10 in the variable IN are returned for the keys F1, F2 ... F0 for the keyboard query (GOSUBs 200 and 210).
Comfortability Since most users want to use a program without having to study a manual for a long time, I have changed the operation to menu guidance, whereby I also assume that hardly anyone really wants to read from cassette programs in BasiCode's own format.
The program is started with RUN "BASCODER.BAS". There is a POKE of some machine code in the first line (with subsequent renumbering of this line to 0 to protect it against accidental editing) and the start screen layout. The name of the BasiCode program to be loaded (whether cassette or floppy disk) is requested here. This should best be in ASCII form, because when loading basic programs in token form, the load will be aborted when the code for "end of file" occurs. If the cassette is to be read in BasiCode's own format, enter "*" instead of the program name, whereupon a further menu appears, from which the loading is started by "L". In this case, the computer will wait for start by "RUN" after loading and converting token form in MODE 2. For most programs, however, a start in MODE 1 will be more appropriate, so it is recommended to start with "MODE 1: RUN 5" (see also the next paragraph).
Reduced memory requirements The machine code file BC3C.BIN is required for the actual work with the BasiCode's own cassette recording format, which is also only loaded in this case in order to reduce the memory requirement. This also benefits the users of a Vortex disk expansion, because here the code would conflict with the VDOS.
The program lines necessary for the initialization are deleted during the first run.
Others The Bascoder can now be used in all three MODEs. If you want to change the MODE, enter a MODE x: RUN 5 (x = 0, 1 or 2). For programs that use the color suitability, the colors intended by the program author can only be seen in MODE 0. Unfortunately, the representation is known as coarse pixelated, moreover, texts will usually go beyond the right edge and thus destroy the image composition. For most programs MODE 1 will be appropriate, but the few color-capable programs have only four colors available. MODE 2 is recommended for high-resolution graphics and for text-intensive programs (text processing, databases, etc.).
On the record to the DDR BasiCode book, the MC file is still named BC3BIN.BIN. The RSX command to call the BasiCode menu was HELP. An equivalent RSX command exists also in the X-DDOS of the Dobbertin diskette extension, therefore I changed the command to HILF, otherwise the file is unchanged.
If the Bascoder is to be copied, it is only to be loaded with LOAD and not yet started, so that the initialization lines (and the usability on all models) are retained. It is not recommended to save with option A (ie as a text file) because some strings contain non-printable characters. The machine code part has the initial address 9E00 and the length 880 (both entries are hexadecimal).
BasiCode programs (ie what is loaded from line 1000 onwards) can be used on a large number of computers. This is the purpose and purpose of this variant for the standardization of Basic. However, they are not usable in token form on other computers since they will usually store their commands internally with other tokens, except that they will surely use other protocols to store on tape. With the original BasiCode-owned cassette recording format, they are therefore stored in ASCII format and can be read from this cassette on any other computer, which is in the BasiCode operating mode. If you would like to distribute such a program on floppy disk, via e-mail, etc., you have to pay attention to this by storing it 1.) only from line 1000 and 2.) with option A! OPENOUT "filename.ext" is also possible: LIST 1000 -, # 9: CLOSEOUT.

scruss

Quote from: jaymanu on 09:57, 06 December 19
...I could run it on browser based interpreter, but i couldnt find a cpc interpreter and was wondering if i needed to buy the interpreter vinyl.
Incidentally, the DDR vinyl is ripped here, courtesy a yahoo group member: Subject: [BASICODE] Basicode Record from Radio DDR

To: BASICODE@yahoogroups.com

Date: Sunday, March 6, 2016, 12:40 AM

       

       

       And here it is, the recording from the Radio DDR

'Schallplatte'! It contains translators for machines

made in the former GDR such as the KC 85, KC 87, Z 9001, Z

1013, AC 1 but also popular machines from the West: Amstrad,

Atari, Commodore 64/Plus 4 and Sinclair ZX Spectrum (yes, my

own translator which they managed to translate to German

despite my 'anti-tamper protection'!). I even

managed to load it into Spectaculator despite the ticks on

the record...



ZIP 110 MB:

https://janbrede.stackstorage.com/index.php/s/b3n26VzNrpao8ju



Have fun, Jan.





You can find more DDR Bascoders on:

http://www.nostalgia8.nl/basicode.htm



Keetie

jaymanu

ow, great finding.
I tried to load it into winape, it only gives read errors.
It sounds poorly recorded, I'll try to clean the wav with audacity

Powered by SMFPacks Menu Editor Mod