Welcome, Guest. Please login or register.


Author Topic: HiSoft Pascal (Read 36561 times)

Online Zozosoft

  • EP addict
  • *
  • Posts: 13534
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 25.0 Firefox 25.0
    • View Profile
    • http://enterprise.iko.hu/
Re: HiSoft Pascal
« Reply #45 on: 2013.November.06. 17:06:17 »
Quote from: Povi
sikerült a videolap létrehozása... :-)
:smt038

Offline Povi

  • EP addict
  • *
  • Posts: 1875
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Chrome 30.0.1599.101 Chrome 30.0.1599.101
    • View Profile
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #46 on: 2013.November.06. 17:16:30 »
számomra még mindig elég misztikus ez az LPT birizgálás...
pl. jó lenne általános eljárást készíteni, ahol paraméterben megadhatnám a pixelsorok számát, és a kép szélességét. A színmód változtatása egyértelmű. De a többihez elég-e az első LPB-be piszkálni, vagy akkor a többibe is bele kell nyúlni? (ráadásul a "margó" nevezető bitek nem tudom, hogyan értelmezendők, gondolom, ezekből jön majd ki a kép szélessége?

ráadásul ez 082h port... b4..b11=LPT kezdőcímének középső nyolc bitje... ennél bonyolultabban nem is lehetett volna már megcsinálni... :-)
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 1875
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Chrome 30.0.1599.101 Chrome 30.0.1599.101
    • View Profile
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #47 on: 2013.November.06. 17:29:59 »
Quote from: Povi
közben arra jöttem rá, hogy a 3-as lapot nem lapozgathatom ám csak úgy össze-vissza, mert annak a tetején (0FFFFH-tól lefelé) vannak tárolva a változók. 
közben nem túl elegánsan ezt úgy oldottam meg, hogy deklaráltam egy 16384 byte méretű változót (konkrétan egy 16384 elemű CHAR tömböt) a program elején, így az összes többi (később deklarált) globális változóm címe már a kettes lapra esik. Így nyugodtan kilapozhatom a 3-as lapot. :-)
*** Speicherplatz zu klein

Online Zozosoft

  • EP addict
  • *
  • Posts: 13534
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 25.0 Firefox 25.0
    • View Profile
    • http://enterprise.iko.hu/
Re: HiSoft Pascal
« Reply #48 on: 2013.November.06. 17:33:48 »
Akkor azzal a tömbbel tudod pókolni is :-)

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Opera 9.80 Opera 9.80
    • View Profile
    • Honlapom
Re: HiSoft Pascal
« Reply #49 on: 2013.November.06. 17:35:57 »
Quote from: Povi
pl. jó lenne általános eljárást készíteni, ahol paraméterben megadhatnám a pixelsorok számát, és a kép szélességét. A színmód változtatása egyértelmű. De a többihez elég-e az első LPB-be piszkálni, vagy akkor a többibe is bele kell nyúlni? (ráadásul a "margó" nevezető bitek nem tudom, hogyan értelmezendők, gondolom, ezekből jön majd ki a kép szélessége?

d
volt ilyen, én sokat használtam
nem tudom már honnan szedtem, talán valami specy átíró csomagból
Vigyázat! Szektás vagyok! :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 23.0 Firefox 23.0
    • View Profile
Re: HiSoft Pascal
« Reply #50 on: 2013.November.06. 17:38:20 »
Quote from: Povi
De a többihez elég-e az első LPB-be piszkálni, vagy akkor a többibe is bele kell nyúlni?
Az alsó és a felső keret hosszát is módosítani kell a kép magasságának megfelelően. A korábban már ajánlott graph.s-ben található példa ezeknek a beállítására tetszőleges magasságú (de legfeljebb 256 soros) képhez:

Code: ZiLOG Z80 Assembler
  1. lptData:
  2.         defb    256 - VIDEO_HEIGHT, 12h
  3.         defb    (63 - VIDEO_WIDTH) / 2, (63 + VIDEO_WIDTH) / 2
  4.         defw    0000h, 0000h
  5.         defb    BG_COLOR, FG_COLOR, 0, 0, 0, 0, 0, 0
  6.         defb    256 - ((294 - VIDEO_HEIGHT) / 2), 02h,  63, 0,  0, 0, 0, 0
  7.         defb    0, 0, 0, 0, 0, 0, 0, 0
  8.         defb    256 - 3, 80h,  63, 0,  0, 0, 0, 0
  9.         defb    0, 0, 0, 0, 0, 0, 0, 0
  10.         defb    256 - 2, 00h,  6, 63,  0, 0, 0, 0
  11.         defb    0, 0, 0, 0, 0, 0, 0, 0
  12.         defb    256 - 1, 00h,  63, 32,  0, 0, 0, 0
  13.         defb    0, 0, 0, 0, 0, 0, 0, 0
  14.         defb    256 - 3, 00h,  63, 0,  0, 0, 0, 0
  15.         defb    0, 0, 0, 0, 0, 0, 0, 0
  16.         defb    256 - 9, 02h,  6, 63,  0, 0, 0, 0
  17.         defb    0, 0, 0, 0, 0, 0, 0, 0
  18.         defb    256 - ((295 - VIDEO_HEIGHT) / 2), 03h,  63, 0,  0, 0, 0, 0
  19.         defb    0, 0, 0, 0, 0, 0, 0, 0
  20. lptDataEnd:

Povi
Quote
(ráadásul a "margó" nevezető bitek nem tudom, hogyan értelmezendők, gondolom, ezekből jön majd ki a kép szélessége?
Igen. Ezeket célszerű így állítani (a szélesség karakterekben értendő):

Bal margó = (63 - szélesség) / 2
Jobb margó = (63 + szélesség)  / 2

Quote from: Povi
ráadásul ez 082h port... b4..b11=LPT kezdőcímének középső nyolc bitje... ennél bonyolultabban nem is lehetett volna már megcsinálni... :-)
Az alsó 4 bit mindig 0, ezért azt a portokon meg is takarították. :)

Offline Povi

  • EP addict
  • *
  • Posts: 1875
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Chrome 30.0.1599.101 Chrome 30.0.1599.101
    • View Profile
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #51 on: 2013.November.06. 17:43:21 »
Quote from: Zozosoft
Akkor azzal a tömbbel tudod pókolni is :-)
igen, de az POKE parancs rövidebb kódba fordul, mint a tömbbe írás, szóval, sok értelme nem lenne azt használni... :-)
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 1875
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Chrome 30.0.1599.101 Chrome 30.0.1599.101
    • View Profile
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #52 on: 2013.November.06. 17:49:05 »
Quote from: IstvanV
A korábban már ajánlott graph.s-ben található példa ezeknek a beállítására tetszőleges magasságú (de legfeljebb 256 soros) képhez:
igen, ezt én is nézegettem, csak már elakadtam ott, hogy (ha jól számolom) nálad 8 LPB van, míg Zozonál csak 7. Mi az a plusz egy? A status soré? 
A "(63 - VIDEO_WIDTH) / 2" -nál ha páratlan számot osztunk, csonkolni kell, vagy kerekíteni? (és miért pont 63-ból kell kivonni...)?
*** Speicherplatz zu klein

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 23.0 Firefox 23.0
    • View Profile
Re: HiSoft Pascal
« Reply #53 on: 2013.November.06. 17:56:23 »
Quote from: Povi
igen, ezt én is nézegettem, csak már elakadtam ott, hogy (ha jól számolom) nálad 8 LPB van, míg Zozonál csak 7. Mi az a plusz egy? A status soré?
Valószínűleg a függőleges visszafutásnál van kisebb eltérés, de ennek nincs nagy jelentősége. Ha probléma az LPT mérete, akkor a 6. (3 soros) LPB törölhető, az utána következő 9 soros pedig 12 sorosra növelhető, így már csak 7 LPB marad. A legfontosabb, hogy a teljes kép 312 soros legyen.

Quote from: Povi
A "(63 - VIDEO_WIDTH) / 2" -nál ha páratlan számot osztunk, csonkolni kell, vagy kerekíteni?
Az előbbi, mert az assembler is így fordítja az egész osztást. A konstans azért 63, hogy a 40 karakter széles kép a "szabványos" LM=11,RM=51 pozícióba kerüljön, és páratlan méretnél jobbra legyen igazítva (igazi gépen ugyanis a kép általában kissé el van tolva balra).
« Last Edit: 2013.November.06. 18:01:25 by IstvanV »

Offline Lacika

  • EP addict
  • *
  • Posts: 2930
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 25.0 Firefox 25.0
    • View Profile
    • http://www.ep128.hu
Re: HiSoft Pascal
« Reply #54 on: 2013.November.15. 16:53:08 »
Jól gondolom, hogy itt a változó deklarációk, majd az eljárás-deklarációk sorrendje kötött, és így csak egy include file-t lehet beilleszteni (legalábbis ami használ globális változót)?

Offline Povi

  • EP addict
  • *
  • Posts: 1875
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Chrome 31.0.1650.57 Chrome 31.0.1650.57
    • View Profile
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #55 on: 2013.November.15. 21:50:23 »
Csináltam az 1.1-es ROM verzióból 5-ös fejlécű fájlt is. A 0.3-as verziójú nem használható semmire... :-)
Innét letölthető. Egyébként a ROM verziónak nem túl sok értelme van, azon túl, hogy gyorsabb a "betöltés", mert az egészet átmásolja a RAM-ba, és onnét futtatja.
*** Speicherplatz zu klein

Offline Povi

  • EP addict
  • *
  • Posts: 1875
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Chrome 31.0.1650.57 Chrome 31.0.1650.57
    • View Profile
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #56 on: 2013.November.18. 17:55:51 »
Ezt érdemes kipróbálni, látványos: :-)

Code: [Select]
10 PROGRAM A;
20 BEGIN
30   USER(#0242);
40 END.

*** Speicherplatz zu klein

Offline Lacika

  • EP addict
  • *
  • Posts: 2930
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 25.0 Firefox 25.0
    • View Profile
    • http://www.ep128.hu
Re: HiSoft Pascal
« Reply #57 on: 2013.November.18. 18:02:41 »
Quote from: Povi
Csináltam az 1.1-es ROM verzióból 5-ös fejlécű fájlt is.
Kösz! Ez nekem igen hasznos.

Offline szipucsu

  • EP addict
  • *
  • Posts: 8101
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 25.0 Firefox 25.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: HiSoft Pascal
« Reply #58 on: 2013.November.18. 18:04:32 »
Quote from: Povi
Ezt érdemes kipróbálni, látványos: :-)
Ez mit csinál? Sosem használtam Pascalt, de az USER utasítást leszámítva ezeket az utasításokat véletlenül ismerem.
Nem kéne a BEGIN végére is valami írásjel?
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 Povi

  • EP addict
  • *
  • Posts: 1875
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Chrome 31.0.1650.57 Chrome 31.0.1650.57
    • View Profile
    • http://povi.fw.hu
Re: HiSoft Pascal
« Reply #59 on: 2013.November.18. 18:11:36 »
Quote from: szipucsu
Ez mit csinál? 
A USER parancs a megadott címen lévő utasításra ugrik, onnét folytatja a program futását.
Ez a rész egy hibaüzenetet ír ki a status sorba, és végtelen ciklusban színezi a border-t. Ide akkor ugrik a Pascal, még a legelején, ha nem sikerül megnyitni a szükséges csatornákat, vagy nem sikerül memóriaszegmenst foglalni magának.
*** Speicherplatz zu klein