[zxspectrum] RIF: zxspectrum Digest V3 #168

  • From: "Stefano Bodrato" <stefano_bodrato@xxxxxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Mon, 3 Jul 2006 01:41:09 -0700

>>Con la resistenza il gioco funziona perfettamente 

hehe.. combinazione ho appena scritto una routine per Z88DK per fare il detect 
della issue dello Spectrum.
Puoi provarla sul Badaloc ?
Non è precisa al 100% (da qualche problema con la Currah uSpeech inserita, ad 
esempio), ma credo che sia accettabile.

>qui trovi lo schema originale usato all'interno della ula per gestire il 
>registratore e il beeper, e' brevettato e secondo me e' una delle genialate 
>dello spectrum..

Decisamente particolare, specialmente x come sfrutta alcune caratteristiche 
passive dei semiconduttori !



-----Messaggio originale-----
Da:     "FreeLists Mailing List Manager" <ecartis@xxxxxxxxxxxxx>
Inviato:        domenica 2 luglio 2006 6.05
A:      "zxspectrum digest users" <ecartis@xxxxxxxxxxxxx>
Oggetto:        zxspectrum Digest V3 #168

zxspectrum Digest       Sat, 01 Jul 2006        Volume: 03  Issue: 168

In This Issue:
                [zxspectrum] Re: zxspectrum Digest V3 #167
                [zxspectrum] Z88DK: Dimenticavo !
                [zxspectrum] una resistenza per abu simbel
                [zxspectrum] Re: una resistenza per abu simbel

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

From: "Stefano Bodrato" <stefano_bodrato@xxxxxxxxxxx>
Subject: [zxspectrum] Re: zxspectrum Digest V3 #167
Date: Sat, 01 Jul 2006 14:24:32 +0200


>Subject: [zxspectrum] z88dk
>
>Buongiorno ragazzi,

ciao !

>vi leggo sempre ma non scrivo mai... :-(
>Adesso mi trovo in Bulgaria, per una settimanina di ferie, e guarda caso mi
>e' venuta la tentazione di installare e provare quanto in oggetto; pero'
>non riesco a fare un granche'.
>Ho estratto tutto il contenuto dello zip in c:\z88dk (che peraltro non mi
>piace... io ho tutto in h:\private\lavori\...), ho creato un semplice
>programmino che fa una printf("Hello, World!\n"); pero':
>
>1. con sccz80 riesco a creare il .asm (un po' strano come forma, ma presumo
>vada poi assemblato con z80asm...)
>2. con zcc mi da' il seguente errore:
>
>copy c:\z88dk\lib\z88_crt0.opt C:\WINNT\TEMP\s1nc_1.opt
>Impossibile trovare il file specificato.
>Cannot copy crt0 file
>
>Cosa devo fare? Quali sono gli step per avere un .asm da compilare (posso
>riparserizzarlo perche' sia compatibile col mio assemblatore, TASM 3.2,
>questo non e' un problema), che mi faccia un .obj in formato Intel Hex (ho
>visto che c'e' un'utility nel pacchetto che da un bin fa la stessa cosa),
>dal quale poi con un mio programma faccio un .tap

No, dovrebbe essere molto + semplice.
Se hai Windows installa direttamente il package, così ti vengono installate 
le variabili d'ambiente automaticamente.
Consiglio di usare direttamente la directory proposta, con i puntamenti a 
"bin", "lib" e "cfg" corretti.
Poi dai il comando:
zcc +zx -lndos -create-app tuoprogramma.c
-o-
zxx +zxansi -lndos -create-app tuoprogramma.c

>
>Poi...
>Non conosco il dk, ma e' veramente possibile scrivere codice c, compilarlo
>e usarlo sullo Speccy direttamente? Intendo dire, printf, scanf, - e altre
>funzioni di output, anche grafiche - funzionano direttamente sul display
>file dello Speccy?
>

Le funzioni di stdio e stdlib ci sono tutte, e anche una parte abbastanza 
completa di fcntl.
Una delle due versioni delle librerie risponde anche alle sequenze di escape 
VT/ANSI, colori e funzioni avanzate compresi (escluse le funzioni per 
interrogare il terminale, come quelle per sapere in quale riga/colonna ci si 
trova).  Non sono mai riuscito a costruire una libreria "curses", più che 
altro per pogrizia e ignoranza.
"fcntl" viene legato a driver specifici per la gestione del disco 
(microdrive, plus3, o ZXVGS);sto giusto provando a costruire un driver 
minimale che si interfacci al BASIC.

Ci sono poi delle funzioni grafiche "ad-hoc", che per lo Spectrum sono su 
due livelli: quelle base monocromatiche portabili tra varie piattaforme Z80 
e lo sprite pack, che gestisce colore e fotogrammi appoggiandosi alle 
interrupt ed è molto performante.

Poi c'è string, malloc, tipi long floating point, ecc..
Non nascondo che il primo impatto è spesso negativo (prima dell'apporto di 
Marcello la vita era ancora + dura.. non abbiamo risorse per investire sullo 
"user friendly"), ma ne vale la pena.



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

From: "Stefano Bodrato" <stefano_bodrato@xxxxxxxxxxx>
Subject: [zxspectrum] Z88DK: Dimenticavo !
Date: Sat, 01 Jul 2006 17:03:22 +0200

Z88DK è composto di vari elementi (compilatore, preprocessore, 
ottimizzatore, assembler/linker e convertitore) che con il comando da me 
citato vengono concatenati automaticamente.
Il risultato è un file a.tap perfettamente eseguibile con un semplice LOAD 
"".

il parametro -lndos carica la libreria "ndos", che è uno stub vuoto per non 
utilizzare drive esterni.
Altre librerie includono genmath, zxmath(+ compatto), malloc.



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

From: "Alessandro" <apoppi@xxxxxxxx>
Subject: [zxspectrum] una resistenza per abu simbel
Date: Sat, 1 Jul 2006 17:10:29 +0200

Signire e signori, ecco la puttan*ta del primo luglio:
"Lo zx-badaloc e` in grado di far girare Abu Simbel Profanation solo se si 
aggiunge una resistenza da 33K".

:-)

Mi spiego meglio (prima di essere buttato fuori)

Abu simbel profanation, che ho scaricato sul clone dopo aver visto la 
versione flash reclamizzata in area qualche tempo fa, non proseguiva oltre 
il menu` principale: la pressione dei tasti 2, 3 o 4 non sortiva alcun 
effetto. Inutile dire che su RealSpectrum funzionava tutto alla perfezione.

Grazie a quest'ultimo, ho potuto scoprire una routine di lettura della 
tastiera a dir poco machiavellica, che fa affidamento su tutti e 8 i bit 
letti dalla porta $FE, per fare poi confronti e calcoli vari nei quali non 
mi sono addentrato oltre un certo punto (l'inizio). :-)

Dato che su 8 bit ce ne sono 5 per la tastiera e due fissi a '1', non poteva 
essere che un problema del bit EAR, che la mia CPLD riporta a '0' in assenza 
di segnale audio. Per fare un esperimento l'ho negato ('1' in assenza di 
segnale) e, come per magia, i tasti del menu` hanno preso a funzionare. 
C'era pero` un problema: l'ometto si muoveva da solo come se tutti i tasti 
fossero tenuti premuti, compreso il salto.

Mi sono allora letto la documentazione dell'originale, che riporto 
testualmente:

Bit 6 of IN-Port 0xfe is the EAR input bit. The value read from this port is 
not trivial, as can be seen from the following program:


      10 OUT 254,BIN 11101111
      20 PRINT IN 254
      30 OUT 254,BIN 11111111
      40 PRINT IN 254
      50 GOTO 10For a correct test do not press any key while running, and 
have no EAR input.


  a.. If the output is 191,255,191,255 etc, you are on real Spectrum Issue 
3.
  b.. If output is always 191 or always 255, change the value in line 10 to 
BIN 11100111.
  c.. If output is then 191,255,191,255 etc, then you are on Spectrum Issue 
2.
  d.. If output is still always 191 or always 255 you are on Spectrum 
emulator.

La mia interfaccia cassette non prevedeva alcun feedback fra l'output dei 
bit SPK e MIC (D4 e D3 su $FE) e la lettura del bit EAR (D6 su $FE), per cui 
il programma riportava sempre 255 (con la cpld modificata) oppure 191 (con 
la versione originale). Riguardando lo schema che avevo sviluppato a suo 
tempo, ho visto che sarebbe bastato inserire una resistenza (33K) fra il pin 
1 e 5 dell'LM358. Grazie ad essa, il feedback ora funziona come su di uno 
spectrum issue 3. Ho anche eliminato la modifica alla CPLD in quanto negava 
il risultato, e questo non deve accadere.

Con la resistenza il gioco funziona perfettamente (sia i tasti nel menu` che 
quelli durante il gioco).

Credo che non finiro` mai di trovare rogne.

Ciao!


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

Date: Sat, 01 Jul 2006 17:49:37 +0200
From: Mario <mario.prato@xxxxxxxx>
Subject: [zxspectrum] Re: una resistenza per abu simbel


>
>La mia interfaccia cassette non prevedeva alcun feedback fra 
>l'output dei bit SPK e MIC (D4 e D3 su $FE) e la lettura del bit EAR 
>(D6 su $FE), per cui il programma riportava sempre 255 (con la cpld 
>modificata) oppure 191 (con la versione originale). Riguardando lo 
>schema che avevo sviluppato a suo tempo, ho visto che sarebbe 
>bastato inserire una resistenza (33K) fra il pin 1 e 5 dell'LM358. 
>Grazie ad essa, il feedback ora funziona come su di uno spectrum 
>issue 3. Ho anche eliminato la modifica alla CPLD in quanto negava 
>il risultato, e questo non deve accadere.
>
>Con la resistenza il gioco funziona perfettamente (sia i tasti nel 
>menu` che quelli durante il gioco).

qui trovi lo schema originale usato all'interno della ula per gestire 
il registratore e il beeper, e' brevettato e secondo me e' una delle 
genialate dello spectrum..  anche se  ogni tanto porta rogne, ma piu' 
che altro sono i programmatori poco accorti... :(

http://www.wearmouth.demon.co.uk/beep.gif

>Credo che non finiro` mai di trovare rogne.

benvenuto nel club ;)

ciaoo 

 
 
 --
 Email.it, the professional e-mail, gratis per te: http://www.email.it/f
 
 Sponsor:
 Refill s.r.l. - Prodotti per TUTTE le stampanti sul mercato a prezzi sempre 
convenienti. Dal 1993, leader nel compatibile di qualità in Italia.
 Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=5188&d=1-7

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

End of zxspectrum Digest V3 #168
********************************



Other related posts: