Welcome, Guest. Please login or register.


Author Topic: Általános BASIC Kérdések (Read 423892 times)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #225 on: 2012.March.11. 12:51:21 »
Kilépés menüpont, mondjuk STOP-ra?
Végülis jó ötlet! Amúgy is, a basic program OUT 191,12-t használ, ami gyorsítja a gépet, és ha ezután betöltjük a Dot collectort, az is gyorsabb lesz. STOP-ra ezt is visszaállíthatná, kiléphetne és tölthetné automatikusan azt, amit éppen elmentettünk, azzal a file névvel.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Tuby128

  • EP addict
  • *
  • Posts: 1448
  • Country: hu
Re: Általános BASIC Kérdések
« Reply #226 on: 2012.March.11. 19:31:16 »
Mit csinál az OUT 191,12 parancs?

Nem is ez a kérdés, mert idõközben kinéztem az EXOS referencia könyvbõl. A kérdésem: Mennyi az alapértéke a 191-es IO portnak?

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Általános BASIC Kérdések
« Reply #227 on: 2012.March.11. 20:09:39 »
Mennyi az alapértéke a 191-es IO portnak?
4

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Általános BASIC Kérdések
« Reply #228 on: 2012.March.12. 09:18:16 »
De azt a HEX-es mentést-töltést bele lehetne tenni. Megírnátok, az hogyan van?
Felraksz egy olyan verziót, amibe már csak ezt kell beleírni?

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #229 on: 2012.March.12. 14:12:40 »
Felraksz egy olyan verziót, amibe már csak ezt kell beleírni?
A töltõ-mentõ részek így néznének ki az eddigiek alapján, ahogy Laci leírta. Kicsit kiegészítettem. A 185-ös meg a 220-as sort kellene majd lecserélni, meg hozzáírni néhány krixkraxot CODE és CALL utasítások után, ha jól értem.
Meg a program többi részében is majd át kell írni SPOKE, SPEEK-re néhány utasítást, amiket eddig másképp oldottam meg, azt majd megcsinálom.
Így jó lesz, vagy a végleges verziót csináljam meg elõször inkább?
(A gyakorlatban még nem próbáltam ki a GETSEGMENT-féle megoldást, de hiszek nektek, biztos mûködik. :D )

Code: [Select]
  100 PROGRAM "Proba2.bas"
  110 ALLOCATE x
  120 CODE GETSEGMENT=HEX$("F7,18,67,69,c9")
  130 CODE FREESEGMENT=HEX$("4D,F7,19,C9")
  140 TEXT 40
  145 INPUT PROMPT "Filename:":FN$
  150 LET WS=USR(GETSEGMENT,0)

  155 ! Töltés
  170 OPEN #1:FN$ ACCESS INPUT
  180 FOR I=1 TO 7719
  185   GET #1:A$
  190   SPOKE WS,I,ORD(A$)
  200 NEXT
  205 CLOSE #1

  207 ! Mentés
  208 INPUT PROMPT "Filename:":FN$
  209 OPEN #1:FN$ ACCESS OUTPUT
  210 FOR I=1 TO 7719
  220   PRINT #1:CHR$(SPEEK(WS,I));
  230 NEXT
  240 CLOSE #1

  999 CALL USR(FREESEGMENT,WS)
 1000 RUN FN$
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: Általános BASIC Kérdések
« Reply #230 on: 2012.March.13. 14:08:50 »
Jééé, az IS-BASIC betölt TXT fájlt is! Lehet, hogy valahol le volt ez írva, de nekem új  :oops:

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: Általános BASIC Kérdések
« Reply #231 on: 2012.March.13. 14:14:36 »
Valahol már volt róla szó, hogy ha sikerül OCR-ezni egy programlistát, rögtön lehet betölteni.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Általános BASIC Kérdések
« Reply #232 on: 2012.March.13. 14:18:55 »
Valahol már volt róla szó, hogy ha sikerül OCR-ezni egy programlistát, rögtön lehet betölteni.
De hivatalosan írták ezt valamelyik könyvben?

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Általános BASIC Kérdések
« Reply #233 on: 2012.March.13. 14:47:15 »
Ha minden igaz ez kell bele:
Code: [Select]
  135 CODE LOAD=HEX$("DB,B3,F5,7D,D3,B3,3E,01,11,01,C0,01,27,1E,F7,06,6F,26,00,F1,D3,B3,C9")
  136 CODE SAVE=HEX$("DB,B3,F5,7D,D3,B3,3E,01,11,01,C0,01,27,1E,F7,08,6F,26,00,F1,D3,B3,C9")
Híváskor paraméterben meg kell adni a szegmens számot (WS). Visszatéréskor ha az értéke nagyobb mint 0, akkor hiba volt.
A Getsegmentnél, ha nagyobb mint 255, akkor hiba volt (ez lehet megosztott szegmens lefoglalásakor is), ekkor a felsõbájt (azaz az érték/256) a hibakód.

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #234 on: 2012.March.13. 15:36:47 »
De hivatalosan írták ezt valamelyik könyvben?
Valahol olvastam, de lehet, hogy itt a fórumon, hogy az IS-BASIC tokenizálatlan cuccot is megeszik, tehát olyan, mintha akkor gépelnéd be a sorokat.

A HEX$-ok utáni krixkraxokat köszi, majd kipróbálom! Remélem, jól értem, hogy akkor a getsegment, freesegment, load, save nevû akármiket is meg kell adni HEX$-os krixkraxok elõtt. (Szóval lesz CODE LOAD=HEX$("krixkraxok"), CODE SAVE=HEX$("krixkraxok"), CODE GETSEGMENT=HEX$("krixkraxok"), CODE FREESEGMENT=HEX$("krixkraxok".)

Híváskor paraméterben meg kell adni a szegmens számot (WS). Visszatéréskor ha az értéke nagyobb mint 0, akkor hiba volt.
A Getsegmentnél, ha nagyobb mint 255, akkor hiba volt (ez lehet megosztott szegmens lefoglalásakor is), ekkor a felsõbájt (azaz az érték/256) a hibakód.
Ebbõl kb. annyit értettem, mint a krixkraxokból. :D De remélem, mûködni fog.

Code: [Select]
LET WS=USR(GETSEGMENT,0)Ezt a program eleje felé kell egyszer kiadni, utána SPOKE és SPEEK-kel lehet bûvészkedni vele?
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: Általános BASIC Kérdések
« Reply #235 on: 2012.March.13. 16:03:23 »
Meg kell számolni, mennyi krixkarx van összesen, és annyit írni az Allocate után.

Code: [Select]
LET WS=USR(GETSEGMENT,0)Ezt a program eleje felé kell egyszer kiadni, utána SPOKE és SPEEK-kel lehet bûvészkedni vele?
Igen, amíg vissza nem adjuk, addig a miénk.
Egy IF kell, hogyha 255 nagyobb a kapott WS, akkor hiba.

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #236 on: 2012.March.13. 21:10:36 »
Jééé, az IS-BASIC betölt TXT fájlt is!
De MERGE-dzsel nem lehet betölteni, érdekes, meg VERIFY-ra sem mûködik, Invalid file format. De LOAD-ra, START-ra, RUN ""-ra mûködik.
A kovetkezo nem hivatalos IS-BASIC verzioban meg lehetne csinalni ezt MERGE-re, VERIFY-ra is, hogy a felhasznalo ne legyen MERGEs.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Általános BASIC Kérdések
« Reply #237 on: 2012.March.13. 21:27:59 »
egyértelmû, hogy pc-n kell írni a programot, notepad++ :)

az EP Plus-t próbáld meg szerintem! http://ep128.hu/Ep_Konyv/Ep_Plus.htm
meg lehet benne tanulni könnyen a z80 programozást, nagyon jól összehozták a basicet és az asm használatot benne
Vigyázat! Szektás vagyok! :)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #238 on: 2012.March.13. 21:30:48 »
Egy IF kell, hogyha 255 nagyobb a kapott WS, akkor hiba.
Elsõre a WS értéke 249 volt.
De ahogy újra meg újra lefuttatom a HEX-ekbõl álló programot, mindig eggyel nagyobb az értéke, és idõvel meghaladja a 255-öt is, hirtelen 32767 lett. Aztán idétlenkedtem még vele, és "meghülyült" a gép. :D De lehet, ennek nincs jelentõsége, mert elsõ futtatáskor biztos jó volt. Azért itt egy snapshot fájl a meghülyülés utáni állapotról, a SAVE parancsra azt írja ki, insufficient memory. (A 106-os sorban eredetileg GETSEGMENT volt, késõbb írtam át FREESEGMENT-re.)
Valószínû, egyszer szabad csak egyszerre a programot lefuttatni, vagy minden futtatás végén FREESEGMENT-ezni is kéne.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: Általános BASIC Kérdések
« Reply #239 on: 2012.March.14. 19:58:48 »
Valószínû, egyszer szabad csak egyszerre a programot lefuttatni, vagy minden futtatás végén FREESEGMENT-ezni is kéne.

Nem mintha a kérdés nagy szakértõje lennék, de a snapshot-ban elfogyott a memória (F8-al kérj INFO-t). Mindíg amikor elindítod a programot, újabb szegmenst foglalt le, és sokat próbálkoztál vele, anélkül, hogy felszabadítottad volna.