Un peu de "temps auparavant, je rapporté une version d'un émulateur Commodore 64 écrit en Adobe ActionScript 3.0, maintenant dans une nouvelle version :
Articles taggés avec 'Commodore-64'
Commodore 64 émulateur JavaScript
Undolog: postes de travail entre passé et présent
L'autre jour je suis tombé sur de vieilles photos avec mon premier ordinateur! Alors il m'est apparu à photographier mon poste actuel et de le comparer avec le «temps» est passée. Les images trouvées sont évidemment de mauvaise qualité, par rapport à l'actuel, un autre signe des temps!
Salutations Professeur Falken
J'ai une tradition que je porte depuis 25 ans! C'est un plaisir de célébrer! Depuis ce jour, 1983, l'année de sa sortie, je dois une fois par an en regardant WarGames (Jeux de Guerre), le film a décidé que, en quelque sorte, mon destin travail.
WarGames , dans son "courant" la simplicité, à l'époque était un véritable succès, surtout chez les passionnés d'informatique.
Le module de calcul
Le «module» est l'un des aritmentiche disponible sur presque tous les langages de programmation (Je l'ai utilisé la première fois avec la base de Commodore 64) . Peut apparaître comme un opérateur simple, comme dans le cas d'ActionScript ou JavaScript, qui utilisent toutes deux le caractère "pour cent" (b%), ou comme une méthode ou une instruction. Pour les développeurs peuvent être utiles dans des contextes apparemment différents. Gskinner parlé récemment, montrant quelques exemples classiques mais intéressants.
Dit simplement, l'opération renvoie deux nombres forment le reste de leur division. Pour être complet, nous disons que le fonctionnement du module est un sujet très vaste, dont j'ai discuté dans le cryptage RSA ! Cette fois, cependant, ne parle pas des codes ou des chiffres, mais des choses utiles beaucoup plus simple.
Divisible par alternance ...
La première utilisation, nous pouvons rendre le fonctionnement de ce module est de déterminer si un nombre est divisible par un nombre B! Si le risultatto d'un b% (% je vais utiliser ici la notation pour indiquer le fonctionnement du module) est nul, a est divisible par b. Je me souviens quand j'ai eu à faire à un problème que je ne connaissais pas le fonctionnement du module. Sur le Commodore 64 j'avais besoin de savoir si un nombre est divisible par 2. A l'époque j'ai utilisé cette syntaxe (j'ai trouvé le code de origionale - année 1983):
1 2 3 | 10 INPUT A 12 B = A / 2: si B = INT (B) THEN PRINT "OK LE NOMBRE« A »ET« EQUAL »: GOTO 10 14 print "Le nombre" A "ET" bizarre ": GOTO 10 |
La base du Commodore 64, cependant, n'ont pas le fonctionnement du module - au moins que je me souviens!
Fondamentalement exactement ce que je faisais que par sa nature rend le fonctionnement du module: 2 vérifié que la division avait pas de repos, dans ce cas, vérifiez que le résultat ne contient pas de décimal ( IF B = INT(B) )! Si l'opération de division est égal à son maximum, puis le nombre est égal!
Si a avoir notre valeur à tester, la même chose peut être résolu par:
1 2 3 | a % 2 ) == 0 ) { if ((2%) == 0) { / / Même } |
Ou, pour 3, par:
1 2 3 | a % 3 ) == 0 ) { if ((a% 3) == 0) { / / Divisible par 3 } |
Petite note: grâce à la piste si vous avez à faire avec les puissances de 2 annche il un moyen plus rapide pour vérifier si un nombre est pair ou impair. En notation binaire, en fait, les nombres sont tous égaux à zéro le premier bit! Ainsi, en utilisant les opérateurs logiques, vous pouvez savoir si un nombre est impair ou même simplement «protestant» le premier bit:
1 2 3 | ! ( a & 1 ) ) { if ((a + 1)) { / / Même } |
À l'Assemblée, par exemple, ce n'est du pain et du beurre! Il est encore plus immédiate et simple (le Motorola 68020, par exemple, avait une instruction BTST que "testé" juste un seul bit
). – moltiplicazione bit a bit) tra il nostro valore a e 1 (chiamato maschera ). Les opérations logiques (ET, OU, NON, XOR, etc ...), en fait, sont connus pour être plus rapide en termes de courir, et puis "time machine"! (a & 1) effectue l'opération logique de ET ( & - Multiplication bit à bit) entre notre valeur a , et 1 (appelé masque). Si a = 7 (00000111), par exemple:
1 2 3 | 00000111 ET = 00000001 00000001; impairs |
Si a 8 =:
1 2 3 | 00001000 ET = 00000001 00000000, égale |
Non seulement nous pouvons vérifier les numéros, qui est, avec le premier bit à 0, et donc divisible par 2, mais peut également se produire si un nombre est divisible par 4, 8, 16, 32, 64, etc ... en utilisant les formulaires appropriés:
1 2 3 | ! ( a & 3 ) ) { if ((a & 3)) { / / Divisible par 4 (masque = 00000011 = 3), puisque 4 est 00000100) } |
Si les deux derniers bits sont mis à zéro le nombre est divisible par 4! Si les trois derniers bits (masque 00000111) sont à zéro le nombre est divisible par 8! Et ainsi de suite ![]()
Gskinner montre l'utilisation du module en cas de génération alternante des valeurs. Un exemple classique est de changer le fond d'une liste d'éléments:. Un blanc et un gris Gskinner propose:
1 2 3 4 5 | rowIndex % 2 == 0 ) { if (rowIndex% 2 == 0) { = 0xFFFFFF appeler rowColor; { Else {} appeler rowColor = 0xCCCCCC; } |
Tout d'abord, le code ci-dessus peuvent être résolus avec une seule ligne de code:
1 | 2 == 0 ) ? 0xFFFFFF : 0xCCCCCC ; appeler rowColor = (rowIndex% 2 == 0) 0xFFFFFF: 0xCCCCCC;? |
Par ailleurs, dans ce cas précis, je voudrais éviter d'effectuer une réalité "lourd" sous forme d'opération. Cette situation particulière est souvent engagé dans une boucle, de sorte qu'il serait "bon" ne pas perdre de cycles d'horloge de la machine. Dans ces cas, j'aime le plus propre (et logique) solution:
1 | fooIndex == false ) ) ? 0xFFFFFF : 0xCCCCCC ; appeler rowColor = (fooIndex = (fooIndex == false)) 0xFFFFFF:? 0xCCCCCC; |
o false , a seconda di come vogliamo impostare inizialmente il nostro colore sfondo. Où fooIndex precedentemete est une valeur définie au true ou false , selon la façon dont nous avons d'abord mis notre couleur de fond. Cette approche est plus subtile, moins immédiates, au premier abord, mais plus rapide car il effectue logiquement vrai / faux. la condizione (fooIndex == false) sarà falsa e di conseguenza fooIndex verrà impostato da true a false. Si fooIndex est vrai, lorsque l'instruction est exécutée (fooIndex = (fooIndex == false) ) la condition (fooIndex == false) est faux et par conséquent fooIndex sera fixé de true à false. verrà impostato da false a true! La deuxième fois, cependant, la condition (fooIndex == false) est vraie et ensuite fooIndex est du faux à vrai! Et ainsi de suite ...
Répétitions: à surveiller le comportement
L'arithmétique finie, qui est la base du fonctionnement de l'exploitation du module, il est souvent désigné comme l'arithmétique d'horloge. Une pièce d'horlogerie classique a un cadran avec des mains divisées en 12 heures (12, plus 12 jours de nuit!), Suffit à indiquer l'un des 24 heures par jour. A 08h00 Si je vous ai demandé à quelle heure votre montre score entre 18 heures, votre réponse serait de 8 +18 = 26! Mais l'02:00 dans la nuit! Involontairement et sans le savoir, peut-être, effectuer des opérations conitnuamente formulaire chaque fois que nous avons affaire à temps.
En Italie, nous sommes habitués au système de 24 heures (ou mixte). Quand nous point à 16h00 heure de l'intention que dans d'autres pays est indiqué comme h 04:00. Qui utilise le suis postfix / h à distinguer de ces heures de nuit OFA, plus souvent encore exécute l'opération du module, le module 12 dans ce cas! Nous, les Italiens, et d'autres, cependant, étant habitués à considérer les 24 heures, effectuer des opérations avec le formulaire 24!
Quand je suis 11 heures du matin (11h00 pour tous) et de penser "en 5 heures», les Italiens répondent 5 11 = 16 (quatre dans l'après-midi), un étranger pourrait aussi répondre à 5 +11 = 16 heures. Depuis 5 + 11 arithmétiques classiques, est évidemment 16, ainsi que de l'étranger pour répondre aux 16 heures? Il suffit de lancer le module 12 sur le résultat: 5 + 11 = 16 mod 12 = 4. Il n'est pas nécessaire que vous preniez une calculatrice pour vérifier l'exactitude du calcul, mais ces mesures sont un peu "tout, affiché un visage d'une horloge et placer les mains sur les 11 mentalement, puis ajouter - toujours visuellement - 5 heures, comme par magie, vous aurez en fait environ 4! C'est pourquoi ils sont appelés les quatre dans l'après-midi 16 ![]()
En Italie, au contraire, nous utilisons une formule 24, en fait: 11 +5 = 16 mod 24 = 16. Quand je suis à 23:00 h, 5 heures après l'28:00 ne sera pas, parce que 28 modulo 12 = 4! 122514884225 Formule 24 = 17! Qu'est-ce qui se passe est que le résultat clé de la formule 24 ne dépassera jamais 24. Mais la chose la plus intéressante est que les numéros sont répétés indéfiniment:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 1% 24 = 1 2% 24 = 2 3% 24 = 3 ... 22% 24 = 22 23% 24 = 23 24% 24 = 0 25% 24 = 1 26% 24 = 2 27% 24 = 3 ... 48% 24 = 0 49% 24 = 1 50% 24 = 2 51% 24 = 3 ... |
Cette répétition est une désarmante facilité. Imaginez, par exemple, ils doivent avoir un objet, un objet MovieClip, semblable à un échiquier, en quatre colonnes. Créer un quandrato MovieClip, 55 × 55 pixels et la esportiamolo panneau de propriétés comme Simbolo . Le code suivant aura quatre colonnes de notre MovieClip et sera la "tête" avec le fonctionnement du module:
1 2 3 4 5 6 7 |
cresce in modo indefinito. Comme vous pouvez le voir dans le code, la variable i cycle de for grossir indéfiniment. Mais la coordonnée x de notre MovieClip ne dépasse jamais une certaine valeur, et répète indéfiniment! Voici un exemple concret:
Grâce aux deux boutons vous pouvez varier le nombre de colonnes (la forme) et le nombre total d'éléments, en utilisant l'algorithme ci-dessus.
Langages de développement
J'ai fait «revivre» cet article de la mine a écrit un peu "d'années. J'ai légèrement modifié, mettant à jour un petit peu ici et là, mais je pense qu'il est toujours pertinent et intéressant.
INTRODUCTION
Ce qui est un langage de développement? Un ordinateur, PC alias (Personal Computer), a un langage personnel. Ce langage est appelé code machine, signifiant que chaque machine, donc n'importe quel ordinateur (compatible PC, Apple, Unix, etc ...), a un. Uniques et brevetées Les programmes que nous voyons "run" sur nos PC sont principalement menées par l'objet mystérieux appelé un microprocesseur. C'est le cœur, le module intelligent, chaque ordinateur. En fait, une seule application ne fonctionne pas, mais est pris en charge par le microprocesseur, pour ainsi dire, à ce qu'on appelle un système d'exploitation: une couche logicielle fournie par le fabricant de la machine (voir, par exemple, le Macintosh d'Apple).
Il était une fois ...
"Il était une fois" une époque où le mot n'avait pas l'ordinateur une signification personnelle. C'était l'époque de la console, de petits gadgets qui sont connectés à la TV, les précurseurs de la Playstation aujourd'hui. Et vraiment on pouvait voir dans les magazines de toutes les couleurs: Intellivision, Atari , Philips, les grosses machines - pour l'époque - que plaisir garanti couplé avec étonnement. Et voici les premières revues, telles que l'annuaire de jeux vidéo (en photo) en 1984. Les annonces, appelant à l'époque, a montré une technologie jamais vu auparavant. Il y avait la Colecovision, avec son système de jeu vidéo », une console de salon pour les jeux vidéo sur les normes ColecoVision cartouches», au prix exceptionnel de 485 000 lires.
Voeux

Tout a commencé par ici ... meilleurs voeux à mon ordinateur personnel d'abord, comme il a été annoncé à l'époque que, bien qu'il est désormais techniquement plus, restera toujours inégalée dans l'âme et la mémoire de beaucoup!
Assembleur émulateur 6502
Alors que nous sommes sur le thème de la nostalgie, voici une belle émulation de l'historique de 6502 microprocesseur , monté dans les années 80 dans la console et les ordinateurs que les NS Apple, Commodore et la Nintendo 64 (alors à l'étape 6510, ...). Ce bijou mignon est entièrement écrit en JavaScript, fonctionnant sur quasiment tous les navigateurs (Safari Opera), avec le seul inconvénient étant un peu lent. Mais vaut la peine. Sur le site ( http://www.6502asm.com/ ) ont trouvé quelques beaux exemples, mais l'objectif curieux.
Code pour le Commodore 64
J'ai récupéré mon bloc pour voir le Commodore 64 ports dell'emultatore FC64 proposé Quach Message elle! Malheureusement, certaines fonctions du clavier ne sont pas tout à fait réussi à les faire travailler, afin que je puisse essayer de mettre quelques listes intéressantes (vieux souvenirs nostalgiques). Si vous vous souvenez le Commodore 64 avait des combinaisons spéciales utilisées lors de l'écriture de code de base, comme le symbole de la R négatives (arrière) ou le petit cœur, toujours négatif, pour essuyer l'écran.
Web Commodore 64 Emulator
Si vous lisez les deux derniers messages que j'ai écrit ( Logiciel Net et Web Amiga Emulator ), ce qui semble être la conséquence directe. A propos, alors, des émulateurs et Flash 9 avec ActionScript 3.0, voici quelque chose de vraiment formidable, sauf pour la nostalgie. Le projet est appelé FC64 et veut être de bas niveau d'émulation des 64 glorieuses Commodore! Il a été écrit en ActionScript 3.0, et ensuite de voir le film (je me sens bizarre d'appeler ce film un truc comme ça ...), vous devez installer la version 9 du plugin Adobe.









Derniers Commentaires
Simon : Il agace perturbés à nouveau et utiliser cet espace pour ces choses ... Mais ça ne fonctionne pas ...
Giovambattista Fazioli : @ Simon: ce pourrait être dû à la syntaxe que j'ai utilisé, spécialement pour PHP 5 +,...
Simon : J'ai essayé hier soir de mettre le tout dans functions.php, d'accord, les formes jquery, et les onglets jQueryUI eux ...
Giovambattista Fazioli : @ Simon: Je recommande le nettoyage d'entrer un code comme celui de ...
Simon : @ Giovambattista Fazioli: Je vous remercie pour votre patience, c'est tout clair ... maintenant je me sens maintenant, ...