ZX Spectrum 48K/128K, TZX ή TAP σε WAV ή MP3

Υπάρχουν πολλά προγράμματα γι' αυτές τις μετατροπές, όμως έχω συναντήσει αρκετά προβλήματα, ειδικά όταν θέλω μεταφορά σε αυθεντικό κασετόφωνο!

Το πρόγραμμα που προτείνω παρακάτω είναι φτιαγμένο για turbo load, που όμως πολλές φορές είναι "προβληματικό", όμως έχει τον καλύτερο μηχανισμό μετατροπής σε κανονική ταχύτητα!

Το κατάλληλο πρόγραμμα είναι το K7ZX και βρίσκεται εδώ, αφού το εγκαταστήσουμε επιλέγουμε από τις ρυθμίσεις την ταχύτητα σε normal: 



Μετά απ' αυτό είμαστε έτοιμοι να παράγουμε το αρχείο WAV ή το αρχείο MP3, που με την βοήθεια του LAME είναι πολύ καλό σε ποιότητα.... Ακόμα και για εγγραφή σε αυθεντική κασέτα!


ZX81, μετατροπή αρχείων .P σε .WAV

Για την συγκεκριμένη μετατροπή δεν έχουμε και πολλές επιλογές! Υπάρχει το πολύ καλό βοήθημα tapeutils.jar που είναι ένα πρόγραμμα σε java, το οποίο όμως αντιμετωπίζει πρόβλημα με τις νέες εκδόσεις java !!!

Θα πρέπει να έχουμε εγκατεστημένη στο μηχάνημά μας μια παλαιότερη έκδοση, όπως για παράδειγμα αυτή που αναφέρω παρακάτω (την οποία χρησιμοποιώ και προτείνω).

Από εδώ κατεβάζουμε την έκδοση 6 update 12 της java την οποία εγκαθιστούμε, αφού βέβαια έχουμε αφαιρέσει όποια άλλη έκδοση έχουμε.

"Κλικ" στην εικόνα για μεγέθυνση

Από εδώ κατεβάζουμε το tapeutils.jar, όπου απλά φορτώνουμε το αρχείο .P και αφού δώσει μήνυμα "no errors", σώνουμε με κατάληξη .WAV.

"Κλικ" στην εικόνα για μεγέθυνση

ZX81, χρήση ως scientific calculator

Τα πράγματα εδώ είναι πολύ εύκολα, χάρη στην ύπαρξη της συνάρτησης VAL στην Sinclair Basic. Αυτή η συνάρτηση, υπολογίζει την τιμή της παράστασης που δίνεται, ακόμα και αν αυτή η τιμή δεν είναι αριθμητική αλλά λογικού τύπου (με 0 απαντά όταν είναι Ψευδής, με 1 απαντά αν η παράσταση είναι Αληθής).

Γράφουμε (ή και αποθηκεύουμε μετά σε κασέτα) τον παρακάτω μικρό κώδικα, και έχουμε στην διάθεσή μας ένα επιστημονικό κομπιουτεράκι με όλες τις τριγωνομετρικές ή εκθετικές συναρτήσεις (sin, cos, tan, arcsin κ.α.) μ' εμφάνιση και των προηγούμενων αποτελεσμάτων.

10 SCROLL
20 INPUT A$
30 PRINT A$;" = "; VAL A$
40 GOTO 10

Να θυμίσω ότι η ύψωσε σε δύναμη, είναι με τον διπλό αστερίσκο (**), περισσότερα στο εγχειρίδιο του ZX81, ή και εδώ


Sinclair Basic tricks & tips


Μερικά σύντομα και χρήσιμα "εργαλεία" για τα προγράμματά μας! Η Sinclair Basic είναι πλούσια σε τέτοια εργαλεία, αλλά πολλές φορές δεν εμφανίζονται ευκρινώς στο malual.  


Κυλιόμενο μήνυμα

Η λογική είναι απλή, κάθε φορά θέτουμε το αρχικό string με τον πρώτο χαρακτήρα του στο τέλος. Δοκιμάστε το παρακάτω μικρό πρόγραμμα:
"Κλικ" στην εικόνα για μεγέθυνση

Μετατροπή μοίρες σε ακτίνια

Οι τριγωνομετρικές συναρτήσεις της Sinclair Basic δέχονται τις παραμέτρους σε ακτίνια, εμείς πολλές φορές θέλουμε να είναι σε μοίρες. Σε αυτή την περίπτωση δημιουργούμε την συνάρτηση μετατροπής a(m) όπως φαίνεται στο παρακάτω πρόγραμμα:
"Κλικ" στην εικόνα για μεγέθυνση

O ZX ως scientific calculator

Τα πράγματα εδώ είναι πολύ εύκολα χάρη στην ύπαρξη της συνάρτησης VAL στην Sinclair Basic. Αυτή η συνάρτηση υπολογίζει την τιμή της παράστασης που δίνεται, ακόμα και αν αυτή η τιμή δεν είναι αριθμητική αλλά λογικού τύπου (με 0 απαντά όταν είναι Ψευδής, με 1 απαντά αν η παράσταση είναι Αληθής). Δοκιμάστε το παρακάτω πρόγραμμα:
"Κλικ" στην εικόνα για μεγέθυνση

Τυχαίοι αριθμοί

Υπάρχει έτοιμη συνάρτηση, αλλά αν θέλουμε αυστηρά έναν ακέραιο μεταξύ του α και του β αριθμού, πρέπει να έχουμε εισάγει την παρακάτω συνάρτηση:
"Κλικ" στην εικόνα για μεγέθυνση


VZ200/Laser 100/110/200, BASIC και PRINT@

Αυτά τα συστήματα, έχουν την απλή και γνωστή Basic στις βασικές εντολές. Σ' αυτό βέβαια βοηθάει το ότι όλες οι εντολές αναγράφονται πάνω στο πληκτρολόγιο. Η εντολή όμως PRINT σε συγκεκριμένη θέση (PRINT AT), διαφέρει από τα περισσότερα συστήματα!

Τα manual είναι δυσεύρετα (εγώ δεν έχω βρει κάποιο), αλλά αυτό δεν μας πτοεί αν θέλουμε να γράψουμε ένα δικό μας πρόγραμμα!

Η οθόνη χαρακτήρων είναι διάστασης 32x16 (32 γραμμές και 16 στήλες) και διαθέτει την εντολή PRINT@, η οποία έχει ως παράμετρο έναν αριθμό κελιού από το 0 έως το 511. Με 0 είναι το πάνω αριστερό κελί και 511 το κάτω δεξιό. Αν row είναι η γραμμή που θέλουμε να τυπώσουμε και col η στήλη, πρέπει να γράψουμε:

PRINT@  row*32+col , "Το κείμενο που θέλουμε να εμφανιστεί"

row  0 έως 15
col 0 έως 31
Δεν πρέπει να ξεχάσουμε ότι οι τιμές ξεκινούν από το 0 !!!


VZ200, Ram Diagnostic Program

Ως γνωστόν, ο VZ 200 διαθέτει 2K (ή 6Κ o VZ210) μνήμης διαθέσιμα για τον χρήστη (και 2Κ video ram, που αν έχει πρόβλημα δεν έχει εικόνα!). Πιθανό το μηχάνημα ν' ανοίγει κανονικά αλλά να έχει πρόβλημα σε κάποιο από τα chip. Ο τύπος της είναι HM6116P και μπορεί να ελεγχθεί εύκολα με την παρακάτω γραμμή κώδικα, που δείχνει το ramtop που "βλέπει" το μηχάνημα:

PRINT PEEK (30897)+256*PEEK(30898)

Η απάντηση που πρέπει να πάρουμε είναι:
 2Κ: 32767
 6Κ: 36863
16Κ: 53247 (αν έχουμε συνδέσει εξωτερική επέκταση μνήμης 16Κ)