Welcome, Guest. Please login or register.


Author Topic: BASIC (Read 209935 times)

Offline szipucsu

  • EP addict
  • *
  • Posts: 8584
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 76.0 Firefox 76.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #1410 on: 2020.May.17. 17:59:51 »
A SOUND parancsot lehet helyettesíteni valamilyen SPOKE-kal? Úgy, hogy sok paraméter is meg van adva a SOUND-ban. Ha igen, az gyorsabb valamivel?
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13718
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Firefox 76.0 Firefox 76.0
    • View Profile
    • http://enterprise.iko.hu/
Re: BASIC
« Reply #1411 on: 2020.May.17. 18:52:01 »
PRINT-tel lehetne helyettesíteni, de ha paraméterek kellenek, akkor mire azokat belevariálod, nem hinném, hogy gyorsabb lenne.

Offline Povi

  • EP addict
  • *
  • Posts: 1965
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 81.0.4044.138 Chrome 81.0.4044.138
    • View Profile
    • http://povi.fw.hu
Re: BASIC
« Reply #1412 on: 2020.May.22. 08:54:29 »
félig off:
A Microsoft publikussá tette a GW-BASIC forráskódját!
https://devblogs.microsoft.com/commandline/microsoft-open-sources-gw-basic/?fbclid=IwAR0G_9TSxKE-Jfa7lpUmMaINOHlo2d85j4zCEVrT2Co2AvJv6c4MnfzxmV0

látszik, hogy 8080 asm az alapja, a kommentekben még 8080 regiszterekre hivatkoznak
*** Speicherplatz zu klein

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13718
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Firefox 76.0 Firefox 76.0
    • View Profile
    • http://enterprise.iko.hu/
Re: BASIC
« Reply #1413 on: 2020.May.22. 09:10:02 »
látszik, hogy 8080 asm az alapja, a kommentekben még 8080 regiszterekre hivatkoznak
Akkor Z80-ra is le lehetne fordítani? :-)
Amúgy ha jól emlékszem anno adott ki az Intel 8080 -> 8086 assembly konvertert, ami lecserélte a forrásban az utasításokat a megfelelő újakra. Lehet, hogy ez a cucc is így készült?

Offline Povi

  • EP addict
  • *
  • Posts: 1965
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 81.0.4044.138 Chrome 81.0.4044.138
    • View Profile
    • http://povi.fw.hu
Re: BASIC
« Reply #1414 on: 2020.May.22. 11:37:26 »
Akkor Z80-ra is le lehetne fordítani? :-)
Amúgy ha jól emlékszem anno adott ki az Intel 8080 -> 8086 assembly konvertert, ami lecserélte a forrásban az utasításokat a megfelelő újakra. Lehet, hogy ez a cucc is így készült?
vszínű, mivel pl ehelyett: (1993-1994. sor a GWMAIN.ASM-ban)
https://github.com/microsoft/GW-BASIC/blob/master/GWMAIN.ASM
Code: [Select]
MOV BH,DH ;SAVE [D,E]
MOV BL,DL

lehetett volna:
Code: [Select]
mov bx, dx

az eredeti (Altair BASIC-ben) pedig ez a rész Z80 szintaktikával:
Code: [Select]
   ld      h,d
    ld      l,e
*** Speicherplatz zu klein

Offline szipucsu

  • EP addict
  • *
  • Posts: 8584
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 76.0 Firefox 76.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #1415 on: 2020.May.26. 19:53:25 »
Az ALLOCATE utasításnak a program elején kell lennie mindig? Vagy elég a CODE, HEX előtt is kiadni? Azt írja a kézikönyv, hogy a változókat elrontja. DEF blokkon belül nem célszerű kiadni?
A program tele van egy rakat SET CHARACTER utasítással, semmi más nincs benne. És lenne egy DEF blokk, amit ha akarunk, meghívunk parancs üzemmódból, és akkor HEX, USR segítségével elmenti az egész karakterkészletet.

UI.: Próbálkoztam, működik, csak mire az END DEF-hez ér, már nem tudja, az mire vonatkozik. Valószínű CALL-lal így nem lehet meghívni blokkot, hanem csak a "RUN sorszám"-mal elindítani a kódos részt.
« Last Edit: 2020.May.26. 20:14:42 by szipucsu »
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13718
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Firefox 76.0 Firefox 76.0
    • View Profile
    • http://enterprise.iko.hu/
Re: BASIC
« Reply #1416 on: 2020.May.26. 20:53:17 »
Az ALLOCATE utasításnak a program elején kell lennie mindig? Vagy elég a CODE, HEX előtt is kiadni? Azt írja a kézikönyv, hogy a változókat elrontja. DEF blokkon belül nem célszerű kiadni?
Bármi olyan előtt ami értéket tárol el a BASIC munkamemóriában. Ennek a munkamemóriának tolja el a kezdetét, hogy legyen egy fix hely majd a gépi kódú részeknek.

Quote
Próbálkoztam, működik, csak mire az END DEF-hez ér, már nem tudja, az mire vonatkozik.
Igen pont erről van szó, a DEF blokkhoz tartozó adatok is ebben a munkamemóriában vannak tárolva, amikor az ALLOCATE lefut, azzal ez is elromlik.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8584
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 76.0 Firefox 76.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #1417 on: 2020.May.26. 21:17:30 »
Köszi! Még azt valaki meg tudná nézni, hogy itt a Wikin a Karakterkészlet kimentése és betöltése cím alatt az a kis program jó-e? Szerintem nem menti el a karakterkészletet, pedig már mindenféle felállásból próbáltam... Ha a C9 előtt a 08-at átírom 06-ra, akkor be tud tölteni egy másik karakterkészletet, de amit ez ment el, azt nem tölti vissza. (Az access output helyett beírtam, hogy access input.) Hibát nem okoz, de a karakterkészletet nem menti el rendesen, pedig már ezerszer ellenőriztem, azokat a számokat írtam-e be.
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline szipucsu

  • EP addict
  • *
  • Posts: 8584
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 76.0 Firefox 76.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #1418 on: 2020.May.26. 21:29:58 »
itt a Wikin a Karakterkészlet kimentése és betöltése cím alatt az a kis program jó-e?
Közben próbálgattam még. Működik, de ha egy több száz soros basic programba tesszük be, akkor már nem működik. Rejtély, hogy miért. Pedig nem változtattam rajta semmit. Rögtön a program elején lefut, de nem írja át a karakterkészletet.
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline Povi

  • EP addict
  • *
  • Posts: 1965
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 81.0.4044.138 Chrome 81.0.4044.138
    • View Profile
    • http://povi.fw.hu
Re: BASIC
« Reply #1419 on: 2020.May.27. 14:11:04 »
Közben próbálgattam még. Működik, de ha egy több száz soros basic programba tesszük be, akkor már nem működik. Rejtély, hogy miért. Pedig nem változtattam rajta semmit. Rögtön a program elején lefut, de nem írja át a karakterkészletet.
Most akkor a töltés, vagy a mentés nem megy nálad? (nálam működik)
Biztos, h jó file-t töltesz be?
*** Speicherplatz zu klein

Offline szipucsu

  • EP addict
  • *
  • Posts: 8584
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 76.0 Firefox 76.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #1420 on: 2020.May.27. 14:40:52 »
Most akkor a töltés, vagy a mentés nem megy nálad? (nálam működik)
Biztos, h jó file-t töltesz be?
Működik.
Csak akkor nem működik, ha egy nagyobb basic program része. A most felrakott Dots and gems programba akartam belerakni, hogy betöltse a karakterkészletet, de ott már nem működött. Nem okoz hibát, egyszerűen olyan, mintha átugraná azt a részt.
Még tavaly Ferro73 az Entersnake-ben is máshogy oldotta meg a karakterkészlet betöltését, végül az ő spoke-os módszerét loptam el, csak az lassabb.
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline Povi

  • EP addict
  • *
  • Posts: 1965
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 83.0.4103.61 Chrome 83.0.4103.61
    • View Profile
    • http://povi.fw.hu
Re: BASIC
« Reply #1421 on: 2020.May.27. 15:35:51 »
Csak a ZZZIP-pel lefordított változatban nem működik, vagy a nyers BASIC-ben se?

Egyébként azt tudom elképzelni, hogy akkor, amikor meghívod a függvényt, akkor nem a 255-ös szegmens van a 2-es lapon. És akkor rossz helyre tölti be a chr készletet.
Próbáld ki úgy, hogy berakod még ezt a CALL USR elé:

Code: [Select]
LET SZEG=IN(178)
OUT 178,255
ezt pedig a CALL USR után
Code: [Select]
OUT 178,SZEG
« Last Edit: 2020.May.28. 10:29:13 by Povi »
*** Speicherplatz zu klein

Offline szipucsu

  • EP addict
  • *
  • Posts: 8584
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 76.0 Firefox 76.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #1422 on: 2020.May.27. 16:21:52 »
Csak a ZZZIP-pel lefordított változatban nem működik, vagy a nyers BASIC-ben se?
Basic-ben se. Akkor majd kipróbálom a módszered.
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline szipucsu

  • EP addict
  • *
  • Posts: 8584
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 77.0 Firefox 77.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #1423 on: 2020.June.09. 17:03:37 »
Egyébként azt tudom elképzelni, hogy akkor, amikor meghívod a függvényt, akkor nem a 255-ös szegmens van a 2-es lapon. És akkor rossz helyre tölti be a chr készletet.
Próbáld ki úgy, hogy berakod még ezt a CALL USR elé:

Code: [Select]
LET SZEG=IN(178)
OUT 178,255
ezt pedig a CALL USR után
Code: [Select]
OUT 178,SZEG
Kipróbáltam, de így sem működik.
Először simán a hosszú program elejére az eredeti "fontos" részt:
* fonttolt.ep128s (54.03 kB - downloaded 26 times.)
Beleírva az OUT-os részt:
* font nemtölt.ep128s (54.63 kB - downloaded 23 times.)
Ha az első snapshotban, ha töröljük a programot és csak az elején a fontos részt hagyjuk meg, majd egy resetet nyomunk és futtatjuk, akkor működik.
100 SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
110 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
120 SOUND PITCH 25,SYNC 2
Videos

Offline Ferro73

  • EP lover
  • *
  • Posts: 811
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 77.0 Firefox 77.0
    • View Profile
Re: BASIC
« Reply #1424 on: 2020.June.09. 20:32:00 »
A program tele van egy rakat SET CHARACTER utasítással, semmi más nincs benne. És lenne egy DEF blokk, amit ha akarunk, meghívunk parancs üzemmódból, és akkor HEX, USR segítségével elmenti az egész karakterkészletet.

Az egyik kígyós játékba mintha beleraktam volna ezt a funkciót
Char Load / Char Save

Amúgy itt ez nem jó?

Újabb  darab.
CHARS_RD   A komplett karakter mátrixot olvassa be fájlból.
CHARS_WR  A komplett karakter mátrixot írja ki fájlba.
« Last Edit: 2020.June.09. 20:54:31 by Ferro73 »