Lion CPU & Home Computer
- sly*m
-
- Elite Member
-
- Δημοσιεύσεις: 322
- Ληφθείσες Ευχαριστίες 539
Ευχαριστώ Λέων! Είναι πολύ ωραία άσκηση γιατί με έκανε να δω από την πλευρά του hardware πως υλοποιούνται η λογική και οι πράξεις σε έναν επεξεργαστή. Αυτό ακόμα και στην assembly-γλώσσα μηχανής δεν φαίνεται γιατί έχεις ένα προβλέψιμο αποτέλεσμα όταν κάνεις αριθμητική σε assembly, το οποίο δηλώνεται στην αρχιτεκτονική του επεξεργαστή και είναι γνωστό. Από την πλευρά μου, το θέμα είναι πως θα αποδόσεις αυτό το προβλέψιμο αποτέλεσμα σωστά στην εξομοίωση... Όπως λέγαμε μεταξύ μας, η γλώσα μηχανής είναι ήδη high level! Συγχαρητήρια σε εσένα για τον Lion!
Εδώ και λίγους μήνες ο LionWin ο emulator του Lion Computer για windows δουλέυει as expected. Με την ουσιαστική βοήθεια του Λέοντα που ξαναθυμήθηκε πως έκανε αριθμητική στον Lion (αφού τον βασικό επεξεργαστή τον έχει γράψει από το '16) οι πράξεις κωδικεύτηκαν σωστά.
Τελευταίες προσθήκες ήταν τα joysticks (το πρώτο βασικά) και ο ήχος. Εκεί την πάτησα λίγο γιατί ο soundplayer που ανοίγω στην c# δεν παίζει πολλούς ήχους ταυτόχρονα αλλά τον ένα μετά τον άλλο. Ο Lion έχει 2 κανάλια ήχου και στον LionWin παίζει σωστά το πρώτο, που παίζει και στην εντολή beep της tiny basic. Προφανώς επόμενο βήμα είναι να δοκιμάσω directx για να παίζω δύο ήχους ταυτόχρονα.
Φυσικά είναι έγχρωμος αλλά λείπουν τα sprites και το διάβασμα-γράψιμο σε "sd card", σε φἀκελο των windows δηλαδή για τον emulator.
Εδώ είναι λίγα screenshots.
Δυστυχώς στην c# αυτή την στιγμή ήμαστε ακόμα πολύ αργοί, είναι 10 φορές πιό αργός από τον γνήσιο Lion! Αυτό γιατί η c# δουλεύει σε μετάφραση πάνω από τον κώδικα του επεξεργαστή του pc και αυτό έχει περιορισμό στην ταχύτητα. Είναι όμως μια πρώτη κωδίκευση που περιγράφει με μεγάλη ακρίβεια το σύστημα!
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- Fotis_KFOR
-
- Site Owner / Admin
-
- PC / Sinclair ZX Spectrum+3
My Collection / Projects / Various :
Computers , Consoles-Pongs , Various , Not-working , Handhelds-Tabletops , Intel p4004 (First CPU) , Old Hardware Parts , Magazines ,
Retro Computer Project , M.A.M.E. Cabinets , My Retro Computers & Consoles Room
UP THE IRONS!!! - My Iron Maiden Collection
My Wish List : www.retrocomputers.gr/collection/my-wish-list ;)
KEEP RETRO
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- kokkiklhs
-
- Elite Member
-
- Δημοσιεύσεις: 467
- Ληφθείσες Ευχαριστίες 399
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- lliont
-
Συντάκτης θέματος
- Junior Member
-
Είχα την τύχη να το έχει κάνει αυτό ο Michael Kohn σε open source project: www.mikekohn.net/micro/java_grinder.php για διάφορες αρχιτεκτονικές.
Έτσι σε αυτό το project πρόσθεσα ένα code generator για την Lion cpu και ένα API με ρουτίνες του Lion computer. Μάλιστα ο κώδικας που παράγω είναι πλήρως relocatable και έτσι δεν χρειάζεται κάποιον linker.
Έχω βέβαια πολύ δουλειά να κάνω ακόμη αλλά ήδη κάνω compile και τρέχω μέσα από τις εντολές LCODE,RCODE της Tiny Basic Java προγράμματα όπως το παρακάτω:
import net.mikekohn.java_grinder.Lionsys;
public class Testing
{
public static String strMsg = "Hello Lion from JAVA";
static public void main()
{
short key=0;
Lionsys.cls();
Lionsys.screen((byte) 4,(byte) 7);
for (short i = 0; i < strMsg.length(); i++) {
Lionsys.putChar(10,10+i,strMsg.charAt(i));
}
while (key==0) { key=Lionsys.inkey(); }
Lionsys.putChar(16,30, (char) key);
}
}
το οποίο καθαρίζει την οθόνη του Lion, της αλλάζει χρώμα, τυπώνει ένα μήνυμα και περιμένει μέχρι να πατηθεί ένα πλήκτρο για να επιστρέψει τον έλεγχο στην Tiny Βasic.
Πρέπει να τελειώσω το API με όλες τις εντολές του Lion system (sound, sprites, serial, files) και μετά να δω αν μπορώ να προσθέσω floating point αριθμητική που τώρα δεν έχει και πολλά άλλα ακόμη για τα βράδια του Χειμώνα.
Υ.Γ. Με την ευκαιρία να ενημερώσω ότι τα υποστηριζόμενα sprites από 8 έγιναν 11 και ότι μετέφερα την video ram σε IO address space που σημαίνει ότι όλη η ram είναι τώρα διαθέσιμη για προγράμματα. (64K = 8K rom + 56K ram)
TI-99/4a, ZX81, ZX Spectrum+, Sinclair QL, Commodore C64c, Atari 800, Lion Computer
users.sch.gr/tliontakis/index.php/my-projects
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- Fotis_KFOR
-
- Site Owner / Admin
-
- PC / Sinclair ZX Spectrum+3
My Collection / Projects / Various :
Computers , Consoles-Pongs , Various , Not-working , Handhelds-Tabletops , Intel p4004 (First CPU) , Old Hardware Parts , Magazines ,
Retro Computer Project , M.A.M.E. Cabinets , My Retro Computers & Consoles Room
UP THE IRONS!!! - My Iron Maiden Collection
My Wish List : www.retrocomputers.gr/collection/my-wish-list ;)
KEEP RETRO
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- johnretro
- Junior Member
-
- Δημοσιεύσεις: 22
- Ληφθείσες Ευχαριστίες 15
Μπράβο και στον sly*m για την πολύ άψογη συνεργασία που βλέπω ότι έχετε!!!
Άντε και φτιάξτε ένα υπολογιστή για τη NASA μετά!
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- lliont
-
Συντάκτης θέματος
- Junior Member
-
Βέβαια έχει περιορισμούς σε σχέση με την κανονική java π.χ. υποστηρίζει κλήσεις μόνο σε static routines αλλά είμαι πολύ ικανοποιημένος από το αποτέλεσμα.
Και έφτιαξα ένα μικρό test πρόγραμμα που κινεί τα 11 πλέον hardware sprites του Lion computer και παίζει το γνωστό από το προηγούμενο demo μουσικό θέμα
Η ποιότητα των βίντεο που έχω ανεβάσει είναι κακή (με την κάμερα του κινητού) , live τα sprites και το κείμενο είναι καθαρά και η κίνηση ομαλή.
TI-99/4a, ZX81, ZX Spectrum+, Sinclair QL, Commodore C64c, Atari 800, Lion Computer
users.sch.gr/tliontakis/index.php/my-projects
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- Fotis_KFOR
-
- Site Owner / Admin
-
- PC / Sinclair ZX Spectrum+3
Σε λίγο θα το παρουσιάσουμε κιόλας
My Collection / Projects / Various :
Computers , Consoles-Pongs , Various , Not-working , Handhelds-Tabletops , Intel p4004 (First CPU) , Old Hardware Parts , Magazines ,
Retro Computer Project , M.A.M.E. Cabinets , My Retro Computers & Consoles Room
UP THE IRONS!!! - My Iron Maiden Collection
My Wish List : www.retrocomputers.gr/collection/my-wish-list ;)
KEEP RETRO
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- wittgenstein
-
- Retro Starter
-
- Δημοσιεύσεις: 8
- Ληφθείσες Ευχαριστίες 8
Υπάρχει ακόμα ενδιαφέρον για C Compiler? Σκεφτόμουν κάποιο backend σε LLVM
Επίσης υπάρχει διαθέσιμος ο emulator?
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- ScorpioGr
-
- Premium Member
-
- Δημοσιεύσεις: 207
- Ληφθείσες Ευχαριστίες 200
Πολλά Συγχαρητήρια!!!!!!!!!
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- lliont
-
Συντάκτης θέματος
- Junior Member
-
Γιατί όχι αν σε ενδιαφέρει σαν άσκηση, ένας C compiler είναι κάτι πάρα πολύ χρήσιμο.
Για τον emulator ο οποίος είναι έτοιμος για τις δοκιμές που θα χρειαστείς αν το αποφασίσεις, θα σε ενημερώσει ο sly*m.
TI-99/4a, ZX81, ZX Spectrum+, Sinclair QL, Commodore C64c, Atari 800, Lion Computer
users.sch.gr/tliontakis/index.php/my-projects
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- sly*m
-
- Elite Member
-
- Δημοσιεύσεις: 322
- Ληφθείσες Ευχαριστίες 539
wittgenstein έγραψε: Επίσης υπάρχει διαθέσιμος ο emulator?
Γειά σου wittgenstein! Audentes fortuna iuvat!
Ο Λέων έχει τον asm στο github και μπορείς να κάνεις fork, μάλλον το είδες ήδη. Ο emulator είναι στο bitbucket, σε private repo προς το παρόν. Και τα δύο projects είναι σε git.
Ίσως να τα ξέρεις ήδη, αλλά θα τα γράψω. Για να κάνεις pull τον emulator θα πρέπει να μπορείς να μπείς στο bitbucket.org ( ίσως χρειαστεί να φτιάξεις atlassian account ). Εμείς χρησιμοποιούμε το Sourcetree σαν git frontend αλλά φυσικά μπορείς να χρησιμοποιήσεις ότι θέλεις.
Θα με βρείς εκεί ( bitbucket.org/manoosos/ ) και μου θα ζητήσεις πρόσβαση.
Και τα δύο projects τα αναπτύσσουμε σε Visual Studio 2012, δεν νομίζω να έχεις κανένα πρόβλημα σε πιό καινούριο και είναι σε c#.
Οπότε τα λέμε από private messages εδώ για λεπτομέρειες. Στείλε μου priv να σου απαντήσω.
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- wittgenstein
-
- Retro Starter
-
- Δημοσιεύσεις: 8
- Ληφθείσες Ευχαριστίες 8
Θα κάνω λογαριασμό στο bitbucket και σου στέλνω.
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- sly*m
-
- Elite Member
-
- Δημοσιεύσεις: 322
- Ληφθείσες Ευχαριστίες 539
O Λέων έχει φτιάξει floats στον Lion (στην ουσία είναι διαχείριση δεκαδικών αριθμών αλγοριθμικά) και εξελίσσει το programming interface του στην Java με δυνατούς ρυθμούς. Βέβαια έχει φτιάξει καινούριες εντολές στον προσέσσορα που τον βολεύουν για να κάνει πολύπλοκες πράξεις και από αυτή την άποψη στον LionWin τον emulator τρέχω και δεν φτάνω!
Όμως η γνωριμία μας με τον Γιάννη -wittgenstein- κατέληξε σε πολύ μεγάλη και ευχάριστη έκπληξη!
Ο Γιάννης αποδείχτηκε δεινός coder! Η αγαπημένη του γλώσσα είναι η c++ αλλά το πάθος του είναι να κάνει τα προγράμματα όσο πιο αποδοτικά και γρήγορα γίνεται. Συνδυάζοντας τις βαθειές του γνώσεις στην c++ με την c# που χρησιμοποιεί και στην δουλειά του, εκτόξευσε την ταχύτητα εκτέλεσης του LionWin από 10% που ήταν στο 60% ή και παραπάνω στο laptop μου (είναι με intel i3)! Σε λίγο θα τρέχει στην ταχύτητα του αληθινού Lion (σε δυνατότερα pc τώρα μάλλον τον ξεπερνάει)! Αυτά τα έκανε χωρίς να αλλάξει τίποτα στην κωδίκευση μου, αλλά επέκτεινε τον τρόπο που το 'πρόγραμμα προσέσσορας' καλεί την κάθε εντολή μηχανής. Πρακτικά για μένα δεν έχει αλλάξει τίποτα στον τρόπο που κάνω την υλοποίηση των εντολών ούτε καν οπτικά σαν κείμενο στο περιβάλλον προγραμματισμού! Αλλά με τις βελτιώσεις πήγε τον emulator εβδομάδες αν όχι μήνες μπροστα και μου έδωσε την ευκαιρία να κατάλαβω και εγώ κάποιους τρόπους υλοποίησης πραγμάτων στην c# που δεν είχα κατανοήσει πλήρως! Giga Respect Γιάννη!
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.
- lliont
-
Συντάκτης θέματος
- Junior Member
-
Με συγχωρείς Μάνο προσπαθούσα να χωρέσω όλες τις εντολές που ήθελα στην FPGA κάπως βιαστικά.
TI-99/4a, ZX81, ZX Spectrum+, Sinclair QL, Commodore C64c, Atari 800, Lion Computer
users.sch.gr/tliontakis/index.php/my-projects
Παρακαλούμε Σύνδεση ή Δημιουργία λογαριασμού για να συμμετάσχετε στη συζήτηση.