Welcome, Guest. Please login or register.


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

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14733
  • Country: hu
    • http://enterprise.iko.hu/
Re: Általános BASIC Kérdések
« Reply #1080 on: 2016.November.28. 13:50:17 »
CLICK hangot hogy kell programból kiadni? (Ep64 kompatibilis módon.)
Vagy csúnyán beleugorva a ROM-ba, vagy ezt lefordítani ASMON-nal BASIC programnak:
Code: ZiLOG Z80 Assembler
  1. ;------------------------------------------------------------------------------
  2. ;       MAKE A KEYCLICK
  3. ;
  4. ;       This routine performs a 'keyclick' at the request of Phil. The envelope
  5. ;       is amplitude-only at around 10KHz, shaped on both channels as below,
  6. ;       lasting for approximately 0.015 secs.
  7. ;
  8. ;       |_|_|__|__|___|____|____|_____|______|______|_______|________|_____
  9. ;
  10.  
  11.  
  12. KEYCLICK:       LD      A,50                    ;SET CLICK
  13.                 LD      C,A
  14.                 OUT     (REG0),A                ;TONE FREQUENCY
  15.                 XOR     A                       ;ZERO A
  16.                 OUT     (REG1),A                ;FOR HIGH PART OF ABOVE
  17. BURST:          LD      B,15                    ;DURATION OF ON-TONE
  18.                 LD      A,MAXVOL                ;AT MAXIMUM VOLUME
  19.                 OUT     (REG8),A                ;ON BOTH
  20.                 OUT     (REG12),A               ;SIDES
  21. ONBURST:        DJNZ    ONBURST                 ;BURST OF ON-TONE
  22.                 LD      A,60                    ;CALCULATE DURATION
  23.                 SUB     C                       ;OF OFF-BURST FROM
  24.                 OR      A                       ;ELAPSED TIME IN
  25.                 RRA                             ;CLICK, SO THAT
  26.                 LD      B,A                     ;ON-BURSTS ARE
  27.                 XOR     A                       ;GRADUALLY STAGGERED
  28.                 OUT     (REG8),A                ;APART...KILL
  29.                 OUT     (REG12),A               ;SOUND ON BOTH SIDES
  30. OFFBURST:       DJNZ    OFFBURST                ;BURST OF OFF-TONE
  31.                 DEC     C                       ;COUNT CYCLE
  32.                 JR      NZ,BURST                ;RECYCLE IF NOT AT END
  33.  
  34.                 RET

Elejére végére kéne DI/EI pluszban.

Offline Lacika

  • EP addict
  • *
  • Posts: 3198
  • Country: hu
    • http://www.ep128.hu
Re: Általános BASIC Kérdések
« Reply #1081 on: 2016.November.28. 14:07:53 »
Five in a Row egeres verzió.
Ep64-en viszont már nem fut. Hogy miért...?

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9926
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #1082 on: 2016.December.05. 17:48:44 »
Attributum képernyőn hogyan lehet basic-ben egy színpompás játékhoz a pályát tárolni, megrajzolni? A Bomber továbbfejlesztése egyszerű volt, mert véletlenszerűen eldönti a házak színét. De ha mi magunk rajzolunk pl. egy pac man játékban falat, és a fal is legalább 4-5 féle színből áll, akkor hogyan adható meg, hogy melyik karakter milyen színű legyen?
Pl. adott egy fal, ami egyszínű:

++++++++++++++++++

Ugyanennél a falnál hogyan lehet egyszerűen (?) megcsinálni, hogy pl. a 3., 4., 5.  karaktere 2-es színkódú legyen, a 6. 3-as színkód színű? Mert pl. megrajzolható a pálya a PRINT után, vagy változók neveiben, pl. LET PALYA$(1)="++++++++++++++", de ehhez még a színkódokat is meg kell adni. Nyilván megadható bonyolult módon, hogy kirajzolásnál a sok PRINT között sok SET INK-et is megadunk. Nyilván kell valami alapszín, és ahol azt akarjuk, hogy ettől eltérjen a fal, ahhoz LET utasítással megadjuk az értékeket. Van valami egyszerűbb módszer? Vagy ezt mindenhol így csinálják?

Kicsit bonyolultan sikerült megfogalmazni...
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1298
  • Country: hu
  • Stray cat from Commodore alley
Re: Általános BASIC Kérdések
« Reply #1083 on: 2016.December.05. 20:53:30 »
Attributum képernyőn hogyan lehet basic-ben egy színpompás játékhoz a pályát tárolni, megrajzolni? A Bomber továbbfejlesztése egyszerű volt, mert véletlenszerűen eldönti a házak színét. De ha mi magunk rajzolunk pl. egy pac man játékban falat, és a fal is legalább 4-5 féle színből áll, akkor hogyan adható meg, hogy melyik karakter milyen színű legyen?
Pl. adott egy fal, ami egyszínű:

++++++++++++++++++

Ugyanennél a falnál hogyan lehet egyszerűen (?) megcsinálni, hogy pl. a 3., 4., 5.  karaktere 2-es színkódú legyen, a 6. 3-as színkód színű? Mert pl. megrajzolható a pálya a PRINT után, vagy változók neveiben, pl. LET PALYA$(1)="++++++++++++++", de ehhez még a színkódokat is meg kell adni. Nyilván megadható bonyolult módon, hogy kirajzolásnál a sok PRINT között sok SET INK-et is megadunk. Nyilván kell valami alapszín, és ahol azt akarjuk, hogy ettől eltérjen a fal, ahhoz LET utasítással megadjuk az értékeket. Van valami egyszerűbb módszer? Vagy ezt mindenhol így csinálják?

Kicsit bonyolultan sikerült megfogalmazni...
Én ezen a vidéken keresgélnék. Csak sajnos nem ismerem jól az EXOS lelki világát.

Offline geco

  • EP addict
  • *
  • Posts: 7113
  • Country: hu
    • Támogató Támogató
Re: Általános BASIC Kérdések
« Reply #1084 on: 2016.December.06. 08:46:04 »
Sztem csak újra printeléssel, és előtte a szín megadásával.

Pályát eltárolni meg úgy, hogy vagy minden karakter előtt eltárolod a színkódját, ha kevésbé változatos a pálya, akkor mondjuk soronként tárolsz színkódot, ha nem akarsz helyet pazarolni, akkor meg lehet olyat, hogy mondjuk 128-at adsz hozzá a színkódhoz, és ha 128-nál nagyobb értéket olvastál be, akkor színcsere, ha kisebbet, akkor karakter adat jött (ebben az esetben nem használhatod papírszínhez a 8-15 paletta színeket.

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 #1085 on: 2016.December.06. 14:58:33 »
van olyan pályaépítési mód is ahol adott elemeket adott koordinátára, adott színnel rakunk, tehát nem tömbszerűen van tárolva az adat. csináltam jópár ilyen játékot, meg editort hozzá. (ezt sajnos nem lehet basic data sorokban, vagyis elég körülményes lenne).

pl ilyenek a dizzy játékok vagy a manic miner stb...
vagy az én játékaim közül a dark lord

nem lenne rossz egy ilyen editor EP-re, a gracha-ba tehetek ilyet, csak hát ott pont nincs sok értelme
Vigyázat! Szektás vagyok! :)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9926
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #1086 on: 2016.December.06. 17:42:07 »
nem lenne rossz egy ilyen editor EP-re, a gracha-ba tehetek ilyet, csak hát ott pont nincs sok értelme
Lehet a Gracha-tól függetlenül is akár egy ilyen editor.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9926
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #1087 on: 2016.December.06. 18:12:43 »
Sztem csak újra printeléssel, és előtte a szín megadásával.
Még az jutott eszembe, hogy bizonyos karakterek bizonyos színeket jelentenének, és akár bizonyos (más) karaktereket is egyben. Tehát pl. lenne egy fal, ami AAAAABBBAAAABBBBCCCCAAAAA lenne, és mindegyik betű ugyanazt a karaktert jelentené, csak más színben. Ehhez a beolvasás/kirajzolás lenne lassú, mert a karaktereket egyenként kéne IF-fel megvizsgálni, milyenek, és egyenként kéne a szín megadása után PRINT-tel kiírni. Nekem hirtelen ez tűnik a leghasználhatóbbnak. Zzzippel talán a kirajzolás sebessége is elfogadható lenne.
De ha meg van rajzolva egy pálya, utána már biztos lehet azt elmentve átalakítani kevésbé emberbarát, de gyorsan kirajzolható formátumúvá.

Gondolkoztam azon is, hogyan lehetne a géppel pályát generáltatni, pl. pac man szerű játékhoz. Labirintust lehet generálni, de az más, ott a fal mellett ki lehet találni. Olyan kéne, ahol sok járat/út van.
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 #1088 on: 2016.December.06. 18:27:26 »
nézd meg pl a miner c. játékomat, ott 2 printtel megoldottam a 4 szín kirajzolását c16 módban
persze tudom te főleg karakteres módban gondolkodsz

lehetne egy általános editort csinálni végül is... lehetne választani milyen módban fusson... megadható lenne szín, karakter... tudna menteni esc szekvenciákba is. végül is nem túl sok meló
Vigyázat! Szektás vagyok! :)

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 #1089 on: 2016.December.06. 21:05:54 »
amúgy mostanában egy olyan játékon gondolkodok ami nem rajzolja ki a pályát az elején hanem csak a játékos körül, és ahogy mozgunk, úgy rajzolódik ki. persze ez csak bizonyos típusú játékok esetén alkalmazható
Vigyázat! Szektás vagyok! :)

Offline gflorez

  • EP addict
  • *
  • Posts: 3610
  • Country: es
    • Támogató Támogató
Re: Általános BASIC Kérdések
« Reply #1090 on: 2016.December.07. 08:24:52 »
Better add this line:     895 SET 180,101 ! set target graphics channel

Offline gflorez

  • EP addict
  • *
  • Posts: 3610
  • Country: es
    • Támogató Támogató
Re: Általános BASIC Kérdések
« Reply #1091 on: 2016.December.07. 08:41:35 »
And: 896 SET 189,4 ! EnterMice control

Offline gflorez

  • EP addict
  • *
  • Posts: 3610
  • Country: es
    • Támogató Támogató
Re: Általános BASIC Kérdések
« Reply #1092 on: 2016.December.15. 01:05:59 »
Ok, I can write the two lines if you are so lazy.....

First, check if the mouse driver has been loaded, with the ":MOUSE HELP" command. If not, load it(":LOAD MOUSE.XR") before running the Five in a Row game.

I have put this game on the EnterMice Wiki list of games.
« Last Edit: 2016.December.15. 12:10:35 by gflorez »

Offline RetroJátékos

  • Newbie
  • Posts: 8
Re: Általános BASIC Kérdések
« Reply #1093 on: 2017.January.11. 11:10:30 »
Sziasztok!

Bocs, ha kicsit amatőr a kérdés, de még csak most ismerkedek az Enterprise-szal.
Próbáltam a neten fellelhető doksik, könyvek alapján a grafikus képernyőt piszkálgatni, de úgy tűnik, a konfigurációtól függ, hogy mely memóriacímen kezdődik a grafikus képernyő. Például egy SPOKE 254,11308,170 utasítás, ami a leírás alapján - módtól függően - az első néhány pixelt állítaná be, ha bármi bővítés van a gépben, már más pixeleket gyújt ki. Ha a FileIO bővítést tartalmazó konfigot állítom be, akkor felül, balról a kép kb. harmadánál gyulladnak ki a pixelek. Ha EXDOS is be van töltva, akkor jobb oldalt, a kép felső harmadánál rajzol. Stb.
Nyilván a konfigurációtól függően máshol kezdődik a képernyő-memória.
A kérdésem az lenne: hogy lehet meghatározni - lehetőleg BASIC-ből - a képernyő-memória elhelyezkedését? Esetleg valahogy be is lehet állítani?
Előre is köszönöm a segítségeteket!

Offline geco

  • EP addict
  • *
  • Posts: 7113
  • Country: hu
    • Támogató Támogató
Re: Általános BASIC Kérdések
« Reply #1094 on: 2017.January.11. 11:39:22 »
A Beállítását az EXOS végzi, azt biztonságosan Basicből nem lehet.
a SPEEK 255,16372 címről lehet kiolvasni az LPT helyét, és az LPT-ből lehet kiolvasni, hogy hol van a videómemória, de ez is macerás, mert 9 pixelsoronként van beállítva a képernyő az LPT-ben, és ez nem feltétlenül egybefüggő memóriaterület, tehát minden LPT sorban (LPB) ki nellene olvasni a kezdőcímet.