atarionline.pl
atarionline.pl Atari
Login:
Hasło:
Zapamiętaj mnie
Translate to RSS RSS
Gatunki cyfrowe I i II z 2024-05-23 05:59 (11)
Noc Muzeów 2024 i retrokomputery z 2024-05-17 19:09 (18)
Przygody kolesia wydane! z 2024-05-11 05:00 (57)
Nowy Graph2Font! z 2024-05-10 10:50 (21)
Dalton robi grę na A2600 z 2024-05-09 06:26 (9)
W końcu "Mikie" na Atari! z 2024-05-03 19:07 (89)
Oświadczenie w sprawie Piotra Kaczorowskiego z 2024-05-02 10:44 (154)
Michaś w końcu na Atari z 2024-04-26 17:33 (33)
RastaConverter – nowa wersja z 2024-04-24 00:47 (22)
Obudowa kombajnu XCF12 z 2024-04-19 16:43 (26)
Time Wizard Deluxe + edytor poziomów z 2024-04-15 17:25 (28)
FORTH rozgryziony! z 2024-04-10 22:20 (18)
Wyniki i stuff z Grawitacji 2024 z 2024-04-07 16:19 (15)
Grawitacja 2024 - zapraszamy! z 2024-04-04 21:39 (2)
Zapowiedź konwersji "Rick Dangerous 2" z 2024-04-01 09:12 (30)
Bardzo krótka relacja z KWAS #33 z 2024-03-25 21:11 (10)
KWAS #33 w Katowicach za moment! z 2024-03-21 13:06 (7)
Zbigniew Kasprzycki - współtwórca Polskiego Logo z 2024-03-15 22:25 (9)
"Zoltar Cosmic Pirates" w sieci z 2024-03-15 12:21 (6)
KWAS #32 z 2024-02-16 00:08 (39)
«« nowszestarsze »»

Pomocnik/Helper
Gry/Games

Katalog gier (konwencja TOSEC)

Opisy gier
"Old Towers" (Atari ST) opisał Misza (19)
Submarine Commander opisał Kaz (11)
Frogs opisał Xeen (0)
Choplifter! opisał Urborg (0)
Joust opisał Urborg (16)
Commando opisał Urborg (35)
Mario Bros opisał Urborg (13)
Xenophobe opisał Urborg (36)
Robbo Forever opisał tbxx (16)
Kolony 2106 opisał tbxx (3)
Archon II: Adept opisał Urborg/TDC (9)
Spitfire Ace/Hellcat Ace opisał Farscape (8)
Wyspa opisał Kaz (9)
Archon opisał Urborg/TDC (16)
The Last Starfighter opisał TDC (30)
Dwie Wieże opisał Muffy (19)
Basil The Great Mouse Detective opisał Charlie Cherry (125)
Inny Świat opisał Charlie Cherry (17)
Inspektor opisał Charlie Cherry (19)
Grand Prix Simulator opisał Charlie Cherry (16)
«« nowszestarsze »»

Katalog gier (konwencja Kaz)
Aktualizacja: 2024-05-06
Liczba katalogów: 8380, liczba plików: 36691
Zmian katalogów: 1, zmian plików: 1

0-9 A B C D
E F G H I
J K L M N
O P Q R S
T U V W X
Y Z inne
zipCałość 2918 MB


Wewnętrzne/Internals



   Nowinki tworzone dzięki CuteNews
Archiwizowanie dyskietek
Jakub Husak napisał:

Niegdyś wpadłem na pomysł (inspirowany listem atarowca, który chciał zgrać sobie dyskietki i ma stację, ale nie miał kabelka) aby stworzyć możliwość przeniesienia atarowskiej dyskietki na PC. Zadałem pytanie na forum. A na konkurencyjnym portalu rozwalił mnie xxl, który mniej więcej napisał tak: Co się pytasz, chcesz, to napisz!

Pomysł polegał na utworzeniu czegoś w rodzaju manetofonowego turbo. Jednak zwolniony z dekodowania w locie oraz korzystając z możliwości uzyskania sygnału bardzo dobrej jakości mogłem uzyskać znacznie większe prędkości transmisji. Problem jajka i kury został rozwiązany tak: napisać króciutki programik w Basicu ze wstawką maszynową, który zamieni dyskietkę w dźwięk :).

Zacząłem bawić się tym tematem. Najpierw przetestowałem różne metody zapisu kilku bitów na raz, ale to jednak ślepa uliczka - kondensatory robią swoje, a i program miał być możliwie krótki. Powróciłem więc do starej sprawdzonej metody - długości impulsu. Ta metoda przypomina w wielkim uproszczeniu radiowe FM. Zero logiczne to impuls długości trwania jednej linii ekranu (sta WSYNC), jedynka logiczna - 2 linie ekranu - trudno się pomylić przy dekodowaniu. Nie jest problemem wygenerowanie na Atari takich sygnałów, trzeba tylko wyłączyć wszelkie przerwania: CLI + zablokować NMI w ANTIC oraz wyłączyć ekran.

W rezultacie powstał możliwie jak najkrótszy programik w Basic i łatwo przepisywalny.

Programik disk2snd.bas:

0 . DISK2SND COPIER
1 . WITHOUT ANY CABLES.
2 . BY JAKUB HUSAK, DATE:07.2012
4 . JUST RETYPE THIS PROGGY,
5 . PUT THE DISK INTO DRIVE 1
6 . YOU WANT TO CONVERT TO XFD,
7 . ENTER NUMBERS AND RECORD
8 . OUTGOING NOISE ON PC, THEN
9 . SAVE AS WAV AND FEED THE PC APP
10 SUM=13218 : PLEN=145
11 POKE 65,0: DIM A$(4), B$(512)
12 FOR I=1 TO PLEN*2 STEP 4: READ A$: B$(I,I+4)=A$:N.I
13 FOR I=1 TO PLEN*2 STEP 2: VAL=(ASC(B$(I))-65)*16+
ASC(B$(I+1))-65:POKE 1536+(I-1)/2,VAL:SUM=SUM-VAL:N.I
14 IF SUM<>0 THEN ? "DATA ERROR": END
15 ? "START SEC?": I. SSEC
16 ? "END SEC?": I. ESEC
17 ? "SECT LEN [1]28/[2]56?":I. SLEN
18 FOR I=SSEC TO ESEC: ? "READING SECTOR: ";I,"ST: ";:
? USR(1543,I,I,128+(I>3)*(SLEN=2)*128): N.I
19 ? "OPERATION COMPLETED." : END
20 D. DBAB,FCEA,AIAE,BOKC,AGLN
21 D. AAAG,JNAA,ADGI,JNAI,ADMK
22 D. BAPD,CAFJ,OEIF,NFIE,NEBA
23 D. ABGA,HICA,FIAG,KJFH,IFDB
24 D. CAGI,AGKC,AJIN,AKNE,CAGC
25 D. AGNA,PICA,GFAG,KAAE,KJAI
26 D. IFHO,KJAD,IFHP,CAHG,AGOG
27 D. HPKM,AIAD,CAHG,AGKF,DBKA
28 D. AACA,HJAG,KAEA,KJCC,IMAO
29 D. NEIN,AANE,FIGA,JAAD,INAK
30 D. NEKF,DFCM,KJBP,EJAP,IFDF
31 D. INAK,NEIN,ABNC,MKGA,IILB
32 D. HOIF,DCBI,GFDB,CKGJ,AAIF
33 D. DBKC,AHAG,DCCA,GAAG,BAPJ
34 D. MAAA,NAOG,GA




Programik pobiera 3 liczby i uruchamia w pętli procedurkę czytającą sektor dyskietki oraz kodującą go na dźwięk (zgrzyty i piski). Osiągnięta prędkość przesyłu danych wewnątrz sektora to średnio 1.4 kB/sek (od 1kB/sek gdy są same FF, do 2 kB/sek, gdy same zera). Z ciekawostek - każdy zakodowany sektor ma sygnał pilotujący - 8 zboczy długości 3 linii ekranu. Dlaczego 3? Aby nie interferował się z odczytem z dyskietki pustych bajtów, których bity startu i stopu generują falę o długości niemal równej czterem liniom obrazu (w standardowej prędkości transmisji) - podszedłem do tematu zapobiegawczo, aczkolwiek w praktyce wyszło, że nie ma to znaczenia, ponieważ głośność sygnału właściwego jest dużo większa.

Dla ciekawskich zawartość linii data w formacie mads assembler (145 bajtów!):

OPT h-
org $607 - basic_entry + siotable
tmp = $32
vedge =$35
buffer =$408
seclen = DDEVIC+8
icl "atari.asm"
siotable
.by $31 $01 'R' $40
; +4
.wo buffer
; +6
.by 30
basic_entry
ldx #6
nsiotab
lda siotable,x
sta DDEVIC,x
pla
sta DDEVIC+8,x
dex
bpl nsiotab
jsr SIOV
sta $d5 ; 0
sty $d4 ; 1 if ok
spl:rts

sei
jsr nmi ; 1->NMIEN 0->DMACTL
loop:
lda #$57
sta chksum
jsr zero
ldx #9
nedge
sta WSYNC
jsr ledge
bne nedge
jsr edge

ldy #4
mwa #seclen $7e
jsr outsector

; lsb are the same, buffer one page further
inc $7f
ldy seclen
jsr outsector
lda chksum
ldy #0
jsr outbyte
ldy #$40
lda #$22
nmi sty NMIEN
sta DMACTL
cli
rts
cedge bcc edge
ledge sta WSYNC
edge:
lda vedge
; skip next two bytes
.byte $2C ; bit Q
zero:
lda #$1f
eor #$0f
sta vedge
sta WSYNC
sta AUDC1
dex
rts
outsector
dey
lda ($7e),y
outbyte
sta tmp
clc
adc chksum
rol
adc #0
sta chksum
ldx #7
loop2
asl tmp
jsr cedge
bpl loop2
cpy #0
bne outsector
rts


Na początku były 192 bajty, potem 179 (już news miał być opublikowany) i teraz 145 :) Mam nadzieję, bo nie testowałem, że będzie działał na innych SO, niż oryginalny, ponieważ wykorzystuje wartości w rejestrach po powrocie z SIOV. Jest pole do popisu:) a zatem... Konkurs! Za każde 2 bajty ukręcone powyższemu kodowi w asemblerze, przy zachowaniu pełnej funckjonalności, daję jedną gwiazdkę SZACUNU! Warunek: nie przenosimy nic do Basica.

Zakodowana dyskietka SD zajmuje czas około 2 minut, DD około 4,5 minuty. Można zapisać taką falę jako WAV mono 8 bitów, po zzipowaniu będzie miał 1-2 MB, można to wysłać komuś pocztą :). Uwaga! WAV może być mono lub stereo, 8 lub 16 bitów, bez kompresji (PCM), ale musi mieć 44.1 KHz.

Po stronie PC powstał programik - dekoder - nazywa się AuDecoder. Napisany we FreePascalu, działa pod MacOS X, Windows, a może też i pod Linuksem (nie pokusiłem się jeszcze o skompilowanie). Zawsze można uruchomić AuDecoder pod Wine :).



Dołożyłem wszelkich starań, aby WAV wrzucony do AuDecoder mógł mieć dowolną głośność. Taki rezultat osiągnąłem - jeśli ktoś utworzy obraz dyskietki, który nie wchodzi do AuDecoder, to proszę o przysłanie mi go do testów.

Program jest typu freeware. Można go sobie ściągnąć stąd. Uwaga! Wersja PC na razie jest bez podpisu, więc antywirusowe oprogramowanie może różne cuda z tym wyczyniać (włącznie z usuwaniem aplikacji z dysku :). Miłego użytkowania!

2012-07-22 22:46 by Jakub Husak
komentarzy: 0
nickname
e-mail / website (opcjonalnie)
Aktualne tematy
Emulatorowanie przenośne. (89)
ostatni: 25-05-2024 22:42, Dracon
Gra "TONY" (246)
ostatni: 25-05-2024 21:47, rafaldudek
Time Wizard - gra na ABBUC Softwa... (258)
ostatni: 25-05-2024 19:34, amarok
Lost Party 2024 (9)
ostatni: 25-05-2024 17:48, lzd
Atari przejmuje Intellivision (1)
ostatni: 25-05-2024 05:06, urborg
Silly Venture 2024SE - United ATA... (39)
ostatni: 24-05-2024 20:35, greymsb
Action! - co robie źle ? (23)
ostatni: 24-05-2024 19:08, tebe
Sprawa Piotra Kaczorowskiego (7)
ostatni: 24-05-2024 10:53, Dracon
Giełda retro Katowice / Gliwice /... (12)
ostatni: 23-05-2024 16:28, sun
Fajny chip wczoraj słyszałem (312)
ostatni: 23-05-2024 13:11, sun
książki dla "nerdów" (sf/fantasy ... (213)
ostatni: 23-05-2024 12:33, gorgh
Muzycy scenowi... (63)
ostatni: 21-05-2024 20:38, solo/ng
A tymczasem na wystawie w Łodzi... (5)
ostatni: 20-05-2024 12:31, nosty
Moje materiały wideo z grami na A... (201)
ostatni: 19-05-2024 20:43, as...
SDrive Micro ;) (424)
ostatni: 19-05-2024 12:39, pigula

Kategorie Forum Atarum

Użytkowników: 2798
Ostatnio zarejestrowany: JarekAlaskiy
Postów ostatniej doby: 10

Spotkania i zloty / Meetings & Parties

Najbliższe imprezy
link do naszych spotkań online, zapraszamy do odwiedzenia kanału zoom również przez kod QR:

KWAS

Kalendarz AOL


Społeczność/Community


Rozmawiali
Wywiad z Mariuszem Jaroszem i Kaz (12)
Wywiad Dracona z Mr. Bacardim i Kaz (12)
Tomasz Dajczak i Kaz (21)
Lech Bąk i "Świat Młodych" i Kaz (26)
Michał "Mike" Jaskuła i Kaz (6)
F#READY i Dracon (22)
Daniel „Arctus” Kowalski i Dracon (25)
KATOD i TDC (15)
Mariusz Wojcieszek i "Adam" (17)
Romuald Bacza i Ramos (16)
Śledzenie Amentesa i Larek (9)
Leszek Łuciów i Charlie Cherry (17)
TO JUŻ ZA TOBĄ: rozmowa z Bobem Pape i cpt. Misumaru Tenchi (39)
Rob Jaeger i Emu (53)
Jacek "Tabu" Grad i Dracon (0)
Alexander "Koma" Schön i Kaz (0)
Maciej Ślifirczyk i Charlie Cherry (0)
Jarek "Odyniec1" Wyszyński i Kaz (0)
Marek Bojarski i Kaz (0)
Olgierd Niemyjski i Ramos (0)
«« nowszestarsze »»

Stragan
Nowe, pojemniejsze RAM-Carty oferuje Kaz (21)
"mouSTer" czyli myszka ST oferuje Kaz (30)
Atari USBJoy Adapter oferuje Jakub Husak (0)
Programy: Kolony 2106 oferuje Kaz (7)
Sprzęt: rozszerzenia oferuje Lotharek (27)
Gadżety: naklejki, pocztówki oferuje Sikor (11)
Sprzęt: cartridge RAM-CART oferuje Zenon (7)
Miejsce na drobne ogłoszenia kupna/sprzedaży oferuje Kaz (58)
Sprzęt: interfejs SIO2IDE oferuje Piguła (0)
Sprzęt: interfejs SIO2SD oferuje Piguła (36)

Użytki/Utils
Sprzęt/Hardware

Wynalazki
Atari i Bluetooth napisał Kaz (34)
SIO2PC-USB napisał Larek (45)
Nowe SIO2SD napisał Larek (0)
SIO2SD w CA12 napisał Urborg (12)
Ratowanie ATMEL-ów napisał Yoohaas (12)
Projektowanie cartów napisał Zenon (12)
Joystick do Atari napisał Larek (54)
Tygrys Turbo napisał Kaz (11)
Testowałem "Simple Stereo" napisał Zaxon (5)
Rozszerzenie 1MB napisał Asal (20)
Joystick trzyprzyciskowy napisał Sikor (18)
Moje MyIDE oraz SIO2PC na USB napisał Zaxon (16)
Jak wykonać płytkę drukowaną? napisał Zaxon (26)
Rozszerzenie 576kB napisał Asal (36)
Soczyste kolory napisał scalak (29)
XEGS Box napisał Zaxon (13)
Atari w różnych rolach napisał Różyk (9)
SIO2IDE w pudełku napisał Kaz (5)
Atari steruje tokarką napisał Kaz (15)
DarkMouse napisał Kaz (7)
«« nowszestarsze »»