Welcome, Guest. Please login or register.


Author Topic: BASIC (Read 168511 times)

Online szipucsu

  • EP addict
  • *
  • Posts: 7785
  • 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 #210 on: 2012.March.06. 16:27:37 »
Úgy látszik, késve, de itt egy egyszerû példa:

Azért köszi!
De igazából miért van szükség a 0-ás csatorna bezárására és újra megnyitására?
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

Online Zozosoft

  • EP addict
  • *
  • Posts: 13404
  • 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 #211 on: 2012.March.06. 16:48:42 »
De igazából miért van szükség a 0-ás csatorna bezárására és újra megnyitására?
Mert az EDITOR-nak az "alárendeltje" a 102-es.

Online szipucsu

  • EP addict
  • *
  • Posts: 7785
  • 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 #212 on: 2012.March.08. 18:24:59 »
Egy érdekes kérdés:
Amikor egy basic program a memóriában van és azzal dolgozunk, meg lehetne azt valahogy oldani, hogy egy utasításra vagy valahogy kiírja a gép, hogy a basic programban milyen változók (mi a nevük) fordulnak elõ?
Pl. így mûködne:

:VALPRINT
A, B, N, X, Y, CURX, CURY, A$, NEV$, KIIR$
ok

Amikor már hosszú a basic program és már nem tudom, milyen változóneveket használtam, nem tudom, hogy muszáj-e valami cifra változónevet kitalálni új változónak, vagy addig még nem volt pl. az N mint numerikus változó. Régebben sokszor botlottam ebbe a problémába.

Egy másik, ami jól jöhetne, ha rá lehetne valahogy keresni, hogy egy basic programban egy adott utasítás elõfordul-e, és hol.
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 Tuby128

  • EP lover
  • *
  • Posts: 923
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.27 Firefox 3.6.27
    • View Profile
Re: BASIC
« Reply #213 on: 2012.March.08. 19:49:34 »
Ha azt akarod, hogy egy utasításra kiírja, hogy mely változónak mi az értéke akkor a következõt ajánolm:

100 PROGRAM "szipucsu.bas"
110 ! itt kezdõdik a program
...
1980 ! itt legyen mondjuk a vége
1990 END
2000 print A, B, N, X, Y, CURX, CURY, A$, NEV$, KIIR$
2010 END

Ezek után ha megszakad a program és kíváncsi vagy az értékre, akkor:
START 2000

Programot úgy kell írni Szipucsu, hogy vázlatot írsz közben. A papíron szerepelnie kell a változóknak és a hozzájuk tartozó rövid megjegyzésnek. Hosszú programok esetén már másképp nem lehet.
 Szubrutinok (DEF) esetén is jó volna felsorolásszerûen, hogy milyen rutink vannak a programban, és mi a feladatuk röviden.


Online Zozosoft

  • EP addict
  • *
  • Posts: 13404
  • 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 #214 on: 2012.March.08. 20:21:04 »
Programot úgy kell írni Szipucsu, hogy vázlatot írsz közben. A papíron szerepelnie kell a változóknak és a hozzájuk tartozó rövid megjegyzésnek. Hosszú programok esetén már másképp nem lehet.
 Szubrutinok (DEF) esetén is jó volna felsorolásszerûen, hogy milyen rutink vannak a programban, és mi a feladatuk röviden.
Ezt hívják program specifikációnak. Amíg nem volt meg, addig nem is lehetett géphez nyúlni programozás órán :-)

Online Zozosoft

  • EP addict
  • *
  • Posts: 13404
  • 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 #215 on: 2012.March.08. 20:24:37 »
Egyébként a Tippek-Trükkökben vannak ilyesmik, mint amit Szipucsu kérdez. Lua-ba kéne átírni õket, és akkor lehetne a ep128emu-val Basic-et is debuggolni :-)

Online szipucsu

  • EP addict
  • *
  • Posts: 7785
  • 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 #216 on: 2012.March.08. 20:40:40 »
Ha azt akarod, hogy egy utasításra kiírja, hogy mely változónak mi az értéke akkor a következõt ajánolm:
Én arra gondoltam, hogy magukat a változókat írja ki. Pl. ki emlékszik már rá, használtam-e pl. N-t, mint numerikus változót.

Persze, vázlat nem rossz, ha van elõre. De programírás közben jut eszébe az embernek, hogy még ezt is, azt is meg lehetne csinálni, és akkor jönnek újabb változónevek. Most pl. Lacika felvetette, hogy legyen képernyõtörlés abban a Dot collector szerkesztõben, ehhez meg újabb változók kellenek. És akkor még kitaláljuk, hogy pl. mértani alakzatokat is generáljon a pályára a játék, akkor ahhoz újabb változónevek kellenek, és ki tudja már követni, milyen változóneveket "használtunk el" eddig, milyeneket nem. Ez azért gond, mert ha egy olyan változót kezdek használni egy új dologra, aminek a program másik részén más szerepe van, akkor balhé lesz.

Bár lehetne pl. AKARMI, ILYENISLESZ meg hasonló változóneveket kitalálni, amik addig nem voltak, végülis azzal is mûködik a program. Csak lehet, jobban szereti a gép is, ha rövid változónevek vannak, vagy tévedek? Mert akkor mindegy, milyen neveket adunk a változóknak.

Meg pl. szokás az "átmeneti" funkcióra való változóknak bizonyos neveket adni (pl. A), így ha ezeknek újra adunk valami más értéket, nem gond. Pl. ha csak várakoztatásra kell.:
7854 FOR A=1 to 40000
7855 NEXT A

UI: Ja, hogy programírás KÖZBEN kéne írni papírra a változókat és megjegyzéseket! Jó ötlet. Csak tuti legközelebb elfelejtem. Mondjuk nem sûrûn programozok IS-BASIC-ben. IS-BASIC-en kívül meg mást semmit.
« Last Edit: 2012.March.08. 20:47:32 by szipucsu »
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

Online szipucsu

  • EP addict
  • *
  • Posts: 7785
  • 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 #217 on: 2012.March.09. 16:11:34 »
Van olyan szabad memóriaterület, ahova POKE utasítással bármit írhatunk? Így ha ennek a területnek a tartalmát átírnánk, azzal tárolni lehet ott különbözõ adatokat.
Csak mert a legtöbb POKE utasítás valamit átállít a gép mûködésében is, rosszabb esetben le is fagyasztja a gépet. Olyan kéne, aminek semmiféle közvetlen hatása nincs és kedvünkre állítgathatjuk az értékét 0 és 255 között.
Olyan kéne, amivel ha basic programban átírom a memória egy részét és a programot lefordítom Zzzippel, akkor is mûködik.
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

Online Zozosoft

  • EP addict
  • *
  • Posts: 13404
  • 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 #218 on: 2012.March.09. 16:15:57 »
Allocate-s rutinnal foglalni kell egy szegmenst, és akkor azt lehet SPOKE-ézni.
Így van az FDISK.BAS-ban is:
« Last Edit: 2012.March.09. 16:27:12 by Zozosoft »

Online szipucsu

  • EP addict
  • *
  • Posts: 7785
  • 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 #219 on: 2012.March.09. 16:31:11 »
Arra lenne jó, hogy ebben a Dot collector pályaszerkesztõben ne kelljen 7719 nagyságú tömböt definiálni (ennyi bájtos a file), amiben a bájtokat tárolja. A tömb definiálása is hosszú ideig tart. Jobb lenne valahova a memóriába írni egybõl a cuccot, és onnan olvasni ki.
Ha ALLOCATE 7719-cel lefoglalom a területet, akkor utána SPOKE-kal hova lehet írni, milyen értékeket lehet megadni? Olyasmit tudok elképzelni, hogy SPOKE 255,X+valamennyi,Y ahol X=0 és 7719 között valamelyik bájtja a játékprogramfájlnak, Y pedig az az érték, amit oda beírunk...
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

Online Zozosoft

  • EP addict
  • *
  • Posts: 13404
  • 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 #220 on: 2012.March.09. 16:34:16 »
Erre jó ez az allocate-s dolog. További pár bájtos rutinokkal a mentés betöltés is gyorsan meg van.

Offline Lacika

  • EP addict
  • *
  • Posts: 2918
  • 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 #221 on: 2012.March.10. 08:17:03 »
Allocate-s rutinnal foglalni kell egy szegmenst, és akkor azt lehet SPOKE-ézni.

Ha jól gondolom, ezután SPOKE/SPEEK WS,X,Y paranccsal szabadon garázdálkodhatunk a kiutalt szegmensen?
Ez tetszik!
És akár többször is egymás után meghívhatjuk pl.? WS1, WS2 változókra?

Online Zozosoft

  • EP addict
  • *
  • Posts: 13404
  • 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 #222 on: 2012.March.10. 08:51:46 »
Ha jól gondolom, ezután SPOKE/SPEEK WS,X,Y paranccsal szabadon garázdálkodhatunk a kiutalt szegmensen?
Igen.

Quote
És akár többször is egymás után meghívhatjuk pl.? WS1, WS2 változókra?
Igen.

Offline Tuby128

  • EP lover
  • *
  • Posts: 923
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.27 Firefox 3.6.27
    • View Profile
Re: BASIC
« Reply #223 on: 2012.March.10. 14:00:05 »
Private Enterprise folyóirat
Issue 1. (1985)

8. oldal (részlet)

IS-BASIC hibák:
1. RETRY nem megengedett parancs IF után (ezt nem is említi a kézikönyv)
2. A standard 40 karakteres képernyõ nem mûködik megfelelõen PRINT AT paranccsal. A PRINT AT 3,39 parancs kiadása esetén a szöveg 4,2-re kerül. Ez nem történik meg felhasználó által generált videolap esetén csak az editor videolapnál.
3. A COS függvény nem mûködik megfelelõen, mert a COS(PI/2) eredménye 1E-11 lesz. (Tuby128 megjegyzése: lehet hogy nem volt kiadva az OPTION ANGLE DEGREE parancs? - csak tippelek)
4. A TIMER hibás. Kb. 25%-os idõbeli eltérés tapasztalható.
5. A LOOK parancs kizárólag grafikus képernyõnél mûködik, noha szöveges képernyõnél is mûködnie kellene, ahol az ASCII karaktert kellene visszaadnia az aktuális cursor pozíciónál.
6. Allocate -n kitörli az aktuális programot.
7. Annak ellenére, hogy létre lehet hozni egy 255 soros képernyõt, mégis csak 223 sort lehet scrollozni.
8. VAL (STR$(A(N,M))(X:Y)) nem mûködik

Dave Race, Oxford.
http://enterpriseforever.com/dlattach.html;topic=203.0;attach=4656

Online szipucsu

  • EP addict
  • *
  • Posts: 7785
  • 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 #224 on: 2012.March.10. 16:12:37 »
5. A LOOK parancs kizárólag grafikus képernyõnél mûködik, noha szöveges képernyõnél is mûködnie kellene, ahol az ASCII karaktert kellene
De erre ott van a GET.

Nekem magas kicsit ez a SPOKE-os, ALLOCATE-es megoldás, amit Zozo írt. Akkor a következõ programrészt pl. hogyan kellene átírni?
Code: [Select]
190 STRING *1 A$(1 TO 7719)
240 OPEN #1:"DOTCOLL.COM" ACCESS INPUT
260 FOR A=1 TO 7719
270   GET #1:A$(A)
280 NEXT
290 CLOSE #1

Én ilyesmire tippelek:
Code: [Select]
190 ALLOCATE 7719 ! A program legelsõ sorába lehetõleg
240 OPEN #1:"DOTCOLL.COM" ACCESS INPUT
260 FOR A=1 TO 7719
265   GET #1:A$
270   SPOKE 255,A,ORD(A$)
280 NEXT
290 CLOSE #1

Ez tényleg ilyen egyszerû, vagy ennél azért bonyolultabb a gyakorlatban?
« Last Edit: 2012.March.10. 19:34:44 by szipucsu »
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