Quarantine challenge

Vincent

Retro Addict
Messages
817
Reaction score
1,635
Points
103
Μα γιαυτό ξεκίνησα με την υπέροχη εισαγωγή περί οφ τόπικ.
Πανέμορφο όμως ε?
 

sly*m

Retro Addict
Messages
549
Reaction score
1,403
Points
103
Sorry για το off topic αλλά είναι πολύ cool και δε νομίζω να πορτάρετε, αλλά πάρτε το.

CPC

Code:
1000 MODE 2:DEG:d=&7E00:FOR a=0 TO 359 STEP 2:y=COS(a)*95+95:PLOT a,y*2+18:POKE d,y:d=d+1:NEXT:POKE d,&FF:m=&8000:FOR d=0 TO 1:READ d$:FOR u=1 TO LEN(d$)/2:POKE m,VAL("&"+MID$(d$,(u-1)*2+1,2)):m=m+1:NEXT u,d
1010 CLS:CALL &8000
1020 DATA f32a3800229a8021fbc9223800fb21004206c836542310fbcd19bd76dd21a0803e10f5dd6e00dd6601237efeffc2338021007edd7500dd74015e164221c080010900edb0dd23dd23f13d20d676f3219f002b7cb5c251802100423ec801107f16005e23ed49ed59ed51ed590000060810fe3dc25c80dd21a080
1030 DATA 3e10dd6e00dd66015e164221c980010900edb0dd23dd233d20e8cd09bbd21880210000223800c9007e037e067e097e0c7e0f7e127e157e187e1b7e1e7e217e247e277e2a7e2d7e5c4c4e4a4b53575544545454545454545454

Δεκτή η πρόκληση! Κράτα την μπύρα μου.

Atari ST - GFA Basic

Amstrad19572
Atari ST19573


Code:
' --------------------------------------------------------------------------
' challenge on amstrad rasters
' www.iamretro.gr/forum/threads/quarantine-challenge.9605/page-3#post-152011
' sly*m 19/4/2020 - gfa basic st / 68k machine code
' --------------------------------------------------------------------------
'
rez&=XBIOS(4)
IF rez&=2
  ALERT 3," | |  Need COLOR Monitor! ",1," oh... ",d%
  END
ENDIF
DIM rastmoves|(720)
DIM rastcode|(844)
rastmovesptr%=V:rastmoves|(0)
rastcodeptr%=V:rastcode|(0)
d%=rastmovesptr%
FOR a=0 TO 359 STEP 2
  y=COS(RAD(a))*94+94
  PLOT a/2,y
  y=ROL&(y,1)
  DPOKE d%,y
  DPOKE d%+360,y
  d%=d%+2
NEXT a
m%=rastcodeptr%
FOR d=0 TO 7
  READ d$
  FOR u=1 TO LEN(d$)/8
    LPOKE m%,VAL("&"+MID$(d$,(u-1)*8+1,8))
    m%=m%+4
  NEXT u
NEXT d
~C:rastcodeptr%(L:rastmovesptr%)
END
DATA 41fa031048e0fffe4dfa02aa2d6f0004000042a73f3c00204e414fef00062d4000166100015a61000032610001c0203a029a2f003f3c00204e414fef00063f3c00023f3c00014e4d4fef00044a4066ee41fa02c04cd87fff4e756100021441f9ffff8240700f7e0020c751c8
DATA fffc3f3c00034e4e4fef000220400480000004002d400004203c00001f3f20c751c8fffc40e746fc270013fc0040fffffa1713fc0001fffffa0713fc0040fffffa0913fc0001fffffa1313fc0040fffffa1513fc0001fffffa2113fc0008fffffa1b41fa01b023c800000118
DATA 41fa003223c80000007041fa009223c8000001204bfaff12426e000c42b9000004622d7a01b8000846df082e0000000c67f84e7546fc2000247a01a62a4a2e3c00000018700072007400760048d2000f45ea001051cffff62c3a0182068600000168267a0180b7c66d04267a
DATA 017030137e002c3c000000784cfa003e01e248f5003e0000303370005087be866ff047eb00022d4b000852b9000004624e7333ddffff82404e731d79ffff820a000e1d79fffffa17000f1d79fffffa0700101d79fffffa0900111d79fffffa1300121d79fffffa1500131d79
DATA fffffa1b00141d79fffffa2100152d7900000118001a2d7900000070001e2d7900000120002241fa013e43f9ffff82404cd100ff48d000ffa00a4e7540e76100008046fc270013fa00cbfffffa1713fa00c4fffffa0713fa00bdfffffa0913fa00b6fffffa1313fa00afffff
DATA fa1513fa00a8fffffa1b13fa00a1fffffa2123fa009e0000011823fa009a0000007023fa00960000012013fa007affff820a42b90000046246df6100001841fa00ba43f9ffff82404cd000ff48d100ffa0094e75203900000462b0b90000046267f84e7546fc25003f007000
DATA 1039fffffc000800000767121039fffffc020c0000f66c063d7cffff000c08390004fffffa0167d8301f4e7300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
DATA 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000400070007300770077700770047000700040000
 

dimfil

Retro Mentor
Messages
1,096
Reaction score
1,814
Points
123
Ε, δεν παίζεστε ρε σεις!
Να μπουν κάποιοι κανόνες τέλος πάντων! Αυτά δεν γίνονται με μέσες γνώσεις, πόσο μάλλον να μεταφερθούν κιόλας σχετικά εύκολα από τη μια BASIC στην άλλη. Εγώ δεν μπήκα καν στον κόπο copy/paste στον ape για να δω τι κάνει! Είπαμε... Δεν το λες και BASIC...
 

sly*m

Retro Addict
Messages
549
Reaction score
1,403
Points
103
Δημήτρη BASIC είναι... με λίγη inline assembly όπως στον CPC. Πάντως συμφωνώ, δεν θα έπρεπε να μπαίνουν ακραία listings με assembly, αλλά listings από βιβλία και περιοδικά (όπως το προσδιόρισε ο @ChrisTOS) . Άντε και κανένα από web αλλά να μην χρειάζεται assembly για να φτάσεις στο αποτέλεσμα...
 

clemenza

Retro Addict
Messages
967
Reaction score
1,358
Points
93
Δεκτή η πρόκληση! Κράτα την μπύρα μου.

Atari ST - GFA Basic



Code:
' --------------------------------------------------------------------------
' challenge on amstrad rasters
' www.iamretro.gr/forum/threads/quarantine-challenge.9605/page-3#post-152011
' sly*m 19/4/2020 - gfa basic st / 68k machine code
' --------------------------------------------------------------------------
'
rez&=XBIOS(4)
IF rez&=2
  ALERT 3," | |  Need COLOR Monitor! ",1," oh... ",d%
  END
ENDIF
DIM rastmoves|(720)
DIM rastcode|(844)
rastmovesptr%=V:rastmoves|(0)
rastcodeptr%=V:rastcode|(0)
d%=rastmovesptr%
FOR a=0 TO 359 STEP 2
  y=COS(RAD(a))*94+94
  PLOT a/2,y
  y=ROL&(y,1)
  DPOKE d%,y
  DPOKE d%+360,y
  d%=d%+2
NEXT a
m%=rastcodeptr%
FOR d=0 TO 7
  READ d$
  FOR u=1 TO LEN(d$)/8
    LPOKE m%,VAL("&"+MID$(d$,(u-1)*8+1,8))
    m%=m%+4
  NEXT u
NEXT d
~C:rastcodeptr%(L:rastmovesptr%)
END
DATA 41fa031048e0fffe4dfa02aa2d6f0004000042a73f3c00204e414fef00062d4000166100015a61000032610001c0203a029a2f003f3c00204e414fef00063f3c00023f3c00014e4d4fef00044a4066ee41fa02c04cd87fff4e756100021441f9ffff8240700f7e0020c751c8
DATA fffc3f3c00034e4e4fef000220400480000004002d400004203c00001f3f20c751c8fffc40e746fc270013fc0040fffffa1713fc0001fffffa0713fc0040fffffa0913fc0001fffffa1313fc0040fffffa1513fc0001fffffa2113fc0008fffffa1b41fa01b023c800000118
DATA 41fa003223c80000007041fa009223c8000001204bfaff12426e000c42b9000004622d7a01b8000846df082e0000000c67f84e7546fc2000247a01a62a4a2e3c00000018700072007400760048d2000f45ea001051cffff62c3a0182068600000168267a0180b7c66d04267a
DATA 017030137e002c3c000000784cfa003e01e248f5003e0000303370005087be866ff047eb00022d4b000852b9000004624e7333ddffff82404e731d79ffff820a000e1d79fffffa17000f1d79fffffa0700101d79fffffa0900111d79fffffa1300121d79fffffa1500131d79
DATA fffffa1b00141d79fffffa2100152d7900000118001a2d7900000070001e2d7900000120002241fa013e43f9ffff82404cd100ff48d000ffa00a4e7540e76100008046fc270013fa00cbfffffa1713fa00c4fffffa0713fa00bdfffffa0913fa00b6fffffa1313fa00afffff
DATA fa1513fa00a8fffffa1b13fa00a1fffffa2123fa009e0000011823fa009a0000007023fa00960000012013fa007affff820a42b90000046246df6100001841fa00ba43f9ffff82404cd000ff48d100ffa0094e75203900000462b0b90000046267f84e7546fc25003f007000
DATA 1039fffffc000800000767121039fffffc020c0000f66c063d7cffff000c08390004fffffa0167d8301f4e7300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
DATA 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000400070007300770077700770047000700040000
Αν και συμφωνώ στο να περιοριστούμε σε πιο... BASIC κατατόπια, δεν μπορώ παρά να σου βγάλω το καπέλο...

19574
 

dimfil

Retro Mentor
Messages
1,096
Reaction score
1,814
Points
123
Δημήτρη BASIC είναι... με λίγη inline assembly όπως στον CPC. Πάντως συμφωνώ, δεν θα έπρεπε να μπαίνουν ακραία listings με assembly, αλλά listings από βιβλία και περιοδικά (όπως το προσδιόρισε ο @ChrisTOS) . Άντε και κανένα από web αλλά να μην χρειάζεται assembly για να φτάσεις στο αποτέλεσμα...
Είχε καθαρά χιουμοριστική διάθεση το post μου, ελπίζω να έγινε κατανοητό. Ίσως έπρεπε να βάλω κι άλλες φατσούλες!

Ήμουν σίγουρος ότι θα το κατάφερνες, η παρουσία σου στη demo scene δεν άφηνε περιθώρια αμφιβολίας!

Ναι, ξέρω ότι τυπικά έστω είναι BASIC, αλλά με περιεχόμενο που αδυνατούμε να ακολουθήσουμε εμείς οι "θνητοί"...!!!

Respect για το αποτέλεσμα που έδωσες, αν και δεν μπορώ να το μελετήσω δυστυχώς...

Προσωπικά περιμένω πως και πως επόμενα ports σου σε Atari Basic! Αποτελούν σχολείο για εμένα...
 

clemenza

Retro Addict
Messages
967
Reaction score
1,358
Points
93
Ερώτηση: έχετε δει το νέο βιντεάκι του 8bit show and tell;


Ενδιαφέρεστε να μετατρέψουμε αυτό το απλό παιχνιδάκι; Το listing του είναι αυτό:

View attachment 19493

(Η inversed καρδούλα είναι το CLS!)
Λοιπόν, αφού βρήκα μερικά λεπτά να ξεκλέψω αποφάσισα να βουτήξω στα βαθιά (LOL), μετατρέποντας το εθιστικό παιχνιδάκι του 8bit Show and Tell από Commodore PET σε Commodore 64. Να τονίσω στο σημείο αυτό ότι η περίφημη αυτή "μεταφορά" είναι γελοιωδώς εύκολη, καθώς τα 2 μηχανήματα έχουν ακριβώς την ίδια BASIC, αλλά και το ίδιο text width (χαρακτήρες ανά γραμμή). Συνεπώς, οι μόνες "δυσκολίες" (που λέει ο λόγος) ήταν η αλλαγή των διευθύνσεων της μνήμης...

Ευκολάκι και αυτό αν ξέρει κανείς πού να ψάξει, όμως: το 32768 είναι η πρώτη διεύθυνση της οθόνης (1024 στο σύνολο) στον PET, και το αντίστοιχο νούμερο στον 64άρη είναι το 1024. Η διεύθυνση 158 της γραμμής 210 είναι το πλήθος των χαρακτήρων στον buffer του πληκτρολογίου. Αυτή η διεύθυνση στον Commodore 64 είναι η 198.

Συνεπώς, μετά από αυτές τις 2 όλες κι όλες αλλαγές, το προγραμματάκι έχει ως εξής:

19613

Και το αποτέλεσμά του είναι ένα μικρό, απλό, μα και εθιστικό παιχνιδάκι:

19614

Νομίζω ότι αυτό το παιχνιδάκι είναι ενδεικτικό του πόσο ενδιαφέρων μπορεί να είναι ο προγραμματισμός, και δη στην BASIC των μηχανημάτων των 80s. Κάποιοι κατά καιρούς αναρωτιούνται πώς είναι δυνατόν να πουλιόντουσαν υπολογιστές με 1Κ μνήμης, όπως ο ΖΧ81, αφού δεν μπορούσες να κάνεις πρακτικά τίποτα σε αυτούς. Κι όμως, όπως μπορείτε να διαπιστώσετε το προγραμματάκι του 8bit Show and Tell είναι μονάχα 640bytes! Ε, ναι, με κάτι τέτοια κατά νου, προφανώς και ακουγόταν λογικό το περίφημο "640KB should be enough for everyone" που είχε δηλωσει ο Bill Gates στα χρόνια του IBM PC! :cool:

19615
 

clemenza

Retro Addict
Messages
967
Reaction score
1,358
Points
93
Μιας και βρέθηκε άλλο ένα μισάωρο, μετέφερα το προγραμματάκι και στους Commodore 16 & Plus/4. Όπως ίσως γνωρίζετε, η Commodore BASIC 3.5 που χρησιμοποιούν αυτά τα μηχανήματα είναι υπερσύνολο της Commodore BASIC 2.0 των PET και Commodore 64. Με αυτό ως δεδομένο αλλά και το text width που είναι και εδώ 40 χαρακτήρες, οι αλλαγές που χρειάστηκαν ήταν οι αντίστοιχες με αυτές στον Commodore 64. Συνεπώς, η διεύθυνση 32768 της γραμμής 10 γίνεται 3072 (η αρχή της μνήμης της οθόνης στους C16 & Plus/4) και η εντολή 210 διαφοροποιείται στην μορφή που βλέπετε προκειμένου να "καθαρίσει" ο buffer του πληκτρολογίου, καθώς δεν μπόρεσα να βρω σε ποια διεύθυνση αντιστοιχεί η θέση μνήμης 158 του PET...

19618

19619
 

sly*m

Retro Addict
Messages
549
Reaction score
1,403
Points
103
σε ποια διεύθυνση αντιστοιχεί η θέση μνήμης 158 του PET...
Από ότι βλέπω στο PET Memory Map η διεύθυνση $9Ε λέει πόσο πλήθος χαρακτήρων έχει ο keyboard buffer.
Μήπως αντιστοιχεί στην $C6 (198) του C64;

edit
Αχ σόρυ τώρα είδα ότι ψάχνεις για τους Commodore 16 & Plus/4 .... o_O Σωστά το έχεις κάνει στον C64....
το scribd έχει το memory map του plus4/16...
 
Last edited:

clemenza

Retro Addict
Messages
967
Reaction score
1,358
Points
93
Από ότι βλέπω στο PET Memory Map η διεύθυνση $9Ε λέει πόσο πλήθος χαρακτήρων έχει ο keyboard buffer.
Μήπως αντιστοιχεί στην $C6 (198) του C64;

edit
Αχ σόρυ τώρα είδα ότι ψάχνεις για τους Commodore 16 & Plus/4 .... o_O Σωστά το έχεις κάνει στον C64....
το scribd έχει το memory map του plus4/16...
Σε ευχαριστώ!

Το είχα βρει το memory map των C16 & Plus/4 χθες το απόγευμα, αλλά δεν κατάφερα να εντοπίσω την διεύθυνση που έψαχνα, γι' αυτό και κατέληξα στην λύση στην οποία κατέληξα (δουλεύει, οπότε...).

Επειδή ήθελα να δοκιμάσω να το μεταφέρω σε Amstrad CPC γνωρίζει κανείς πώς μπορούμε να διαβάσουμε ποιος χαρακτήρας υπάρχει σε μία θέση οθόνης στο συγκεκριμένο μηχάνημα; Γιατί, απ' όσα διάβασα, τα περιεχόμενα της οθόνης αποθηκεύονται μονάχα σε pixels, και όχι σε χαρακτήρες. Κατανοητό, αλλά μου φαίνεται λίγο περίεργο: τι χρησιμοποιούσαν δηλαδή για να φτιάξουν παιχνίδια σε BASIC; Αποθήκευαν σε πίνακα τα πάντα; o_O
 

clemenza

Retro Addict
Messages
967
Reaction score
1,358
Points
93
Επειδή ήθελα να δοκιμάσω να το μεταφέρω σε Amstrad CPC γνωρίζει κανείς πώς μπορούμε να διαβάσουμε ποιος χαρακτήρας υπάρχει σε μία θέση οθόνης στο συγκεκριμένο μηχάνημα; Γιατί, απ' όσα διάβασα, τα περιεχόμενα της οθόνης αποθηκεύονται μονάχα σε pixels, και όχι σε χαρακτήρες. Κατανοητό, αλλά μου φαίνεται λίγο περίεργο: τι χρησιμοποιούσαν δηλαδή για να φτιάξουν παιχνίδια σε BASIC; Αποθήκευαν σε πίνακα τα πάντα; o_O
Scratch that, το βρήκα. WTF, δυσκολεύτηκα πραγματικά, το φυλάνε σαν επτασφράγιστο μυστικό! Και συν τοις άλλοις, τα resources για Amstrad CPC στο web απ' ότι διαπιστώνω είναι ελάχιστα σε σχέση με τα αντίστοιχα του Commodore 64, σε φάση 1 προς 20! Εντάξει, είναι γεγονός ότι ο 64άρης πούλησε περισσότερο, επί περισσότερα χρόνια και σε όλον τον πλανήτη, αλλά παρόλα αυτά...

Anyway, πίσω στο θέμα μας, νομίζω ότι πλέον έχω ό,τι χρειάζομαι για να το μεταφέρω στον CPC. Μόλις βρεθεί λίγη ώρα I'll give it a go...
 

clemenza

Retro Addict
Messages
967
Reaction score
1,358
Points
93
Και μια και είχα γράψει για Amstrad, αποφάσισα να κάνω την έκπληξη και να σας την βγω από πίσω με VIC-20! ;)

Θα μου πείτε "ΟΚ, σιγά το δύσκολο, την ίδια BASIC έχει ο VIC με τον PET" και, σε μεγάλο βαθμό, θα έχετε και δίκιο. Έλα όμως που τούτος δεν χωράει 40 χαρακτήρες στη γραμμή, αλλά μονάχα 22! Όπερ και σημαίνει ότι οι αλλαγές σε σχέση με τον Commodore 64 και τους Commodore 16 και Plus/4 ήταν πολλαπλάσιες. Φυσικά, παρακολουθώντας προσεκτικά το βιντεάκι του 8bit Show and Tell όπου εξηγείται αναλυτικά το τι σημαίνει η κάθε μεταβλητή και το τι κάνει η κάθε εντολή τα πράγματα γίνονται πολύ απλά, με αποτέλεσμα...

19620

Ορίστε και το listing σε 2 parts, αφού με 22 χαρακτήρες ανά γραμμή δεν χωράνε και πολλά πράγματα στην οθόνη...

19621

19622

Για όσους κάνουν τον κόπο να το εξετάσουν, θα ήθελα να σταθώ σε 2 αλλαγές στις γραμμές 10 και 100. Στην 10 ορίζω την πρώτη διεύθυνση μνήμης για το χρώμα του κάθε χαρακτήρα στην οθόνη (Ι, από το Ink), και στην 100 κάνω POKE σε αυτή τη διεύθυνση το σωστό ink color. Γιατί; Διότι από κάποια παραξενιά του VIC-20 που δεν μπόρεσα να εντοπίσω, τύπωνε τον αστερίσκο με λευκό χρώμα σε λευκό φόντο! Βρε να ψάχνω, να κάνω, να ράνω, να σπάω το κεφάλι μου γιατί δεν φαίνεται ο αστερίσκος, μέχρι που, περνώντας τυχαία τον κέρσορα πάνω από το σημείο της οθόνης που είχε τυπωθεί - και καθώς ο κέρσορας αναβόσβηνε - διαπίστωσα ότι ΟΝΤΩΣ τυπωνόταν ο αστερίσκος, αλλά με λευκό χρώμα σε λευκό φόντο! Damn! Άλλη μια ώρα ζωής χαμένη για το τίποτα! :mad:

Anyway, αφού το βρήκα, πλέον κάθε φορά μετά την εμφάνιση στην οθόνη του αλλάζω και το χρώμα, οπότε όλα καλά. Επιπτώσεις στην ταχύτητα όλα αυτά δεν έχουν ουσιαστικές, καθώς ο VIC-20 είναι έτσι κι αλλιώς πιο γρήγορος στην BASIC από τον Commodore 64, αλλά και με την εκτύπωση 22 χαρακτήρων ανά γραμμή αντί για 40 υπάρχει μεγάλο κέρδος σε ταχύτητα εκτέλεσης. Αναγκάστηκα μονάχα να κάνω λίγο πιο στενό τον δρόμο (12 χαρακτήρες αντί για 13 στις άλλες εκδόσεις), οπότε γίνεται κάπως πιο δύσκολη η επίτευξη μεγάλου score...

Τέλος, να μην παραλείψω να αναφέρω ότι το να έχει κανείς στη διάθεσή του το εγχειρίδιο του υπολογιστή αλλά και τον - εξαιρετικό - TheC64 που λειτουργεί και σαν VIC-20 είναι, απλά, ευλογία. Άντε, και ελπίζω να επανέλθω σύντομα με κάποια άλλη έκδοση...

19623
 

Always Somewhere

Retro Mentor
Messages
1,034
Reaction score
2,039
Points
123
Πωω τι γίνεται εδώ μέσα!!!!

Μπορεί να μην καταλαβαίνω απο προγραμματισμό αλλα έχω εντυπωσιάσει με όλα αυτά που φτιάχνετε!!!!

Ήσαστε φοβεροί!! :thumbup:
 

clemenza

Retro Addict
Messages
967
Reaction score
1,358
Points
93
Πωω τι γίνεται εδώ μέσα!!!!

Μπορεί να μην καταλαβαίνω απο προγραμματισμό αλλα έχω εντυπωσιάσει με όλα αυτά που φτιάχνετε!!!!

Ήσαστε φοβεροί!! :thumbup:
Φίλε, νομίζω ότι ο sly*m είναι πραγματικά φοβερός από αυτά που έχουμε δει. Οι υπόλοιποι είμαστε απλά μεγάλα παιδιά που παίζουμε με τα παιχνιδάκια μας! ;)
 

ChrisTOS

Retro Enthusiast
Messages
310
Reaction score
489
Points
63
Φίλε, νομίζω ότι ο sly*m είναι πραγματικά φοβερός από αυτά που έχουμε δει. Οι υπόλοιποι είμαστε απλά μεγάλα παιδιά που παίζουμε με τα παιχνιδάκια μας! ;)
True story. Επίσης κατάλαβα πόσα έχω ξεχάσει
 

sly*m

Retro Addict
Messages
549
Reaction score
1,403
Points
103
Φίλε, νομίζω ότι ο sly*m είναι πραγματικά φοβερός από αυτά που έχουμε δει. Οι υπόλοιποι είμαστε απλά μεγάλα παιδιά που παίζουμε με τα παιχνιδάκια μας! ;)
:emoji_blush::emoji_blush::emoji_blush: Παιδιά και πάλι ευχαριστώ για τα καλά σας λόγια. Αυτά τα δύο micros που έχω από τότε, το 800 (1982) και ο ST (1987) ήταν η αιτία να ασχοληθώ επαγγελματικά με την ανάπτυξη λογισμικού... Και τώρα ακόμα ζω από αυτό, με κύριο βάρος το .net (PC;;;; o_O). Αν δεν ασχολούμαι για καιρό ξεχνάω το programming στα μικρά, αλλά έχω γράψει πολύ κώδικα και τον έχω όλο, ώστε να ξανακάνω catch. Π.χ στο challenge με τα rasters, η αρχικοποίηση του κώδικα μηχανής είναι από ένα πρόγραμμα scroller που είχα φτιάξει για έναν μικρό τηλεοπτικό σταθμό στην Αττική, όπου έπρεπε να μπω σε δικά μου interrupts και να βγώ πάλι στο gemdos επιτυχώς χωρίς να κρασάρω τον ST, ενώ τα ίδια τα rasters υπάρχουν στο digi-demo (στο demozoo).
Το programming έχει προχωρήσει πολύ στους μοντέρνους καιρούς και γι αυτό βλέπετε απίστευτα παιχνίδια και demos στα παλιά micros που στα χρόνια της ακμής τους δεν θα ονειρεύονταν καν οι προγραμματιστές τότε...
Σίγουρα βέβαια υπάρχουν και άλλοι εδώ και μάλιστα πολύ καλύτεροι από μένα και που έχω βαθειά εκτίμηση γιατί είναι καλά παιδιά αλλά και μου έχουν δείξει πράγματα που είτε δεν θα τα έβλεπα αλλιώς, είτε θα μου έπαιρνε πολύ χρόνο να καταλάβω. :emoji_blush::emoji_blush::emoji_blush:
 

sly*m

Retro Addict
Messages
549
Reaction score
1,403
Points
103
Μόνο BASIC; Γιατί όχι C αν υπάρχει κάποιος compiler; Φυσικά όποιος θέλει μπορεί να το γράψει σε οποιαδήποτε γλώσσα προγραμματισμού.

Υπολογισμός ψηφίων π. Εδώ για τον ZX81, το listing είναι από τον πρωτότυπο κώδικα.

edit: Εδώ είναι τα πρώτα 1000 ψηφία του π για έλεγχο.

Code:
#include <stdio.h>

int main() {
    int r[2800 + 1];
    int i, k;
    int b, d;
    int c = 0;

    for (i = 0; i < 2800; i++) {
        r[i] = 2000;
    }

    for (k = 2800; k > 0; k -= 14) {
        d = 0;

        i = k;
        for (;;) {
            d += r[i] * 10000;
            b = 2 * i - 1;

            r[i] = d % b;
            d /= b;
            i--;
            if (i == 0) break;
            d *= i;
        }
        printf("%.4d", c + d / 10000);
        c = d % 10000;
    }

    return 0;
}
 
Last edited:

clemenza

Retro Addict
Messages
967
Reaction score
1,358
Points
93
Μόνο BASIC; Γιατί όχι C αν υπάρχει κάποιος compiler; Φυσικά όποιος θέλει μπορεί να το γράψει σε οποιαδήποτε γλώσσα προγραμματισμού.

Υπολογισμός ψηφίων π. Εδώ για τον ZX81, το listing είναι από τον πρωτότυπο κώδικα.

Code:
#include <stdio.h>

int main() {
    int r[2800 + 1];
    int i, k;
    int b, d;
    int c = 0;

    for (i = 0; i < 2800; i++) {
        r[i] = 2000;
    }

    for (k = 2800; k > 0; k -= 14) {
        d = 0;

        i = k;
        for (;;) {
            d += r[i] * 10000;
            b = 2 * i - 1;

            r[i] = d % b;
            d /= b;
            i--;
            if (i == 0) break;
            d *= i;
        }
        printf("%.4d", c + d / 10000);
        c = d % 10000;
    }

    return 0;
}
Χμμμμ... δεν είμαι και τόσο σίγουρος εάν ο προγραμματισμός σε C εμπίπτει στα πλαίσια του παρόντος thread όπως καθορίσθηκε στο 1ο post:

Βρίσκουμε ένα listing από κάποιο περιοδικό, ελληνικό η ξενο και το γράφουμε. Αλλά το listing πρέπει να είναι για διαφορετικό υπολογιστή από τον υπολογιστή στόχο. Έτσι αν το πρόγραμμα είναι για spectrum θα πρέπει να μεταφερθεί πχ σε cpc.
Δεν αναφέρεται φυσικά πουθενά η λέξη "BASIC" αλλά νομίζω ότι εννοείται, καθώς αυτή ήταν η γλώσσα με την οποία ήταν εξοπλισμένοι οι υπολογιστές των 80s και σε αυτήν είναι γραμμένο το 99,99% των listings για 8μπιτα (αφήνω έξω ένα 0,01% που είναι σε Forth για τον Jupiter Ace).

Προσωπικά θεωρώ ότι υπάρχει... άπειρη ύλη για να ασχοληθούμε σε BASIC προτού μεταπηδήσουμε στην C. Δεν ξέρω πώς το βλέπουν οι υπόλοιποι φυσικά, αλλά από τη δική μου οπτική σε ό,τι έχει να κάνει με το εν λόγω topic η BASIC είναι μονόδρομος...
 

sly*m

Retro Addict
Messages
549
Reaction score
1,403
Points
103
Το θέμα είναι η C ή ότι δεν είναι από έντυπο; Γιατί έχουν δημοσιευτεί εδώ και listings από το web... Αν βρεθεί listing σε C σε έντυπο για κάποιο παλιό micro είναι οκ;
Νομίζω οι αλγόριθμοι έχουν περισσότερη σημασία από την γλώσσα...
 
Top