Home  Articles  Programs 

Commodore SEQ Metin Dosyalarını Evernote'a RS232 ve Linux Üzerinden Göndermek

Evernote güzel bir uygulama ve epeydir aktif kullanıyorum. Linux altında Wine ile de çalışıyor. Ayrıca yine Linux için Nixnote adlı bir benzeri, ve Android'le iPad vb. için de uygulamaları var...

Commodore'la ilgili olan ipuçlarını vb. notları tutmakta da kullanıyorum Evernote'u... Bugünse, Commodore'da eskiden yazmış olduklarımı ve disketlerde kalan yazıları aktarmanın pratik bir yolu varmış gibi geldi:

Şöyle ki:

* Evernote'un "Import folders" seçeneği var. Önce buraya bir directory giriyoruz. Ben, /home/ilker/cbm/ 'i kullandım.

* Bir null-modem kablosuyla (3 telli: RX, TX ve GND) C64'ü Linux makinaya bağladım.

* C64'ten Linux'u kullanabilmek için, /etc/inittab içine

S0:123:respawn:/sbin/getty -L ttyS0 1200 dumb

satırını ekleyip, init q diyerek Linux'un seri porttan dinlemeye geçmesini sağladım.

* C64'te, daha önce http://cbm.ficicilar.name.tr/commodore/a-method-to-use-commodore-basic-programs-remotely-over-rs232 adresinde yazılana benzer şekilde bir RS232 portu açıp Linux'a login oldum:

100 OPEN 1,2,0,CHR$( 8 )+CHR$(0):GET#1,A$
110 print#1,chr$(10);:print#1,"USERNAME"+chr$(10);:fori=1to1000:next
120 print#1,"PASSWORD"+chr$(10):fori=1to1000:next:rem PETSCII buyuk harf kisimlar yerine ASCII kucuk harf eslenikleri gelecek
130 print#1,chr$(10);:print#1,"CD CBM"+chr$(10);:fori=1to1000:next

(Bu kod parçası programda yer almıyor)

* C64'te ufak bir program yazdım. Program, disketteki seq dosyaları directory'den saptıyor; tek tek açıp RS232 üzerinden CAT > DOSYAADI şeklinde bir Linux komutu çalıştırdıktan sonra PETSCII - ASCII dönüşümüyle birlikte bu SEQ dosyayı RS232 kanalına boca ediyor. Dosya sonuna gelindiğinde ise CHR$(4) karakteri yollayarak Linux'a End-of-file bilgisi veriyor ve CAT komutu kapatılıyor.

* Disketteki tüm SEQ dosyalar için bunları yaptıktan sonra çıkıyor.

* Nixnote ise o dizindeki değişiklikleri gördükçe Evernote sunucusuyla senkronize ediyor.

* Ben de elimdeki, wifi ile İnternet'e bağlı tabletteki Evernote'ta peydah olan, C64'ten ışınlanan 20-30 yıllık SEQ notlara bakıyorum.

* Hepsi bu.

Şimdi son rötuşları yapıyordum. Programın kendi kendisinin listesini de cmd komutuyla SEQ yapıp Linux'a aktardım:

10 rem seq2enote
20 rem sequential file to evernote
30 rem
100 open1,2,0,chr$(8 )+chr$(16):get#1,a$:rem rs232 1200bps 8n1 simplex
110 dimi,a$,as(255),a,s$,d,ds$,z$:z$=chr$(0)
120 gosub520:rem prepare ascii table
200 open2,8,0,"$0:*=s":d=0:ds$=""
210 get#2,a$,a$,a$,a$,a$,a$:rem dir prg-start and disk name start
215 get#2,a$:ifa$<>""thengoto215:rem skip disk name
216 get#2,a$,a$:ifa$=""goto260
220 get#2,a$,a$:rem number of blocks. we don't need this info here
230 get#2,a$
232 if(d=1)and(asc(a$+chr$(0))=34)thend=0:printds$:gosub570
234 if(d=0)and(asc(a$+chr$(0))=34)thend=1
236 if(d=1)and(asc(a$+chr$(0))<>34)thends$=ds$+a$
240 ifa$<>""thenprint"";:goto230
250 get#2,a$,a$:ifa$<>""thend=0:ds$="":goto220
260 close2
270 close1
280 end
499 end
520 fori=32to63:as(i)=i:as(65+i)=33+i:as(33+i)=65+i:next
530 as(7)=7:as(13)=10:as(19)=10:as(17)=10:as(20)=8:as(29)=32:as(64)=64
540 as(10)=13:as(127)=8:return:rem petscii to ascii table
550 rem print#1,chr$(10);
555 fori=1tolen(s$):a=as(asc(mid$(s$,i,1))):print#1,chr$(a);:next
560 print#1,chr$(10);:return
570 s$="cat > "+ds$+".txt":gosub550
575 open3,8,3,ds$+",s,r"
580 get#3,a$:ifst<>64thenprint#1,chr$(as(asc(a$+z$)));:goto580
585 print#1,chr$(4);chr$(10);
590 close3:return
700 get#1,a$:ifa$<>""thenprinta$:goto700
710 return
800 geta$:ifa$<>""thenprinta$;:print#1,chr$(as(asc(a$)));
810 get#1,a$:ifa$<>""thenprintchr$(as(asc(a$)));
815 remget#1,a$:ifa$<>""thenprintasc(a$);" ";as(asc(a$))
820 goto800
5000 rem functions list
5020 rem 520: petscii to ascii table
5030 rem 550: send s$ string in ascii
5040 rem 570: save seq file over rs232
5050 rem 700: listen input channel
5070 rem 800: simple terminal
9999 end
10000 rem ============================
10010 rem =
10020 rem = seq to evernote
10030 rem =
10040 rem = sends seq files in a disk
10050 rem = over rs232 to a linux pc
10060 rem = for further import to
10070 rem = evernote via nixnote prg.
10080 rem =
10090 rem = (c) ilker ficicilar
10100 rem = version: 20141021
10110 rem =
10120 rem ============================

Bu iş Windows'ta DOS modunda ve xmodem vb. ile mümkün olabilir. Ama basit bir null modem kablo yeterli olmayacaktır (RTS DTR vb. hatlarını da istiyor Windows).

Özetle prosedür şöyle:

. C64'teki seq2enote programı her bir disket için çalıştırılır.

. Disketteki PETSCII SEQ dosyalar, Linux'taki ilgili klasörde ASCII .txt olarak belirir.

. Nixnote ise bunları Evernote sunucusuyla senkronize eder.

İlker Fıçıcılar
21.10.2014

Keywords: Ağ, Linux, Commodore, Organizasyon


C64 Projects Twitter Page

İlker Fıçıcılar's CBM Page