[abc80] Video: Läs ABC80&ABC800-dokument i Linux (& Windows & macOS)!

hpa at zytor.com hpa at zytor.com
Fre May 4 10:11:54 PDT 2018


On May 4, 2018 3:20:13 AM PDT, Abinsium <abinsium at gmail.com> wrote:
>Den 2018-05-04 kl. 00:25, skrev H. Peter Anvin:
>> On 05/01/18 19:00, Abinsium wrote:
>>> Hur man kan läsa ABC 80- & ABC 800-dokument & program i Linux,
>Windows
>>> med Linux, eller (troligen) macOS. D.v.s. läsa alla dokument kodade
>i
>>> ISO646-SE2 (svensk-ASCII för namn ä.k. SwASCII).
>>>
>>> https://youtu.be/NfJ-WL_iRQc (13 min)
>>>
>>> curl -s -k
>>>
>https://www.abc.se/programbanken/abc/abc800/spel/adventur/starwars.bas
>|
>>> sed 'y/`{|}~@[\\]^$\x7F/éäöåüÉÄÖÅܤ■/' | dos2unix | less
>>>
>> 
>> Eller, bättre:
>> 
>> iconv -f ISO646-SE2 -t UTF-8
>
>På ABC80 och ABC800 kan man skriva '■' genom att trycka Ctrl+< så
>därför 
>förekommer detta tecken i bas-filer, men man kan använda:
>
>iconv -f ISO646-SE2 -t UTF-8 | sed 'y/\x7F/■/'
>
>Dock klarar iconv i Git Bash och MSYS2 ej ISO646-SE2 så därför använder
>
>jag sed (tr i Ubuntu verkar ej klara UTF-8).
>
>> http://git.zytor.com/abc80/abcdisk.git har ett program (abctext) som
>> konverterar en fil i ABC *binärt* format till en textfil (utan att
>> konvertera teckenuppsättning.) ABC-DOS (eller egentligen
>I/O-rutinerna i
>> BASIC-tolken) har ett minst sagt fuffens format för textfiler.
>
>BAS-filer i programbanken verkar vara konverterade till DOS-textfiler. 
>Originalformatet verkar vara \t%c för %c st. mellanslag och \3 för slut
>
>på text i block (253 tecken) och 6 st. \0 i början av block för
>filslut, 
>enligt:
>https://git.zytor.com/abc80/abcdisk.git/tree/abctext.c
>
>cc finns ej i Git Bash, men perl och awk finns, så man kan översätta 
>abctext.c till Perl eller Awk, eller möjligen Sed.

tr är byteorienterat så klarar tyvärr inte UTF-8. Det går att göra med sed genom att ge separata s///g-kommandon. Du har naturligtvis rätt vad gäller DEL där ABC använder teletext-tecknet.
-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.



More information about the ABC80 mailing list