Τρίτη 21 Μαρτίου 2017

M2000 for Linux

Ο διερμηνευτής της Μ2000 μπορεί να τρέξει σε Linux. Υπάρχουν κάποια θέματα όπως με το κέρσορα (δεν αναβοσβήνει όπως θα έπρεπε όταν έχουμε σκοτεινά φόντα, ενώ δουλεύει με άσπρο φόντο καλά). Επίσης όταν ανοίγει ένα παράθυρο τύπου διαλόγου, πάνω από τη κονσόλα της Μ2000, τότε για ανεξήγητο λόγο νομίζει το Wine ότι θέλουμε κάτι από την γραμμή εκκίνησης και όχι μόνο την φέρνει στο προσκήνιο, παράλληλα παίρνει και το focus...οπότε η λύση είναι το Ctrl Tab, και κλικ στη φόρμα της Μ2000.

Η εγκατάσταση δεν είναι δύσκολη, όμως απαιτείται να οριστούν κάποιες βιβλιοθήκες με επιλογή native.
Στο στιγμιότυπο παρακάτω φαίνεται ο Task Manager του Wine, οι επιλογές στα dll, το πρόγραμμα σε Μ2000 Note1 (Notepad γραμμένο σε M2000), και ο διαχειριστής εργασιών του Linux (Ubuntu Studio 16.04 με Xfce)


Η εμφάνιση διαλόγου για να σώσουμε το αρχείο που διορθώσαμε καθορίζεται πάλι από τον διερμηνευτή και όχι από το σύστημα παραθύρων του Xfce
Τα εσωτερικά παράθυρα διαλόγου  (για φακέλους, αρχεία, χρώματα, επιλογή γραμματοσειράς, εισαγωγή τιμής και απλή ένδειξη  μηνύματος) έχουν την ιδιότητα να κάνουν αλλαγή μεγέθους, με ταυτόχρονη αλλαγή μεγέθους γραμμάτων.





Υπάρχει τρόπος να δούμε αν το πρόγραμμα τρέχει σε περιβάλλον Wine, σε Linux. Στην παρακάτω εικόνα βλέπουμε ότι εμφανίζει το λειτουργικό Windows 7, αλλά θα μπορούσε να ήταν και κάτι άλλο! Αυτό το αλλάζει το Wine. Υπάρχει όμως μια συνάρτηση στο ntdll που δεν την έχουν τα κανονικά ntdll, την wine_get_version. Η Μ2000 μπορεί να ενώσει μια δική της συνάρτηση με αυτήν και αν γίνει ...τότε ξέρουμε ότι τρέχει το πρόγραμμα σε Wine.  

Για να αντιγράψω τις παρακάτω δυο γραμμές, και να διατηρηθεί το χρώμα...πρέπει πρώτα να το φέρω στο Libreoffice, μετά να κάνω πάλι αντιγραφή και να το βάλω στο firefox, στο πλαίσιο του Blogger


declare Wine_Get_version lib "ntdll.wine_get_version" {}
report str$(uint(Wine_Get_version()) mod 0x80000)




Αρχεία κειμένου μπορούμε να ανοίγουμε χωρίς να τα φορτώσουμε στο περιβάλλον της Μ2000.

To note1.gsb  άνοιξε με την εντολή "note1.gsb". Αν κάναμε load note1.gsb θα έτρεχε άμεσα, γιατί τελευταίες εντολές έχει τις A : End  (καλεί το A και μόλις αυτό ολοκληρώσει κλείνει τον διερμηνευτή). Μάλιστα αν προσέξει κανείς τη πρώτη εικόνα...δεν βλέπει την κονσόλα γιατί την αφαιρούμε με την εντολή Title ή Τίτλος!

Με χειρισμό του δεύτερου ορίσματος της Cls (Οθόνη) αλλάζουμε το χωρισμό Οθόνης (το κάτω μέρος μπορεί να ολισθαίνει, να σβήνει άμεσα με την Cls, αλλά και να ορίζει το άνω μέρος του διορθωτή). Με αυτό το τρόπο φαίνεται ο διορθωτής περιορισμένος κάτω.

Μια άλλη ευκολία που "παίζει" και στο Linux είναι αλλαγή μεγέθους κονσόλας (αλλάζει και τα πλάτος/ύψος, αλλά εδώ θέλουμε να πιάνει όλη την οθόνη). Η κονσόλα έχει δυο εμφανή επίπεδα, το Περιθώριο και την Οθόνη. Στο περιθώριο γράφουμε με την εντολή Περιθώριο { } και μεσα στο μπλοκ όλες οι εντολές προς οθόνη πάνε στο Περιθώριο. Ομοίως και η Επίπεδο { } στέλνει στην οθόνη μέσα από την Περιθώριο { }. Η αλλαγή μεγέθους γραμμάτων γίνεται με τρεις τρόπους Mode ή Τύπος, Window ή Παράθυρο και Form ή Φόρμα. Ειδικά η τελευταία καθορίζει αυτόματα το linespace, ή διάστιχο δηλαδή το κενό μεταξύ των γραμμών.
Με form 40,20 δημιουργούμε ένα πλαίσιο οθόνης για 40 χαρακτήρες -  εσωτερικά η ρουτίνα υπολογίζει το πλάτος χαρακτήρα με βάσει το μέγεθος του W σε bold και Italic, και ψάχνει ανάστροφα, να δει σε ποιο μέγεθος χαρακτήρων έχει το βέλτιστο πλάτος. Αφού βρει το πλάτος και δει ότι οι γραμμές του φτάνουν, τότε υπολογίζει το διάστιχο.


Φαίνεται στη παραπάνω εικόνα το ευρύ διάστιχο! Δείτε ότι στη αριστερή πλευρά του τίτλου βλέπουμε το όνομα του αρχείου note1gsb (ενώ αν διορθώναμε το τμήμα Α θα έλεγε Τμήμα Α η Module A ανάλογα με τι γλώσσα έχουμε επιλέξει στις ρυθμίσεις (εντολή Ρυθμίσεις ή Ctrl+U στην γραμμή εντολών της κονσόλας της Μ2000)

Με form 30,20 μεγαλώνουν τα γράμματα και μειώνεται το διάστιχο, ενώ παραμένουν οι γραμμές κειμένου στις 20. Βλέπουμε το περιθώριο πιο μεγάλο. Τα νούμερα παίζουν από 10,2 και όσο θέλουμε ..(απλά δεν θα βλέπουμε αν το μέγεθος πέσει κάτω από το 6  - το τι είναι το έξι είναι μια άλλη συζήτηση)



Με πάτημα και ολίσθηση προς τα πάνω μετακινούμαστε στο κείμενο, με βελάκια, με σελίδα πάνω και κάτω, με την κρυφή μπάρα ολίσθησης (ανοίγει με το δείκτη του ποντικιού), και με το ροδελάκι στο ποντίκι.

Ο διορθωτής έχει λειτουργία αναδίπλωσης λέξης, και εδώ βλέπουμε μια τεράστια λέξη (δεν έχει κενό να βρει λέξη) αλλά δεν υπάρχει θέμα, κόβεται κατάλληλα. Με το F1 αλλάζουμε όποτε θέλουμε σε αναδίπλωση ή μη. Και ο διορθωτής πάντα μας εμφανίζει με τη κατάλληλη ολίσθηση τον δρομέα.


Στην παρακάτω εικόνα που έχουμε αφαιρέσει την αναδίπλωση λέξεων βλέπουμε στην άκρη τον δρομέα (σε Windows θα ήταν φωτεινός, εδώ δεν είναι), και πάνω στην γραμμή πληροφοριών, βλέπουμε το 474, δηλαδή πίσω από το δρομέα υπάρχουν 474 χαρακτήρες!

Με Home /End πάμε αριστερά πρώτο ή δεξιά τελευταίο (για την ακρίβεια το Home μια φορά πάει στην θέση 1 και μια φορά στη θέση του πρώτου γράμματος μη διαστήματος (διάστημα είναι και ο χαρακτήρας 160, non-breaking space). Μπορούμε να δούμε τους κρυφούς χαρακτήρες με το F10, να δούμε τον αριθμό λέξεων με F9, να βγάλουμε/βάλουμε το χρωματισμό με το F11. Τα F6-F7-F8 είναι σελιδοδείκτες και δουλεύουν με ένα πάτημα ρύθμιση/επιλογή/απορύθμιση (αν έχουμε κάνει επιλογή η δεύτερη επιλογή κάνει απορύθμιση δηλαδή απελευθέρωση)
Τα F2 και F3 (δουλεύουν και με τα Shift) κάνουν αναζητήσεις πάνω και κάτω, Το F4 κάνει αλλαγή σε όλο το κείμενο σε λέξη που έχουμε αλλάξει γράμματα από πεζά σε κεφαλαίο ή και το ανάποδο, ώστε να κάνει όλες τις λέξεις το ίδιο. Το F5 κάνει αλλαγή σε όλο το κείμενο μιας λέξης με μια άλλη και μπορούμε να χρησιμοποιήσουμε το ctrl-z ως undo για να πάρουμε πίσω μερικές αλλαγές, και ctrl-y για redo.





Οι εντολές που γράφουμε στην κονσόλα φαίνονται με το edit (ή σ ή συγγραφή) χωρίς όρισμα. Εκεί μπορούμε να δούμε τις εντολές με χρώμα και να διορθώσουμε (παίζει και η βοήθεια, αλλά στο Linux το ctrl+F1 κάνει κάτι άλλο, οπότε υπάρχει στο μενού με δεξί κλικ ή με αριστερό στο τίτλο, κάτω - κάνει ολίσθηση το μενού- η επιλογή βοήθεια για εκείνη την λέξη που έχουμε επιλέξει)

Ο χρωματισμός του κειμένου από το αρχείο note1 γίνεται στον διορθωτή. Μάλιστα μόλις βγούμε από τον διορθωτή οι πληροφορίες του χρωματισμού χάνονται.

Στη παρακάτω εικόνα καλούμε με την εντολή Win το notepad (βγήκε αυτό του Wine, και ανοίγουμε το note1.gsb (αφού πάμε στο φάκελο UserName, Application Data, Μ2000 και επιλέξουμε όλα τα αρχεία, utf-8 κωδικοποίηση.


Παρατηρήστε τα αρχεία bck. Όταν σώνουμε ένα πρόγραμμα το παλιό δεν χάνεται, μέχρι την επόμενη φορά που θα ξανασώσουμε! Δείτε επίσης ότι το Wine δίνει δικό του διάλογο για άνοιγμα αρχείου που μοιάζει με τα windows, με ψειράκια γράμματα!




Ως προς το θέμα της ταχύτητας, στο WIne σαφώς ο διερμηνευτής είναι περίπου στο 70% από τον διερμηνευτή που τρέχει σε VirtualBox στο ίδιο μηχάνημα.

Καλές δοκιμές στο Linux!



Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

You can feel free to write any suggestion, or idea on the subject.