Welcome, Guest. Please login or register.


Author Topic: Másolóprogram írása (Read 1302 times)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Másolóprogram írása
« on: 2006.October.16. 18:05:28 »
Igazad van, Zozo, az EP memóriakezelésérõl halovány fogalmam sincs. :D A saját memóriám is megtréfál idõnként...

Archivációs tevékenységem folytatásához összedobtam egy progit basicben, ami elvileg orrvérzésig másol kazettáról floppyra, ezt most mellékelem.
Én nagyon szeretem úgy használni az EP-t, hogy még a tévét sem kapcsolom be hozzá, ezen igényemet igyexik kiszolgálni fergeteges alkotásom. Csalafinta módon kiolvassa a status sorból a file címét, megnézi, van-e már ilyen a floppyn, ha nincs, akkor lemásolja, meg ilyesmi.

A sebesség növelése érdekében bevetettem az OUT 191,12 és a POKE 56,201 nevû fegyvereket. Az utóbbi tiltja a megszakításokat, ezért van az egész progi egy WHEN blokkban, hogy ha balhé van, akkor elõbb állítsa vissza a megszakikat, utána balhézzon a gép, hogy ne hiába nyomogassuk a billentyûket ebben az esetben.
Valami plusz 5letetek nincs, amivel még gyorsabbá lehet tenni a progit? A PAUSÉknél kicsit sokat vár.

Tudom, még lehetne továbbfejleszteni, hogy pl. akkor is ellenõrizze, nincs-e ilyen fájl, ha újat adunk meg (ha mégis felül akarjuk írni, akkor sima ENTER-t kell nyomni), ill ha olyan file jön a magnóról, amiben pl. több . karakter is van, akkor is másolja le valami más néven a hibaüzi helyett. Talán majd egyszer azt is megcsinálom...

Szóval a sebességet lehetne még növelni? A Zzzip sajnos nem eszi meg ezt a progit...
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Másolóprogram írása
« Reply #1 on: 2006.October.16. 18:53:18 »
Quote from: "szipucsu"

Valami plusz 5letetek nincs, amivel még gyorsabbá lehet tenni a progit? A PAUSÉknél kicsit sokat vár.

Igen mert a COPY karakterenként olvas, ír, vagyis egy bájt átviteléhez roppant sok kód fut le...
Mindenképpen blokk mûveleteket érdemes használni. A magnó blokk mérete miatt mondjuk 4096 bájtos adagokban célszerû kezelni a cuccot, vagyis 4096 bájtot beolvasni az 1-es csatornáról, és aztán 4096-ot kiírni a 2-esre. Természetesen ha nem sikerült 4096 bájtot beolvasni, mert már nincs annyi a fájlban, akkor ki kell számolni mennyit sikerült, és annyit kell kiirni, majd kilépni a másolási cikklusból.
Sajnos erre nincs semmilyen Basic utasítás :-(
Így ezt egy pici gépi kódú betétben kell megirni (ALLOCATE :-) , CODE, CALL USR...).
Lõjem le a poént, vagy menni fog egyedül is? :-)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Másolóprogram írása
« Reply #2 on: 2006.October.16. 19:35:27 »
Quote from: "Zozosoft"

Lõjem le a poént, vagy menni fog egyedül is? :-)


Hát, a gépi kódú dolgokról annyi a fogalmam, mint a gép memóriakezelésérõl. Szóval ha nem túl nagy gond, megírnád, mit mire cseréljek ki a basic programomban? (Lehetõleg úgy, hogy az említett tervezett módosításokat is meg tudjam még utána csinálni, vagyis a fájlnevekkel idétlenkedést. Vagy ehhez újra kéne írni szinte az egész progit?)
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Másolóprogram írása
« Reply #3 on: 2006.October.16. 20:03:34 »
Hát elméletileg valami ilyesmirõl van szó...
Code: [Select]

                IN A,(0B1H)
                PUSH AF
                EXOS 24
                LD L,A
                LD A,C
                OUT (0B1H),A
                JR NZ,KILEP
MASOL           LD A,1
                LD DE,4000H
                LD BC,4096
                EXOS 6
                LD DE,4000H
                JR NZ,KILEP
                LD A,2
                LD BC,4096
                EXOS 8
                JR MASOL
                LD L,A
                PUSH HL
                LD HL,4096
                OR A
                SBC HL,BC
                PUSH HL
                POP BC
                POP HL
                LD A,C
                OR B
                JR Z,KILEP
                LD A,2
                EXOS 8
KILEP           LD A,1
                EXOS 3
                LD A,2
                EXOS 3
                IN A,(0B1H)
                LD C,A
                EXOS 25
                POP AF
                OUT (0B1H),A
                LD H,0
                RET
                END


Az Asmon (legalábbis az 1.5-ös) nagyon rendes hozzánk, ha ezt lefordítjuk 4-es fejléccel, akkor ezt kapjuk:
Code: [Select]
   1 ALLOCATE 80
    2 CODE M=HEX$("DB,B1,F5,F7,18,6F,79,D3")
    3 CODE =HEX$("B1,20,2B,3E,01,11,00,40")
    4 CODE =HEX$("01,00,10,F7,06,11,00,40")
    5 CODE =HEX$("20,1C,3E,02,01,00,10,F7")
    6 CODE =HEX$("08,18,E8,6F,E5,21,00,10")
    7 CODE =HEX$("B7,ED,42,E5,C1,E1,79,B0")
    8 CODE =HEX$("28,04,3E,02,F7,08,3E,01")
    9 CODE =HEX$("F7,03,3E,02,F7,03,DB,B1")
   10 CODE =HEX$("4F,F7,19,F1,D3,B1,26,00")
   11 CODE =HEX$("C9,00,00,00,00,00,00,00")


Így ezt már csak össze kell MERGE-zni az eredetivel, meg lecserélni a COPY-t a saját programunkra.
És aztán ki kéne próbálni, hogy azt csinálja-e amit gondolunk :-)

Offline Povi

  • EP addict
  • *
  • Posts: 2296
  • Country: hu
    • http://povi.fw.hu
Re: Másolóprogram írása
« Reply #4 on: 2006.October.16. 20:40:59 »
Quote from: "Zozosoft"
Az Asmon (legalábbis az 1.5-ös) nagyon rendes hozzánk, ha ezt lefordítjuk 4-es fejléccel, akkor ezt kapjuk:

Nem is tudtam, hogy az ASMON ilyet is tud!!! :shock:
Nagyon okos!
*** Speicherplatz zu klein

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Másolóprogram írása
« Reply #5 on: 2006.October.16. 20:45:49 »
Quote from: "Povi"
Nem is tudtam, hogy az ASMON ilyet is tud!!! :shock:
Nagyon okos!

Sejtettem, hogy neked tetszeni fog :-)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Másolóprogram írása
« Reply #6 on: 2006.October.17. 11:56:57 »
Quote from: Zozosoft
Így ezt már csak össze kell MERGE-zni az eredetivel, meg lecserélni a COPY-t a saját programunkra.
És aztán ki kéne próbálni, hogy azt csinálja-e amit gondolunk :-)


 :smt041  :smt041  :smt041  :smt041  :smt041  :smt041  :smt041  :smt041  :smt041  :smt041

 :mrgreen:  :smt006  :smt026  :smt023  :smt040  :smt039  :smt026
« Last Edit: 2007.April.15. 22:59:36 by szipucsu »
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Másolóprogram írása
« Reply #7 on: 2006.October.17. 13:35:50 »
Ez a nagy újjongás azt jelenti, hogy mûködik? :-)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Másolóprogram írása
« Reply #8 on: 2006.October.17. 21:03:45 »
Mûködik bizony!

Csak azt ne mondd, hogy te is a munkahelyeden dobtad össze a progit szabadidõdben:)
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Másolóprogram írása
« Reply #9 on: 2006.October.17. 21:23:03 »
Quote from: "szipucsu"
Csak azt ne mondd, hogy te is a munkahelyeden dobtad össze a progit szabadidõdben:)

Nem, ezt itthon, miközben vártam, hogy elkészüljön a vacsora :-)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Másolóprogram írása
« Reply #10 on: 2019.April.17. 11:41:31 »
sajnos a C2.BAS valami oknál fogva önkényesen csonkolja a fájlokat 4kB többszöröseinél
Anno nekem is rémlett ez a hiba, írtam is itt róla emlékeim szerint, de mások azt írták rá, hogy nincs azzal gond. Szerintem a HEX utáni hexadecimális számhalmazban lehet valami hiba, mert azt a részét nem értem a programnak. Nem lehetne rendbe tenni ezt a másolót? (Eleve arra van kihegyezve, hogy 4KB-onként másoljon, ezért talán a fájl végén az utolsó blokkot is 4KB-osnak akarná kezelni, de nem tudja, mivel kisebb.)
A CRC hiba kezelése talán nem lenne nehéz. WHEN-HANDLER blokkba kéne tenni a programot (ha még nem abban van, most nem néztem), és CRC hiba esetére megadni, mit csináljon.
Sajnálom, hogy így _csonka fájlok is lettek. Azokat a fájlokat majd újra be kéne olvasni. :oops:
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Másolóprogram írása
« Reply #11 on: 2019.April.17. 11:52:16 »
Nem volt ebből későbbi verzió is? C3, C4, stb? :-) Na majd körbe nézek...

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Másolóprogram írása
« Reply #12 on: 2019.April.17. 12:03:31 »
Nem volt ebből későbbi verzió is? C3, C4, stb? :-) Na majd körbe nézek...
Én ezt ajánlottam Dr.Og-nak. Az a baj, a fórumon a kereső a c2.bas-t sem dobta ki, ezért is vont nehéz megtalálni. Amennyire olvasgattam ott, ahol linkeltem, nem találtam későbbi verziót, legalábbis abban a topikban egy darabig nem, utána más témák jöttek elő. Hacsak később vissza nem tértünk rá...
« Last Edit: 2021.April.02. 09:12:46 by szipucsu, Reason: Megváltozott belső link javítása »
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Dr.OG

  • Global Moderator
  • EP lover
  • *
  • Posts: 742
  • Country: hu
  • dr.
Re: Másolóprogram írása
« Reply #13 on: 2019.April.17. 18:27:01 »
...
Sajnálom, hogy így _csonka fájlok is lettek. Azokat a fájlokat majd újra be kéne olvasni. :oops:
Részemről nem probléma!
ÉN ekelek, TE keregsz, Ő gyeleg,
MI ákolunk, TI vornyáztok, ŐK lendeznek.