Tim 011

msolajic

3.5" Floppy
Učlanjen(a)
25.05.2006
Poruke
256
Poena
18
Tetris je delo Ivana Gerenčira. Ovaj autor napravio je i logičku igricu Gomoku. Obe igrice nisu bile na "sistemskoj disketi", ali sam ih na neki volešbni ;) način nabavio i isprobao. I dalje se sećam da, kada posle više sati Tetrisa legnem da spavam, i u polusnu još "ređam kockice" :)

Ima li šanse da se nekako dođe do Tetrisa za TIM?

Usput, skenirao sam knjigu "Priručnik za TIM-011-DOS" koja se može preuzeti sa https://8bitchip.info/oub/TIM 011/Zoran_Micic_Prirucnik_za_tim-011-dos.pdf
 

zzarko

3.5" Floppy
Učlanjen(a)
13.10.2003
Poruke
1,521
Poena
48
Danas je napravljen novi alat za TIM-011, TimFont. Omogućava ekstrakciju fonta iz TIM-ovih ASC.COM i CIR.COM fajlova u PNG, kao i generisanje novog COM font fajla od PNG-a. Ovo omogućava da se lako redefinišu fontovi za TIM-a korišćenjem bilo kog programa za editovanje PNG-a. Alat je dodat u tim011-tools repozitorijum:
https://bitbucket.org/zzarko/tim011-tools/

timfont0.png
Marko je testirao alat i napravio par fotografija sa prave mašine:
timfont1.jpg timfont2.jpg

@istameni ako si još uvek na forumu, mogu li te zamoliti da me kontaktiraš, imam još pitanja oko TIM-a...
 

zzarko

3.5" Floppy
Učlanjen(a)
13.10.2003
Poruke
1,521
Poena
48
Posle dosta analize TIM hardvera i softvera od strane Marka i provaljivanja tačne organizacije video memorije, došao je red da se to znanje i upotrebi. Evo kako je memorija organizovana:

Screenshot at 2021-03-02 23-38-43.png

Marko je našao i Small C kompajler za CP/M koji može da se koristi i za pisanje programa za TIM-011:


Napravljene su dve funkcije za iscrtavanje tačke, jednu je Marko iščupao iz postojeće Pascal bibilioteke za TIM-011, a druga je sveže napisana na osnovu analize izgleda video memorije. I sve se lepo uklapa sa Small C-om što pokazuje i ova fotografija slike koju je proizveo Markov TIM-011 (slika je u boji jer tako trenutno radi mapiranje njegov custom hardver za video izlaz):

20210302_215741.jpg
a koja je izgenerisana sledećim C kodom:
for (i = 0; i < 100; ++i) { plotxy(i+0,i+0,3); plotxy(i+10,i,2); plotxy(i+20,i,1); }
Ukratko, radi se na rešenju za jednostavno pisanje programa za TIM-a...
 

Prilozi

  • Screenshot at 2021-03-02 23-35-03.png
    Screenshot at 2021-03-02 23-35-03.png
    44 KB · Pregleda: 18
Poslednja izmena:

zzarko

3.5" Floppy
Učlanjen(a)
13.10.2003
Poruke
1,521
Poena
48
Evo i kako simulacija TIM-011 video izlaza izgleda u praksi, sa novom Z80 rutinom za iscrtavanje sprajtova, zajednički produkt Markovog i mog rada poslednjih par dana
🙂
Izmenjeni kod emulatora je stavljen na:
https://bitbucket.org/zzarko/tim011-tools


A evo i kako izgleda iscrtavanje tile-ova na pravoj mašini:
tiles.png

E, sad, da bi se pravile igre za TIM-a, trebala bi neka vrsta sinhronizacije glavne petlje igre, kako bi akcija uvek išla istom brzinom. Na net-u sam video pominjanje HALT naredbe, ali mahom vezano za ZX jer se tamo generišu interapti za osvežavanje ekrana. Na drugim mestima su pominjani tajmeri, ali ne znam da li ih TIM ima... Ako neko zna nešto na ovu temu, a da se može primeniti na TIM, javite...
 
Poslednja izmena:

zzarko

3.5" Floppy
Učlanjen(a)
13.10.2003
Poruke
1,521
Poena
48
Napravljen je i TimTile, alat za konverziju PNG slika u tile-ove koji se mogu koristiti sa grafičkom bibliotekom:
1615032402174.png
Grafička biblioteka, kao i svi dosadašnji alati su postavljeni na:
 

bocke

3.5" Floppy
Učlanjen(a)
21.03.2009
Poruke
146
Poena
18
Svaka čast tebi i Maretu. Nisam pratio forum neko vreme i danas slučajno skoknem i naletim na temu. Tim mi je ostao u sećanju iz školskih dana i još uvek me malo "drmne" nostalgija kad se prisetim. Mislim da sam se i javljao u nekom od prvih postova. :)

Kako Tim 011 stoji sa pokretanjem CP/M softvera? Koliko je imao memorije po originalnoj dokumentaciji, a koliko ima mašina na kojoj ti radiš?

Ima dosta CP/M softvera koje je moguće skinuti sa weba. Tako, ukoliko je Tim dovoljno kompatibilan, postoji možda još koja opcija osim smallc. Koliko je meni poznato neki od C kompajlera koji su bili dostupni za CP/M su i DR C (normalno, jelte), BSD C, Aztech C i Pacific C. Na webu je moguće naći i C-Snippets kolekciju C izvornog koda. Rane verzije sadrže i dosta koda za CP/M.

Izmena:

Odličan emulator za CP/M za Linux (ili druge Unixoide) je Z80pack od Udo Munk-a. Može poslužiti za testiranje ili razvoj CP/M softvera. Mada je za to drugo možda bolje neki kros-kompajler ako postoji. :)
 

zzarko

3.5" Floppy
Učlanjen(a)
13.10.2003
Poruke
1,521
Poena
48
Odličan emulator za CP/M za Linux (ili druge Unixoide) je Z80pack od Udo Munk-a. Može poslužiti za testiranje ili razvoj CP/M softvera. Mada je za to drugo možda bolje neki kros-kompajler ako postoji. :)
E, gledao sam i taj, ali se taj malo komplikovanije podešava, bar koliko sam video. Ovaj CP/M emulator koji sam prepravljao izvršava Z80 kod punom brzinom host mašine koristeći fajl sistem host mašine, tako da ti tehnički cross-compiler i nije potreban jer se kompajliranje sa native kompajlerima odvija veoma brzo. Ako je CP/M kompajler Small C (izvršni fajl je CC), a program koji hoćeš da kompajliraš je test.c, možeš da napišeš u komandnoj liniji samo:
cpm cc program
što će pokrenuti CP/M Z80 emulaciju, izvršiti Z80 binarni kod CC kompajlera, iskompajlirati test.c i vratiti te u komandnu liniju host sistema. Odnosno, možeš da izvršiš bilo koji standardni CP/M Z80 izvšni kod što je prilično zgodna stvar, možeš da koristiš bilo koji tekst editor sa host mašine, a da i ne pominjem da sve te komande za kompajliranje možeš da ubaciš u bash/bat skriptu i sebi prilično skratiš posao oko kucanja.
 

bocke

3.5" Floppy
Učlanjen(a)
21.03.2009
Poruke
146
Poena
18
To izgleda zanimljivo. Baciću pogled. :)

Čitam uputstvo i vidim da TIM 011 koristi ZCPR3. Onda mi je bilo jasno zašto je izbor komandi proširen u odnosu na CCP (CP/M-ov command.com). ZCPR je besplatni prošireni klon CCP-a.

Od arhiva CP/M softvera moja preporuka bi bila: The Humongous CP/M Archive (Offline mirror).

Uputstva za upotrebu za ZCPR3

CD-ovi sa izvornim kodom koji sadrže i izvorni kod za CP/M kompajlere/interpretere
 

bocke

3.5" Floppy
Učlanjen(a)
21.03.2009
Poruke
146
Poena
18
Skapirao sam kasnije. Malo krоz čitanje dokumentacije, malo kroz čitanje ove strane teme, a malo kroz čačkanje tim011-tools arhive. Tim 011 ima specifičan grafički režim. O tome si pričao iznad i zato postoji specifičan emulator i c kompajler. :) U onom uputstvu koje je okačio Marko grafički režim se skoro i ne pominje, osim uz napomenu da postoji Turbo Pascal modul.

Tako da problematika nije opšti CP/M softver (uputstvo pominje podršku za dbase, wordstar, turbo pascal, itd), već razvoj igara za taj grafički režim.

Takođe, terminalski izlaz emulatora predstavlja tekstualni režim CP/M-a, dok je X11 prozor zapravo emulacija TIM 011 grafičkog režima.
 
Poslednja izmena:

bocke

3.5" Floppy
Učlanjen(a)
21.03.2009
Poruke
146
Poena
18
Ne stignem sada, ali pročitaću ispočetka temu kad uhvatim vremena. Propustio sam jedan deo diskusije, a ostalo zaboravio. :) Sad sam čitao unazad i vidim da je Tim 011 imao 256kb memorije. Sad mi je jasno kako je bilo memorije za ram disk (o kome sam pročitao u upustvu). To je verovatno vrlo dobro za performanse, pošto CP/M dosta drlja po disketama.
 

zzarko

3.5" Floppy
Učlanjen(a)
13.10.2003
Poruke
1,521
Poena
48
Takođe, terminalski izlaz emulatora predstavlja tekstualni režim CP/M-a, dok je X11 prozor zapravo emulacija TIM 011 grafičkog režima.
Da, tako je, mada bi u pravom emulatoru to bila ista stvar. Taj zasebni prozor je samo prečica za razvoj grafike, dok pravi emulator iz MAME-a ne postane funkcionalan. Kad će to biti - ne znam, ali znam da se polako radi i na tome... Hvala puno za linkove koje si postavio, ima baš svačega tamo! :)
 

msolajic

3.5" Floppy
Učlanjen(a)
25.05.2006
Poruke
256
Poena
18
Što se tiče "pravog" emulatora, problem je što u MAME core-u procesor HD64180 (ili Z180, skoro pa ista stvar) nije u potpunosti emuliran, nedostaju sve interne periferije (MMU, DMA, CTC, SIO, tajmeri...). A što se tiče CP/M softvera uopšte, ako taj program poseduje svoj konfiguracioni fajl (ili se na bilo koji način mogu prilagoditi komande koje se šalju terminalu za brisanje ekrana, pomeranje kursora itd) onda taj program neće imati problema da radi na TIM011. Na primer, dve veoma poznate CP/M igre, CatChum i Ladder, kao i Quatris (Tetris) sam konfigurisao pa rade na TIM-u, dok, na primer, Turbo Pascal 3.0 nisam uspeo ni da pokrenem (mada, možda sam skinuo neodgovarajuću verziju, npr. za 8086).
Terminal na TIM-011 je softverski, njegov emulator pokreće se prilikom startovanja računara. Ekran je uvek u grafičkom režimu, terminal emulator "ucrtava" karaktere u njega. Koristi veoma mali set komandi koje jako podsećaju na VT-52 terminal, i to su:
ESC C - brisanje od kursora do kraja reda
ESC E - brisanje ekrana i pozicioniranje kursora na koordinatu 0,0
ESC Yxy - pozicioniranje kursora na lokaciju x,y (vrednosti x i y treba uvećati za 32)
ESC 3, ESC 4 - postavljanje i isključivanje naglašavanja teksta
Što se ZCPR3 i kompletnog operativnog sistema tiče, dobro je što postoji source, ali sam upoređivanjem sa postojećim binarnim verzijama došao do zaključka da je tu dosta toga izmenjeno za TIM-011... Na primer, TIM uopšte neće da radi (tj. zabaguje se u toku dizanja sistema) ako prva komanda u startnoj sekvenci nije komanda kojom se inicijalizuje RAM disk. U samom kodu programa kojim se inicijalizuje isti taj RAM disk nema ničega što bi sprečilo podizanje sistema, tako da pretpostavljam da se neki "osnovniji" deo ZCPR3 oslanja na to da RAM disk postoji i da je inicijalizovan.
 

Prilozi

  • 20210228_204946.jpg
    20210228_204946.jpg
    262.1 KB · Pregleda: 13
  • 20210228_204937.jpg
    20210228_204937.jpg
    249 KB · Pregleda: 13
  • 20210228_204851.jpg
    20210228_204851.jpg
    256.4 KB · Pregleda: 21

bocke

3.5" Floppy
Učlanjen(a)
21.03.2009
Poruke
146
Poena
18
Ako se tekstualni režim emulira, onda fontovi moraju nekako da se učitaju. Možda zato ima toliko memorije: možda koristi ram disk za brže učitavanje i skladištenje fontova. Nagađam, ali ima nekog smisla.

Video sam da na linku sa člancima iz domaćih časopisa ima tabela kodova. Izgleda da su tu neki najosnovniji ANSI kodovi.

Ovde ima par linkova za Turbo Pascal: http://www.retroarchive.org/cpm/lang/lang.htm. Samo pazi da ne skineš verziju za CP/M-86 ili CP/M-68K

Hvala puno za linkove koje si postavio, ima baš svačega tamo! :)
Čovek (Humongous CP/M arhiva) se potrudio da pokupi gotove sve CP/M arhive koje postoje na netu. :)

CD-ove sa izvornim kodom sam izvukao sa Archive.org. Njihov sistem pretraživanja je jako loš, ali se ponešto i može naći. Samo je šteta što veliki broj softvera ostane zakopan jer nije dobro tagovan kad je uploadovan.

Možda nije loše navesti i ovo: https://github.com/agn453/UNZIP-CPM-Z80 - verzija unzipa koja podržava deflate algoritam (infozip, pkzip 2.04g). Sa ovim bi trebalo da rade i zipovi pravljeni sa modernim programima za arhiviranje.

Ovo verovatno znaš, ali rekoh da napomenem: na modernim operativnim sistemima se za stare lbr i squeeze arhive može koristiti lbrate, za arc i ark arhive nomarch. Oba se bez problema kompajliraju sa MinGW tako da je moguće izgraditi ih i za Windows. A i varijanta originalnog arc arhivera je dostupna u repoima Linuks distribucija, a Windows port je ovde. Ali on barata samo sa arc arhivama.

Pitanjce u vezi fontova: vidim na slici u postu #183 i karaktere za crtanje. Da li ih stvarno podržava? Ako da, onda aplikacije mogu i da sadrže kvazi grafiku kao u dosu (Norton Commander, Xtree, Borland Turbo C i Pascal IDE, itd).
 
Poslednja izmena:

bocke

3.5" Floppy
Učlanjen(a)
21.03.2009
Poruke
146
Poena
18
Još jedno pitanje: Tim 011 podržava 4 boje. Da li su te 4 boje fiksne, ili postoji neka paleta? Napr. CGA može da prikaže 4 boje od 16 boja. Ili je ovde fiksirano 4 boje. Vidim da je output sa bojama na 1084. Na nekom od linkovanih članaka u ovoj temi je čak pisalo da Tim 011 podržava 4 nijanse sive. Da li to znači da je monitor bio monohrom, ali je izlaz bio obojen? Ili je Žarko ovde izveo neku magiju. ;)
 

msolajic

3.5" Floppy
Učlanjen(a)
25.05.2006
Poruke
256
Poena
18
Pitanjce u vezi fontova: vidim na slici u postu #183 i karaktere za crtanje. Da li ih stvarno podržava? Ako da, onda aplikacije mogu i da sadrže kvazi grafiku kao u dosu (Norton Commander, Xtree, Borland Turbo C i Pascal IDE, itd).
U tom postu je i alat koji je Žarko napravio, pa sam se ja igrao. Zamenio sam u karakter generatoru mala slova sa pseudografičkim karakterima.
Još jedno pitanje: Tim 011 podržava 4 boje. Da li su te 4 boje fiksne, ili postoji neka paleta?
Fiksno, 3 nijanse sive (tj. zelene) i crna. Pošto je originalni izlaz na TTL nivou, ja sam ga uvezao na TTL ulaz 1084-ke tako da mogu da imam neki uvid u te nijanse, ali se to manifestuje u bojama (bela, zelena, ljubičasta), dok ne napravim konverter u analogni video gde će stvarno biti 3 nijanse sive. Inače, moj TIM-011 je urađen u samogradnji, i ugrađen u kutiju tastature od Iskra Delta terminala. Unutar kutije je još bilo mesta da se uglavi i Gotek floppy emulator, i prilagodna ploča za video signal.

20210213_194338.jpg20210221_025229.jpg
 

bocke

3.5" Floppy
Učlanjen(a)
21.03.2009
Poruke
146
Poena
18
U tom postu je i alat koji je Žarko napravio, pa sam se ja igrao. Zamenio sam u karakter generatoru mala slova sa pseudografičkim karakterima.
Aha. Ali i to je super pošto se fontovi mogu dinamički menjati. CCP/ZCPR ne bi trebali biti case sensitive. Mislim (?), tako da je i to upotrebljivo. Mislim, u varijanti za file manager/lister program. Takođe bi verovatno bilo efikasno u igrama. Sa 4 boje može da se napravi nešto zanimljivo.

Inače, moj TIM-011 je urađen u samogradnji, i ugrađen u kutiju tastature od Iskra Delta terminala. Unutar kutije je još bilo mesta da se uglavi i Gotek floppy emulator, i prilagodna ploča za video signal.

Pogledajte prilog 300325Pogledajte prilog 300326

Lepo. :) Sam si ga sklopio na osnovu šema? Ploča deluje originalno. To je ona prazna ploča sa prethodnih strana teme? Može cela slika sa tastaturom (kućištem)? Čisto da vidimo kako to izgleda.

Izmena:

Da li mogu da se menjaju boja i pozadina teksta? Recimo, šta ako hoću da jedna reč ili jedna linija ima obrnute boje (crni tekst na beloj pozadini) - da li je to moguće?
 

zzarko

3.5" Floppy
Učlanjen(a)
13.10.2003
Poruke
1,521
Poena
48
Aha. Ali i to je super pošto se fontovi mogu dinamički menjati. CCP/ZCPR ne bi trebali biti case sensitive. Mislim (?), tako da je i to upotrebljivo. Mislim, u varijanti za file manager/lister program. Takođe bi verovatno bilo efikasno u igrama. Sa 4 boje može da se napravi nešto zanimljivo.
Za igre je mnogo efikasnije da se radi sa blokovima čija je širina umnožak od 4. To je i razlog zašto je napravljena ona mini-biblioteka za tile-ove koji su definisani kao 16x16 tačaka. Plan je i da se, takođe zbog brzine, naprave rutine za tekst koje bi radile sa 8x8 fontom, čime bi se dobilo 64x32 pozicije na ekranu. Tile-ovi se mogu definisati po želji, koristeći sve 4 nijanse, a ista stvar će biti i sa fontom kada bude zavšeno. Evo kako to može da izgleda u trenutnoj implementaciji:
Pozicioniranje tile-ova može da bude na svaka 4 piksela (polovina karaktera), pa je opseg koordinata 128x64.
Lepo. :) Sam si ga sklopio na osnovu šema? Ploča deluje originalno. To je ona prazna ploča sa prethodnih strana teme? Može cela slika sa tastaturom (kućištem)? Čisto da vidimo kako to izgleda.
Biće! Marko planira da sredi dosta dokumentacije koju je sam napravio analizirajući hardevr i softver TIM-a. Njegove analize su u osnovi svega što smo radili poslednjih nedelja.
Da li mogu da se menjaju boja i pozadina teksta? Recimo, šta ako hoću da jedna reč ili jedna linija ima obrnute boje (crni tekst na beloj pozadini) - da li je to moguće?
Sa originalnim terminal-emulatorom teško, koliko znam, jer ne podržava takve mogućnosti. Pošto source-a za to nema, napraviti izmene bi bilo prilično teško, bar Marku i meni. No, baš iz tog razloga je u planu font biblioteka za 64x32 režim koja se neće moći koristiti u radu sa ZCPR-om, ali će se moći koristiti iz programa za TIM koji je koriste. Šta bi sve bile mogućnosti takve biblioteke - videćemo, ali inicijlano samo osnovne. Svakako će sve biti open-source, bilo bi mi drago na ljudi dodaju mogućnosti koje im trebaju ili ih interesuju.
 

zzarko

3.5" Floppy
Učlanjen(a)
13.10.2003
Poruke
1,521
Poena
48
Konačno je završena i asemblerska rutina za iscrtavanje linija, evo koja brzina je na pravoj mašini (Markov snimak, pa zato u boji :) )
 

zzarko

3.5" Floppy
Učlanjen(a)
13.10.2003
Poruke
1,521
Poena
48
Osnovno ispisivanje stringova sa 8x8 fontom radi kako treba, kao i program za konverziju 8x8 fontova u PNG formatu (zasad po C64 rasporedu) u TIM 8x8 font.
1616046719888.png
 

bocke

3.5" Floppy
Učlanjen(a)
21.03.2009
Poruke
146
Poena
18
Nešto sam sređivao moju arhivu retro dokumentacije i naiđem na nešto vezano za Z180. HD64180 je direktna preteča Z180, tako da svaka Z180 varijanta podržava režim kompatibilnosti sa HD64180. HD64180/Z180 su u suštini proširene varijante Z80 sa nekim integrisanim mogućnostima (MMU, DMA, dva serijska porta).

Evo nešto malo dokumentacije za HD64180 i Z180. Možda nije ništa novo, ali možda bude i od koristi. Našao, pa delim dalje. :)
https://drive.google.com/drive/folders/1JnFKZAUF_IKB6Jsnhxhqvn6VY0ODqv87?usp=sharing

Među ovim papirima je vodič za prelazak sa HD64180 na Z180:
To ensure a more reliable source of Z80-based products, and avoid product obsolescence, ZiLOG recommends that customers migrate from Hitachi‘s HD64180 devices to ZiLOG’s Z80180 or Z8S180 embedded microprocessors. This Application Note documents the changes needed to seamlessly migrate from one chipset to the other. ZiLOG’s Z80180 is a pin-to-pin compatible part with Hitachi’s HD64180. The device resets to a 64180-compatible state, so that no changes are required to software developed on the 64180. ZiLOG also offers the Z8S180, which is
the enhanced static version of Z80180. Refer to the application note “Migrating from the Z80180 to Z8S180” on ZiLOG’s website for more information.
 
Poslednja izmena:

nesha_70

3.5" Floppy
Učlanjen(a)
23.02.2004
Poruke
1,566
Poena
38
Za početak stavi link da koga svi koji imaju link mogu da skinu fajl. Hvala.
 

bocke

3.5" Floppy
Učlanjen(a)
21.03.2009
Poruke
146
Poena
18
Hvala što si mi skrenuo pažnju. Ne bih ni primetio. Kod mene je otvaralo normalno. Pošto ne mogu više da promenim poruku (neko je odgovorio na nju), evo ga ispravan link u ovoj poruci:
 
Vrh Dno