Artículos con la etiqueta 'Commodore-64'

Emulador de Commodore 64 JavaScript

Un poco de tiempo atrás me informaron de una versión de un emulador de Commodore 64 escrito en Adobe ActionScript 3.0, ahora en una nueva versión :

Commodore 64 Emulator in Adobe Flash

Continuación ...

Undolog: estaciones de trabajo entre pasado y presente

El otro día me encontré con algunas fotos antiguas con mi primer ordenador! Así que se me ocurrió fotografiar a mi posición actual y compararlo con el "tiempo" ha pasado. Las imágenes se encuentran, obviamente, de mala calidad, en comparación con la corriente, otro signo de los tiempos!

Continuación ...

Saludos profesor Falken

Tengo una tradición que sigo desde hace 25 años! Que con mucho gusto celebrar! Desde aquel día de 1983, el año de su lanzamiento, debo una vez al año viendo Juegos de guerra (War Games), la película ha decidido que, de alguna manera, mi destino de trabajo.

WarGames

Juegos de guerra , en su "actual" la sencillez, a la vez fue un verdadero éxito, especialmente entre los entusiastas de la informática.

Continuación ...

El módulo de cálculo

El "módulo" es uno de los aritmentiche disponible en casi todos los lenguajes de programación (Que lo utilicé por primera vez con la base de Commodore 64) . Puede aparecer como un operador simple, como en el caso de ActionScript o JavaScript, que utilizan el carácter "por ciento" (b%), o como un método o una instrucción. Para los desarrolladores pueden ser útiles en contextos aparentemente diferentes. Gskinner habló recientemente, que muestra algunos ejemplos clásicos, pero interesante.

En pocas palabras, la operación devuelve dos números de forma que el resto de su división. Para completar, se dice que la operación del módulo es un tema muy amplio, lo que dije en el cifrado RSA ! Esta vez, sin embargo, hablar de códigos o cifrados, pero las cosas útiles mucho más simple.

Divisible por alternar ...

El primer uso que podemos hacer la operación del módulo es determinar si un número es divisible por un número b! Si el risultatto de a% b (% usaré aquí la notación para indicar el funcionamiento del módulo) es igual a cero, uno es divisible por b. Recuerdo que cuando tenía que ver con un problema como yo no sabía de la operación del módulo. En el Commodore 64 que necesitaba saber si un número es divisible por 2. En el momento en que utiliza esta sintaxis (He encontrado el código origionale - año 1983):

1
2
3
10 INPUT A
12 B = A / 2: Si B = INT (B) THEN PRINT "Aceptar El Número" A "Y" EQUAL ": GOTO 10
14 print "El numero" A "Y" ODD ": GOTO 10

El BASIC de la Commodore 64, sin embargo, no tienen el módulo de operación - por lo menos que yo recuerde!

Básicamente lo que yo estaba haciendo eso por su propia naturaleza hace que el funcionamiento del módulo: 2 verificado que la división no tuvo descanso, en este caso, comprobar que el resultado no contiene decimal ( IF B = INT(B) )! Si la operación de división es igual a su total, el número es igual!

Si a tener nuestro valor a la prueba, lo mismo puede ser resuelto por:

1
2
3
a % 2 ) == 0 ) { if ((a% 2) == 0) {
/ / Incluso
}

O, por 3, por:

1
2
3
a % 3 ) == 0 ) { if ((un 3%) == 0) {
/ / Divisible por 3
}

Pequeña nota: gracias a la pista si tiene que ver con las potencias de 2 annche hay una manera más rápida de comprobar si un número es par o impar. En la notación binaria, de hecho, los números son iguales a cero el primer bit! Por lo tanto, usando los operadores lógicos, se puede saber si un número es par o impar simplemente "protestantes" que el primer bit:

1
2
3
! ( a & 1 ) ) { if ((a + 1)) {
/ / Incluso
}

En la Asamblea, por ejemplo, esto es pan de cada día! Es aún más inmediata y simple (el Motorola 68020, por ejemplo, había una instrucción BTST que "probó" un poco sola ;) ). – moltiplicazione bit a bit) tra il nostro valore a e 1 (chiamato maschera ). Las operaciones lógicas (AND, OR, NOT, XOR, etc ...), de hecho, se sabe que son más rápidos en términos de carrera, y luego "máquina del tiempo"! (a & 1) realiza la operación lógica de Y ( & - Multiplicación bit a bit) entre nuestro valor a , y 1 (llamada máscara). Si a = 7 (00000111), por ejemplo:

1
2
3
Y 00000111
= 00000001
00000001; extraño

Si a 8 =:

1
2
3
Y 00001000
= 00000001
00000000, la igualdad de

No sólo podemos ver los números, es decir, con el primer bit a 0, y por lo tanto divisible por 2, pero también puede ocurrir si un número es divisible por 4, 8, 16, 32, 64, etc ... utilizando los formularios correspondientes:

1
2
3
! ( a & 3 ) ) { if ((a + 3)) {
/ / Divisibles por 4 (mask = 00.000.011 = 3), desde el 4 es 00000100)
}

Si los dos últimos bits se ponen a cero el número es divisible por 4! Si los últimos 3 bits (máscara 00.000.111) son a cero el número es divisible por 8! Etcétera :)

Gskinner muestra el uso del módulo en el caso de la generación de alternativas de valores. Un ejemplo clásico es cambiar el fondo de una lista de temas:. Blanco y gris Gskinner ofrece:

1
2
3
4
5
rowIndex % 2 == 0 ) { if (rowIndex% 2 == 0) {
rowColor = 0xFFFFFF;
{ Else {}
rowColor = 0xCCCCCC;
}

En primer lugar, el código anterior se puede resolver con una sola línea de código:

1
2 == 0 ) ? 0xFFFFFF : 0xCCCCCC ; rowColor = (rowIndex% 2 == 0) 0xFFFFFF: 0xCCCCCC;?

Por otra parte, en este caso, me volvería a evitar realmente realizar una "fuerte" forma de operación. Esta situación particular es a menudo participan en un bucle, por lo que sería "bueno" no desperdiciar ciclos de reloj de la máquina. En estos casos me gusta más limpio (y lógica): Se

1
fooIndex == false ) ) ? 0xFFFFFF : 0xCCCCCC ; rowColor = (= fooIndex (fooIndex == false)) 0xFFFFFF: 0xCCCCCC;

o false , a seconda di come vogliamo impostare inizialmente il nostro colore sfondo. Donde fooIndex precedentemete es un valor establecido en true o false , dependiendo de la forma en que inicialmente nuestro color de fondo. Este enfoque es más sutil, menos inmediato, en un primer momento, pero más rápido, ya que realiza lógica de verdadero / falso. la condizione (fooIndex == false) sarà falsa e di conseguenza fooIndex verrà impostato da true a false. Si fooIndex es verdad, cuando se ejecuta la instrucción (fooIndex = (fooIndex == false) ) la condición (fooIndex == false) es falsa y por lo tanto fooIndex se establecerá de verdadero a falso. verrà impostato da false a true! La segunda vez, sin embargo, la condición (fooIndex == false) es cierto y luego fooIndex se encuentra de false a true! Y así sucesivamente ...

Repeticiones: para ver el comportamiento

La aritmética finita, que es la base del funcionamiento de la operación del módulo, se refiere a menudo como la aritmética del reloj. Un reloj clásico tiene un disco con las manos divididas en 12 horas (12 más 12 de día y noche!), Suficiente para indicar cualquiera de las 24 horas del día. A las 08:00 AM Si te pregunté a qué hora el reloj marcará entre 18 horas, su respuesta sería de 8 +18 = 26! Pero la 2:00 de la noche! Involuntariamente y sin saberlo, tal vez, realizar operaciones de forma cada vez conitnuamente se trata de tiempos.

En Italia se utilizan para el sistema de 24 horas (o mixto). Cuando señalamos a las 16:00 horas de la intención de que en otros países se indica como 04:00 pm. ¿Quién utiliza el am postfix / h de distinguir de las horas de la noche OFA, incluso con más frecuencia realiza la operación del módulo, el módulo 12, en este caso! Los italianos, y otros, sin embargo, estar acostumbrado a considerar las 24 horas, realizar operaciones con el Formulario 24!

Cuando estoy 11 de la mañana (11:00 para todos) y que "en cinco horas", los italianos responden 5 +11 = 16 (cuatro de la tarde), un extraño podría también responder a 5 +11 = 16:00. Desde el 5 + 11 aritmética clásica, es, obviamente, 16, al igual que el extraño para satisfacer 16:00? Simplemente ejecute el módulo 12 en el resultado: 5 + 11 = 16 mod 12 = 4. No es necesario que se tome una calculadora para verificar la exactitud de los cálculos, pero estas medidas son "un poco de todo, muestra una cara de un reloj y colocar las manos sobre los 11 mentalmente, a continuación, añadir - siempre visualmente - 5 horas, como por arte de magia que realmente va a alrededor del 4! Es por eso que se llaman las cuatro de la tarde 16 :)

En Italia, en cambio, se utiliza un formulario 24, de hecho: 11 +5 = 16 mod 24 = 16. Cuando estoy a 23:00 pm, cinco horas después de la 28:00, no se, porque modulo 28 12 = 4! 122514884225 Formulario 24 = 17! Lo que pasa es que el resultado clave de la Forma 24 no será superior a 24. Pero lo más interesante es que los números se repiten indefinidamente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1% de 24 = 1
2% de 24 = 2
3% de 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
...

Esta repetición es una facilidad desarmante. Imagine, por ejemplo, deben tener un objeto, un clip de película, similar a un tablero de ajedrez, en cuatro columnas. Crear un quandrato MovieClip, 55 × 55 píxeles y el esportiamolo panel de propiedades como Simbolo . El siguiente código tiene cuatro columnas de nuestro clip de película y la "cabeza" con la operación del módulo:

1
2
3
4
5
6
7
Number = 4 ; var col: Número = 4;
var i= 0 ; i < 12 ; i ++ ) { for (var i = 0; i <12; i + +) {
Sprite = new Simbolo ( ) ; var s: Sprite = new Symbol ();
s ) ; addChild (s);
= ( i % col ) * 60 ; s. = x (con i%) * 60;
= Math . floor ( i / col ) * 60 ; s. y = Matemáticas . piso (i / col) * 60;
}

cresce in modo indefinito. Como se puede ver en el código, la variable i ciclo for cultivo de forma indefinida. Sin embargo, la coordenada x que nunca de nuestro clip de película supera un determinado valor, y se repite indefinidamente! Aquí está un ejemplo concreto:

Cargando flash ...

A través de las dos ruedas se puede variar el número de columnas (la forma) y el número total de elementos, usando el algoritmo anterior.

Continuación ...

Lenguajes de programación

I "revivió", escribió este artículo mío un poco "de años atrás. I revisado ligeramente, la actualización de un poco aquí y allá, pero creo que sigue siendo pertinente e interesante.

INTRODUCCIÓN

¿Qué es un lenguaje de programación? Una computadora, también conocido como PC (Personal Computer), tiene un lenguaje personal. Este lenguaje se llama código de máquina, en el sentido de que cada máquina, por lo que cualquier ordenador (PC compatible, Apple, Unix, etc ...), tiene una. Único y exclusivo Los programas que vemos "run" en nuestro PC se lleva a cabo principalmente por el misterioso objeto llamado microprocesador. Este es el corazón, el módulo inteligente, cada equipo. De hecho, sólo una aplicación no se está ejecutando, pero es apoyado por el microprocesador, por así decirlo, a lo que se llama un sistema operativo: una capa de software suministrado por el fabricante de la máquina (véase, por ejemplo, el Apple Macintosh).

Continuación ...

Érase una vez ...

Vídeo Anuario 1984 "Érase una vez" un momento en que la palabra no tenía ordenador personal significado. Era la época de los gadgets de la consola, los pequeños que se conectan a la TV, los precursores de la Playstation en la actualidad. Y realmente se podía ver en las revistas de todos los colores: Intellivision, Atari , Philips, máquinas de gran tamaño - de momento - que la diversión garantizada, junto con asombro. Y aquí están las primeras revistas, tales como el anuario de los videojuegos (en la foto) en 1984. Los anuncios, apelando a la vez, mostró una tecnología nunca antes vista. No fue el Colecovision, con su sistema de juego de vídeo ", una consola de sobremesa para juegos de video en los cartuchos de las normas ColecoVision," el excepcional precio de 485.000 liras.

Continuación ...

Saludo

Commodore 64

Todo comenzó a partir de aquí ... mis mejores deseos a mi primer ordenador personal, como se anunció en el momento en que, si bien es técnicamente más, siempre será igual en el alma y la memoria de muchos!

Continuación ...

Emulador ensamblador 6502

Mientras estamos en el tema de la nostalgia, he aquí una buena emulación de la histórica microprocesador 6502 , montado en los años 80 en la consola y las computadoras de Apple como el NS, Commodore y el Nintendo 64 (en ese entonces en el paso 6510, ...). Esta pequeña joya lindo está escrito totalmente en JavaScript que se ejecuta en casi todos los navegadores (Safari Opera), con la única desventaja de ser un poco lento. Pero vale la pena. En la página web ( http://www.6502asm.com/ ) que se encuentran algunos buenos ejemplos, pero la lente curioso.

Continuación ...

Código de Commodore 64

Me recuperé mi cuadra para ver el Commodore 64 puertos dell'emultatore FC64 propuesta Quach post it! Desafortunadamente, algunas de las características del teclado no son muy logrado hacer que funcionen, para que pudiera tratar de poner algunas listas interesantes (viejos recuerdos nostálgicos). Si te acuerdas de la Commodore 64 tenían combinaciones especiales se utiliza al escribir código básico, como el símbolo de la R negativo (hacia atrás) o el pequeño corazón, siempre negativo, para limpiar la pantalla.

Continuación ...

Emulador de Commodore 64 Web

Si usted lee los últimos dos puestos que escribí ( Software Net y emulador de Amiga Web ), esta parece ser la consecuencia directa. A propósito, entonces, de los emuladores y Flash 9 con ActionScript 3.0, aquí hay algo realmente grande, a excepción de la nostalgia. El proyecto se llama FC64 y quiere ser de bajo nivel de emulación de la gloriosa Commodore 64! Fue escrito en ActionScript 3.0, y luego a ver la película (me siento raro para llamar a esta película algo así ...), debe instalar la versión 9 del plugin de Adobe.


Commodore 64 a 9 Emulador Web Flash

Continuación ...