Welcome, Guest. Please login or register.


Author Topic: BASIC (Read 178022 times)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13521
  • Country: hu
  • OS:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 10.0.2 Firefox 10.0.2
    • View Profile
    • http://enterprise.iko.hu/
Re: BASIC
« Reply #240 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: 2929
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 6.0.2 Firefox 6.0.2
    • View Profile
    • http://www.ep128.hu
Re: BASIC
« Reply #241 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

  • EP addict
  • *
  • Posts: 13521
  • Country: hu
  • OS:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 10.0.2 Firefox 10.0.2
    • View Profile
    • http://enterprise.iko.hu/
Re: BASIC
« Reply #242 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

  • EP addict
  • *
  • Posts: 13521
  • Country: hu
  • OS:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 10.0.2 Firefox 10.0.2
    • View Profile
    • http://enterprise.iko.hu/
Re: BASIC
« Reply #243 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

  • EP addict
  • *
  • Posts: 8069
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 10.0.2 Firefox 10.0.2
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #244 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?
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13521
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 10.0.2 Firefox 10.0.2
    • View Profile
    • http://enterprise.iko.hu/
Re: BASIC
« Reply #245 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

  • EP addict
  • *
  • Posts: 8069
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 10.0.2 Firefox 10.0.2
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #246 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.
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Opera 9.80 Opera 9.80
    • View Profile
    • Honlapom
Re: BASIC
« Reply #247 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

  • EP addict
  • *
  • Posts: 8069
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 10.0.2 Firefox 10.0.2
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #248 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.
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline Lacika

  • EP addict
  • *
  • Posts: 2929
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 10.0.2 Firefox 10.0.2
    • View Profile
    • http://www.ep128.hu
Re: BASIC
« Reply #249 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.

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13521
  • Country: hu
  • OS:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 10.0.2 Firefox 10.0.2
    • View Profile
    • http://enterprise.iko.hu/
Re: BASIC
« Reply #250 on: 2012.March.14. 20:46:50 »
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.
így van, ezért van a Freesegment. A szám azért lett 255-nél nagyobb, mert  felsõbájtban a hibakódot adja vissza, ami alap esetben (ha sikerült a foglalás) 0.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8069
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 10.0.2 Firefox 10.0.2
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #251 on: 2012.March.16. 13:41:21 »
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.

Ezzel akkor hogyan kell magát a betöltést megoldani?
Eredetileg ilyesmi lett volna:

Code: [Select]
  180 FOR I=1 TO 7719
  185   GET #1:A$
  190   SPOKE WS,I,ORD(A$)
  200 NEXT

Ezek közül mely sorok helyett kell azt írni be, hogy CALL USR(LOAD,0)? Próbáltam úgy is, hogy csak a SPOKE helyett írom be, meg úgy is, hogy a GET és a SPOKE helyett írom be, meg úgy is, hoyg az egész helyett írom be, de egyikkel sem akart mûködni. Vagy én szúrtam el valamit.
Ja, és ha I helyett A-t írnék változónak a ciklusban, úgy is mûködne?
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13521
  • Country: hu
  • OS:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 10.0.2 Firefox 10.0.2
    • View Profile
    • http://enterprise.iko.hu/
Re: BASIC
« Reply #252 on: 2012.March.16. 14:04:43 »
Ezek közül mely sorok helyett kell azt írni be, hogy CALL USR(LOAD,0)?
Az egész helyett. És LOAD,WS

Offline szipucsu

  • EP addict
  • *
  • Posts: 8069
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 10.0.2 Firefox 10.0.2
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #253 on: 2012.March.16. 14:08:46 »
Még egy észrevétel:
Ha kiadom elõbb a POKE 56,201 utasítást, akkor a következõ sorok hatástalanok:

Code: [Select]
170 POKE 56,201
570 IF SPEEK(WS,1317)=8 THEN SET BORDER 6
580 IF SPEEK(WS,1317)=0 THEN SET BORDER 8

Ha nincs ott a 170-es sor, akkor viszont mûködik. Biztos ennek is nyilvánvaló oka van, ami nekem magas. És ha pl. az 590-es sorban kiadom, hogy POKE 56,245, akkor hirtelen megjön a hatása az elõzõ soroknak.

Lehet akkor úgy olvasgatni SPEEK utasítással címekrõl egymás után sokat, hogy a POKE 56,201 be van kapcsolva, és kicsit késõbb jön POKE 56,245? SPEEK utasítással olvasná ki a karakterek kódjait, és ezek a karakterek kerülnek a képernyõre, szóval kb. 400 darab SPEEK utasítás után jönne egy POKE 56,245, és akkor hirtelen megjelenne gondolom az összes kiolvasott karakter a képernyõn.
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13521
  • Country: hu
  • OS:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 10.0.2 Firefox 10.0.2
    • View Profile
    • http://enterprise.iko.hu/
Re: BASIC
« Reply #254 on: 2012.March.16. 15:16:20 »
A videó változók értékét a videó megszakítási rutin írja be a Nickbe (Border, Status, Bias), így ha le van tiltva a megszakítás, akkor nem jutnak érvényre.