Enterprise Forever

:HUN => Programozás => BASIC => Topic started by: Tuby128 on 2024.March.02. 22:26:29

Title: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: Tuby128 on 2024.March.02. 22:26:29
Épp nosztalgiáztam olvasgattam a címben említett magazint és megtaláltam benne egy kis programocskát. Megkértem a lányomat, hogy gépelje be.
Néhány óra alatt sikerült neki. Leültem mellé, kijavítottam az elütéseket és elmentettük.
Ezután elindítva kifagyott a gép.
Gondoltam azért van mert nekünk német gépünk van, ezért bedugtam egy angol cartidge-t. Újra elindítottam de semmi.
Valaki rá tudna nézni mi lehet a baj?
Itt lesz a program a csatolmányban, a következő hozzászólásban pedig egy fotó az újságból.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: Tuby128 on 2024.March.02. 22:27:19
Az említett újságcikk.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: szipucsu on 2024.March.02. 23:24:45
Az ALLOCATE sor elé nem kerülhet sor, kivéve talán a PROGRAM-ot tartalmazó sor. Eredetileg is betettek elé egy TEXT-et, és ti is írtatok bele még egyet.
A DATA sorokban vannak szóközök is, az nem is működik így, helyette más karaktereket kell beírni.
Viszont a fentieket javítva sem csinál semmit a program.
Lehet, hogy az ep128.hu-n fent van már valahol a program.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: Ferro73 on 2024.March.02. 23:26:05
Töb mint való színű 160 sor poke cím nem megfelelő
plusz a 290 DATA sorban a SPACE helyett mást ," ", kellene írni
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: Ferro73 on 2024.March.02. 23:29:22
Az ALLOCATE sor elé nem kerülhet sor, kivéve talán a PROGRAM-ot tartalmazó sor. Eredetileg is betettek elé egy TEXT-et, és ti is írtatok bele még egyet.
A DATA sorokban vannak szóközök is, az nem is működik így, helyette más karaktereket kell beírni.
Viszont a fentieket javítva sem csinál semmit a program.
Lehet, hogy az ep128.hu-n fent van már valahol a program.
Működik nekem a változtatásokkal.
ep128Emu v2.0.9.1 Exos 2.1 Basic 2.1 128k
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: Tuby128 on 2024.March.03. 00:02:58
Működik nekem a változtatásokkal.
ep128Emu v2.0.9.1 Exos 2.1 Basic 2.1 128k

Ferro mit írtál szóköz helyett? Nyilván kell soköz a szavak közé.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: Tuby128 on 2024.March.03. 00:39:59
Közben eszembe jutott, hogy nekem még az EXDOS kártya is benne van a gépben, innen töltöm be a programot, szóval negy egyszerű az ilyen direkt memóra címzés.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: Ferro73 on 2024.March.03. 10:06:36
Ferro mit írtál szóköz helyett? Nyilván kell soköz a szavak közé.
Bocsi nem voltam egyértelmű és már késő este volt
Code: [Select]
290 DATA I,g,y," ",p,r,o,b,a,l,d," ",m,e,g
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: szipucsu on 2024.March.03. 12:09:32
Túlzás, hogy  működik, nem találja el a képernyő szélét, de azért fut a szöveg.
Tegnap TEXT 80-as módban próbáltam, és úgy nem működött. Ha a szerző TEXT helyett TEXT 40-et tett volna bele, azért, az nagyobb hozzáértésre utalna. :D
[attachurl=1]
Egyébként sima basicben (gépi kódú részek nélkül) is lehet ilyen programot írni egyszerűen. A szomszéd topikban a Pacman Goes Jumping játékban is pont ilyen van, csak nem szöveg, hanem a pálya scrolloz. A pályát át kell írni szövegre, és még akár karakterenként színt is lehet változtatni, ha attribútum videolapot állítunk be.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: szipucsu on 2024.March.03. 12:45:32
Ez nem túl gyors, Zzzippel fordítva gyorsabb lenne.
Ha nem változna betűnként a szín, vagy kevesebb látszana egyszerre a képernyőn a szövegből, az is gyorsítana rajta.
Gondolom, assemblyben megírni sem lenne túl nehéz annak, aki ért hozzá.
[attachurl=1]
[attachurl=2]
Ilyen még talán nem volt, egy basic demón szerintem sokat dobna.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: Ferro73 on 2024.March.03. 13:06:57
Túlzás, hogy  működik, nem találja el a képernyő szélét, de azért fut a szöveg.

Töb mint való színű 160 sor poke cím nem megfelelő

Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: szipucsu on 2024.March.03. 13:16:30
Töb mint való színű 160 sor poke cím nem megfelelő
Először úgy értettem, annyira rossz a cím, hogy azért nem működik egyáltalán.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: Ferro73 on 2024.March.03. 14:27:39
Írtam egy kis BASIC progit ezeknek a címeknek a meghatározására.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: Povi on 2024.March.06. 09:10:34
Az ALLOCATE sor elé nem kerülhet sor, kivéve talán a PROGRAM-ot tartalmazó sor. Eredetileg is betettek elé egy TEXT-et, és ti is írtatok bele még egyet.
Ez így nem teljesen igaz, azért nem szokás semmit írni az ALLOCATE elé, mert törli a változókat. Mivel a TEXT utasítás még nem hoz létre semmilyen BASIC változót, így az nyugodtan mehet akár az ALLOCATE elé is. De valóban, az a tiszta, ha tényleg nincs előtte semmi.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: Povi on 2024.March.06. 09:12:59
Ez nem túl gyors, Zzzippel fordítva gyorsabb lenne.
Lehet próbálkozni a 250. sorban látható FOR ciklus végértékét kisebbre venni. Ez csak a várakozást intézi. Akár a 250. és 260. sor törlését is meg lehet próbálni, de úgy lehet, h túl gyors lesz scroll.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: Povi on 2024.March.06. 09:16:46
A 120. sorban lévő CODE helyett pedig lehet ez:
=HEX$("3E,20,54,5D,23,01,27,00,ED,B0,12,C9")
ugyanazt csinálja, de 3 byte-tal rövidebb, és 3.75μs-mal gyorsabb :-D (nyilván nem emiatt lassú a BASIC-ben)
de az LD BC,1 / ADD HL,BC szúrta a csőrömet, lecseréltem egy INC HL-ra ;-)
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: Povi on 2024.March.06. 10:16:19
szóval negy egyszerű az ilyen direkt memóra címzés.
Igen, ez a legnagyobb baja ennek a programnak, hogy fix helyen feltételezi a szöveges lapot.
Ezzel a kis programmal ki lehet számolni az adott sor kezdőcímét:
Code: [Select]
 100 LET LPTADDR=PEEK(49141)*256+PEEK(49140)
  110 FOR SOR=1 TO 20
  120   LET N=SOR*16+4+LPTADDR
  130   LET SORCIM=PEEK(N)+PEEK(N+1)*256-16384
  140   PRINT SORCIM
  150 NEXT

A fenti programból kibányászva a képletet, és a kívánt sor kezdőcímét a SORCIM változóba eltéve, az alábbi két sort kell módosítani a fényújságos progiban:
Code: [Select]
160 POKE SORCIM+39,ORD(A$)
270 CALL USR(BALRA,SORCIM)

Így 0. sorba kiszámolva a STATUS sorba is tudunk írni!
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: gflorez on 2024.March.06. 10:57:24
Az elejétől kezdve küzdve olvasom, hogy megtudjam, mit csinál a program...., mert nekem egyáltalán nem működött, még a Szipucsu által javított verzió sem.

Szétszedtem a kódot, hogy abszolút címeket keressek, de ez relokálható.

Aztán rájöttem a Basicben használt abszolút címekre, ahogy Povi rámutat.

Egy igazán rossz példa az Enterprise kódolásra....

------------------------------

I am reading from the start struggling to know what the program does.... because it didn't work at all for me, even the fixed version from Szipucsu.

I have disassembled the code to search absolute addresses, but it is relocatable.

Then I have realised the absolute addresses used in Basic, as Povi points out.

A really bad example of Enterprise coding....
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: gflorez on 2024.March.06. 11:24:06
Egyébként... nem kapcsolódik, de ez tényleg egy széles görgetés.... Geco készítette, Hans TMTLogic számára, éppen két napja.

------------------

By the way... not related but this is really a wide scroll.... Made by Geco for Hans TMTLogic just two days ago.





Edit: ez egy csodálatos példa arra, hogyan lehet abszolút címekkel relokálhatóvá tenni egy gépi kódot. Én ezt Prodatron stílusnak hívom... mert így működik a SymbOS.

---------------------

Edit: it is a wonderful example on how to make relocatable a machine code with absolute addresses. I call it Prodatron style... because is the way SymbOS works.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: Povi on 2024.March.06. 12:31:05
Code: [Select]
  100 PROGRAM "MIMANO.BAS"
  110 TEXT
  120 ALLOCATE 12
  130 CODE BALRA=HEX$("3e,20,54,5d,23,01,27,00,ed,b0,12,c9")
  140 LET LPTA=PEEK(49141)*256+PEEK(49140)
  150 LET SOR=0
  160 LET N=SOR*16+4+LPTA
  170 LET SORCIM=PEEK(N)+PEEK(N+1)*256-16384
  180 READ A
  190 FOR I=1 TO A
  200   READ A$
  210   POKE SORCIM+39,ORD(A$)
  220   CALL VAR
  230 NEXT
  240 FOR I=1 TO 40
  250   CALL VAR
  260 NEXT
  270 RESTORE
  280 GOTO 180
  290 DEF VAR
  300   FOR Q=1 TO 25
  310   NEXT
  320   CALL USR(BALRA,SORCIM)
  330 END DEF
  340 DATA 38,E,n,t,e,r,p,r,i,s,e,f,o,r,e,v,e,r,.,c,o,m," ",H,e,l,l,o," ",e,v,e,r,y,b,o,d,y,"!"
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: Zozosoft on 2024.March.06. 13:40:38
Még szerencse, hogy Povi figyelt az EXOS kompatibilis programozás órákon! :ds_icon_cheesygrin:

Az eredeti program csak és kizárólag 128-as, magnós gépen futott helyesen. Ha bármi plusz ROM, vagy RAM van a rendszerben, már nem stimmel a képernyő kezdőcím.

Mondjuk azt a részt se értem, minek pókolni a szöveget, ahelyett, hogy PRINT AT-tal odaírná :lol:
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: szipucsu on 2024.March.06. 13:48:54
Az eredeti program csak és kizárólag 128-as, magnós gépen futott helyesen.
És csak Text 40 módban. Már a Text 80 módot se csípi.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: Zozosoft on 2024.March.06. 14:10:29
Már a Text 80 módot se csípi.
Igen mert a TEXT 80 az valójában grafikus. Olyan scroll rutin kéne, ami egymás alatt 9 pixelsort mozgat egyszerre.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: Povi on 2024.March.06. 14:15:53
És csak Text 40 módban. Már a Text 80 módot se csípi.
Igen, mert csak "valódi" szöveges módban fut. A 80 karakter széles szöveges valójában már grafikus mód, mivel pixel adatként vannak tárolva a video memóriában a képernyőn látható karakterek. A 40 karakteres módban pedig tényleg "o" és "k" van a videomemóriában ott, ahol az "ok" felirat olvasható.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: geco on 2024.March.06. 14:26:55
Igen mert a TEXT 80 az valójában grafikus. Olyan scroll rutin kéne, ami egymás alatt 9 pixelsort mozgat egyszerre.
Nem szerencsés, CPC-n grafikus módban megy ugyanaz, mint EP-n karakteres módban, és nem fér bele 1 frame-be a 8 karakter sor frissítése, a leggyorsabb verzióba belefér, de akkor csak fél karakter szélességben van megjelenítve 1 pixel.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: gflorez on 2024.March.06. 15:27:01
Minden karakterhatár 0. és 7. bitje adja a színkódot. A 80 oszlopos görgetés meghamisításához jobb, ha nagy felbontású grafikus módot használ.

---------------------

Bit 0 and 7 of every character boundary make the colour code. It is better to use a hires graphics mode for a fake 80 Columns scroll.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: geco on 2024.March.06. 16:25:34
Minden karakterhatár 0. és 7. bitje adja a színkódot. A 80 oszlopos görgetés meghamisításához jobb, ha nagy felbontású grafikus módot használ.

---------------------

Bit 0 and 7 of every character boundary make the colour code. It is better to use a hires graphics mode for a fake 80 Columns scroll.
Nem nyerünk vele sajnos semmit, mert ugyanúgy 1 karakterre 8 byte-ot kéne írni 2 szín grafikus módban :(
Egy megoldás lehetséges, ha töröljük a VRES bitet az EXOS LPT összes LPB-jében, akkor elég 1 byte/karakter írás, ez lehet színkód bit, ha MS BALT vagy LS BALT, vagy mind a kettő be van állítva, ha nem, akkor egy jól irányzott 0ffh -val egy telített karaktert jeleníthetünk meg az adott pozícióban.

It does not save us any data writing, because we have to write 8 bytes for 1 character also in 2 colour graphics mode :(
There is one solution, if we clear VRES bit of each LPB of EXOS LPT, in this case we can write 1 byte/character, it can be colour code, if MS BALT, or LS BALT or both are set, if not by writing 0ffh then 1 full character will appear in that position.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: gflorez on 2024.March.06. 17:13:02
Mi lenne, ha a grafikus puffer mutatóval játszanál? Úgy értem, 80*9 bájt hozzáadásával vagy kivonásával, és némi hely felhasználásával az adatok bevitelére és gördítésére. De lehet, hogy valamit figyelmen kívül hagyok.

How about playing with the graphics buffer pointer? I mean adding or subtracting 80*9 bytes, and using some space for data input&roll. But maybe I am ignoring something.
Title: Re: Fényújság Mi a Manó? - Mikro magazin 1989/10
Post by: Ferro73 on 2024.March.06. 19:53:51
Code: [Select]
 100 PROGRAM "MIMANO.BAS"
  110 TEXT
  120 ALLOCATE 12
  130 CODE BALRA=HEX$("3e,20,54,5d,23,01,27,00,ed,b0,12,c9")
  140 LET LPTA=PEEK(49141)*256+PEEK(49140)
  150 LET SOR=0
  160 LET N=SOR*16+4+LPTA
  170 LET SORCIM=PEEK(N)+PEEK(N+1)*256-16384
  180 READ A
  190 FOR I=1 TO A
  200   READ A$
  210   POKE SORCIM+39,ORD(A$)
  220   CALL VAR
  230 NEXT
  240 FOR I=1 TO 40
  250   CALL VAR
  260 NEXT
  270 RESTORE
  280 GOTO 180
  290 DEF VAR
  300   FOR Q=1 TO 25
  310   NEXT
  320   CALL USR(BALRA,SORCIM)
  330 END DEF
  340 DATA 38,E,n,t,e,r,p,r,i,s,e,f,o,r,e,v,e,r,.,c,o,m," ",H,e,l,l,o," ",e,v,e,r,y,b,o,d,y,"!"

Azért SPEEK, SPOKE vel hasznosabb lett volna akkor ZZZIp elhető lenne.