Hace 9 años | Por meneante2015 a thad.frogley.info
Publicado hace 9 años por meneante2015 a thad.frogley.info

Soy un programador. Escribo juegos.Los programadores de juegos obtienen mucho respeto, Ninguno de ellos merece el honor que quiero otorgar a David Horne. Esto se debe a que David Horne escribió el mayor programa jamás escrito: ajedrez 1k en el ZX81. David Horne no es un mito urbano . David Horne logró lo que muchos incluso podrían considerar ahora imposible. Escribió un juego de ajedrez, incluso la inteligencia artificial, que se ejecutaba en una mal documentada, máquina con errores que contenía sólo 1k de memoria.

Comentarios

D

#8 no va por ningun lado, es solo un troleo

D

#4 Como estudiante de programación, te doy la razón.

P

#4

Vermel

#29 Ese tipo pica en binario

asdsahhre kmasdiomjnn dehoi io " " hdsa
" ddsadjh,kkpokññjdsad
""" >>> > dfsdjfnkjn>>Z rtebbhdasdsaduiortebb 2'2 hds9raantelemnt
$function() {
$(label, modificacion de la consulta del formulario

cristihg

#29 Gran rmbr hahah

o

#4 los títulos no tienen foto. Te ahorras el paso de quitar la grapa. Puede limpiarte el Ohio directamente sin preocuparte por molestas rozaduras.

Peka

#4 Pringado, el que menos gana son unos 24.000 al año, pero si ya tienes experiencia ganas 34.000 o mas. Y si te vas al extranjero ni te cuento. Además siempre sentados en una oficina y cómodos.

t

#42 No es eso lo que dice el convenio, grupo 3, para programadores junior (con menos de no sé cuántos años de experiencia)... el salario se mueve entre los 14000 y 15000.

Peka

#58 Estamos por encima de tablas todos, esos sueldos que dicen los cobran los operadores de CAU y muchos mas que eso.

cristihg

#42 Aquí en UK un programador decente cobra +40k£, si ya eres muy bueno y estas especializado en alguna tecnología, normalmente si tienes también conocimientos de economía sube a +80-100K£. Programadores de Android/iOS están en torno a los 60k. Igualito que en españistan vamos.

D

#42 Esto es muy fácil de comprobar. ¿Cuantos programadores hay por aquí que cobren menos de 24000€ al año?

Peka

#62 Yo no, estoy por encima.

D

#42 No se, eso de sentados en una oficina y cómodos me choca. ¿Has programado alguna vez para una empresa?. Te digo que es de los trabajos más duros y jodidos.

Peka

#66 Llevo unos 17 años.

D

#4 te iba a votar positivo pero no lo hago por quitarle la grapa al titulo. Te estas perdiendo la mejor parte.

#4 Ve a una consultora informática diciendo que programas una ajedrez en ensamblador, a ver si les resulta de utilidad y te pagan mas...

Ovlak

#4 pues a partir de ahora todos los arquitectos a cobrar 12k salvo que sean capaces de diseñar la sagrada familia.

D

#4 Entonces te referirás a desarrolladores ¿no?

D

#4 legendario master trolling award lol

D

#11 Errrrr .... ¿Qué herramientas y lenguajes limitados? ambos están escritos en assembler de 16 bits, ambos usan la bios para ahorrarse las rutinas de impresión en pantalla y gestión del teclado. El Z80 y el 8086 son equiparables en potencia aunque el x86 direccione más memoria gracias al truco de los segmentos.

NapalMe

#15 El z80 es de 8bits.

D

#17 Nopes. el bus de datos es de 8 bits pero direcciona 16 bits (64kb), tiene registros de 16 bits (DE,BC,etc) y operadores de 16 bits.

NapalMe

#19 "direcciona" 16 bits, gastando dos registros de 8, y usando dos ciclos, no puede usar nada de 16 bits "de una vez" porque es de 8 bits, si me dices que ese ajedrez de 8086 rula en un 8088 te doy la razón.

D

#20 Que use dos ciclos no implica que el opcode no sea de 16 bits. La unica diferencia real entre un 8088 y un 8086 es que el bus de datos del 86 es de 16 bits y solo emplea un ciclo en transmitir mientras que el 8088 necesita 2, pero el codigo es el mismo. ¿Que código de 8086 dices que no funciona en un 8088?

NapalMe

#22 Ninguno, usando el doble de ciclos, era para darte la razón.
Que el opcode sea de 16 bits no convierte el procesador en uno de 16 bits, el opcode como si es de 128bits, a la hora de ejecutarlo lo hará como uno de 8, usando 8 ciclos, porque es de 8 bits.
Decir que el z80 es de 16 bits es como decir que la Atari Jaguar es de 64 bits.

D

#23 A ver. Me he expresado mal.

Vengo a referirme que tanto el z80 como el 8086 tienen instrucciones para operar con 16 bits (independientemente de como lo hagan), que ambos tienen prácticamente los mismos comandos (con otra nomenclatura y sintaxis) y hay que añadir que la mayoría de opcodes de z80 ocupan un solo byte mientras que su contrapartida en 8088/8086 ocupa 2 bytes.

CC/ #32

bitman

#31 Los registros MMX tienen un tamaño de 64 bit y no por ello podemos decir que los Pentium son micros de 64 bit...

Tienen instrucciones similares ya que el Z80 fue una versión mejorada del 8085, y el 8086/8088 fue la transición de Intel a los 16 bit, pero ahí se acaban las similitudes. Los micros Z80 siguieron teniendo un mercado potencial en los equipos domésticos pero la diferencia de potencial entre ambos decantó la balanza a favor del 8086/8088 que luego evolucionó en modelos cada vez más potentes.

Los opcodes de Zilog Z80 ocupan un byte, dos, tres, cuatro... depende. Es cierto que cubren buena parte del mapa de instrucciones con opcodes de un solo byte (además tienen extensiones con múltiples bytes) pero eso fue motivado porque quisieron tener compatibilidad con el 8080 y el 8085(su competencia directa de la época) y estos tenían un juego de instrucciones reducido que les permitía codificar instrucciones concretas en un solo byte. Cuando Zilog sacó su Z80 con juego de instrucciones ampliado respecto al de Intel (principalmente tratamiento de cadenas y bits, instrucciones que manipulaban los registros índice IX e IY, etc) tuvieron que recurrir a usar determinados opcodes como prefijos de extensión.
Los Intel tienen también opcodes de un byte (push r, pop r, inc r, dec r, pop r, push r, xchg r,r', retn)
http://nemesis.lonestar.org/computers/tandy/software/apps/m4/qd/opcodes.html

D

#35 Siempre hemos dicho que los Pentium son micros de 64 bits. Incluso los Pentium 60.

D

#35 Me parece divino de la muerte. Ahora por favor ¿qué ventajas, programando en x86 (sin mmx, sin 64 bits y sin mermelada de la abuela) ha tenido un programador frente a otro y qué herramientas chachipilonguis ha podido usar uno frente a otro?

Es que todo el mogollón viene por que se acusa a Olivier de tener muchas ventajas por hacer el código en x86 frente a David que lo hizo en Z80. Supongo porque el ensamblador de x86 programa solo y el código de x86 ocupa un tercio del mismo código para z80.

bitman

#22 El 8088 y el 8086 son ambos procesadores de 16 bit (el 8088 multiplexa el direccionamiento). El Z80 tendría su equivalente en el 8085, ambos de 8 bit. El tamaño del bus de direcciones no tiene nada que ve con el tamaño de palabra del procesador; como referencia se toma el ancho del bus de datos interno, no el de direcciones.

D

#32

Sobre todo porque en los 8086, el bus de direcciones era de 20 bits

D

#32 Efectivamente, es el ancho de palabra, no el del bus de direcciones.

#19, #20 el bus de direcciones es de 16 bits, sólo hay que mirar el patillaje del z80 para ver que hay 16 líneas. Además PC,SP, IX, IY son registros de 16 bits.

bitman

#64 Correcta la puntualización, tamaño de palabra que no bus de direcciones, me hervía la sangre por contestar y no me fijé bien en lo que escribía.

D

#19 Curioso, ando programdo en ASM para la GB y algo para el Spectrum y me encuentro con esto

D

#11
Si he logrado ver más lejos, ha sido porque he subido a hombros de gigantes
Isaac Newton

editado:
No es original suya, sino inspirada en una cita de Bernardo de Chartres:
Somos como enanos a los hombros de gigantes. Podemos ver más, y más lejos que ellos, no porque la agudeza de nuestra vista ni por la altura de nuestro cuerpo, sino porque somos levantados por su gran altura.

NapalMe

#5 Ese código usa macros de compilador (como los 'if'), se debería comparar el tamaño de los ejecutables, de todas maneras, para ser justos, debería haberlo hecho también en un z80.

D

#16 486 bytes. El chess de Olivier está escrito para caber en un sector de arranque de 512 bytes. No te hace falta ni sistema operativo. Arrancas el pc con un diskette y juegas.

n

#2 "Cuando yo era joven..."

D

#2 Lo que mas ocupa suelen ser las texturas , modelos y audio.

p

#2 Los juegos mejor programados, desde luego. Los mejores juegos, dependerá.

D

#1 "En este artículo se ocupa más espacio que eso." Nos ha jodido. Incluso codificando en ascii (que va a ser que no) el artículo tendría que tener seiscientos setenta y una letras como mucho.

LaInsistencia

#24 Cough markups de html cough

D

Y si lo queréis con gráficos, 1200 bytes en javascript -> http://www.nanochess.org/archive/tiny_chess_2.html ideal para conseguir que la gente se entretenga por fin con tu blog.

Dalocer

#6 Fijate que hace siglos que no juego al ajedrez y este simple programa a vuelto a engancharme de nuevo, "positifo" para ti (que manta me he vuelto )

D

#6 Me gustaría meterle css a esto.

D

Soy un programador

D

#27 Creo que en ese le falta el enrocado.

D

#45 Te olvidas de C .

D

#49 y #45, si querías aprovechar el hardware de aquellas máquinas la mejor opción era ensamblador. No hay más. No estamos enumerando los lenguajes que podías utilizar en aquella época.

D

#53 Sí, lo sé, es obvio, pero con C el programa resultante es "tán" recargado como Cobol y demás.

Lo digo porque C permitía ensamblador en línea desde el primer día.

O si no fíjate en NetBSD bajo VAX, totalmente usable en máquinas de 1980.

Sobre LISP, había máquinas dedicadas a ese lenguaje (quizás por HW directamente), así que vete a saber si con según qué procedimientos conseguías más velocidad o no.

a

¿Porqué estas conversaciones siempre derivan en ver quien la tiene mas grande?

Todavía recuerdo la negación de la vieja escuela C, Pascal, Fortram, etc.. porque llegaban LOS OBJETOS, LAS EXCEPCIONES, LOS EVENTOS!!! Ni de coña me aprendo ese follón!! Decían...

Ahora dicen: programas a alto nivel, eres tonto...

D

Pues no sé... A mi más me sorprende Elite de Acornsoft. David Braben e Ian Bell, en el transcurso de 2 años, crearon en 1984 el primer juego en 3D, tal vez uno de los más importantes. El peso total? Menos de 32 Kilobytes, para la Acorn Electron.
En tan solo 32 KB entraron 8 galaxias con 256 planetas cada una, 19 naves (+23 si contamos las sucesoras) en 3D, bienes para intercambiar entre estaciones, estaciones espaciales, piratas, alienígenas, sonido, armas... En fin, ya se imaginan.

nomada_isleño

#34 Estoy de acuerdo contigo, a pesar de que el juego de ajedrez del articulo es una obra de arte minimalista, Elite fue toda una revolución.

s

Para todos los master of PHP que pululan por aquí quejándose de lo malos programadores que son los demás, si no presentáis vuestros trabajos, vuestra argumentación queda automáticamente invalidada.

LaInsistencia

#10 ¿Significa eso que descalificas automáticamente a todos los que no piquen código open source?

s

#40 Es que todas estas noticias siempre tienen comentarios de sobrados que incluso insultan a los demás y demuestra por qué la informática es uno de los sectores más cainita y con menos corporativismo.

Por ejemplo esto se podría dar también en el mundo de los artistas. Me imagino que en foros de arte cada uno se creerá el mejor y desprecia a los demás pero es que es una actividad individual o de grupos pequeños, mientras que la informática tiene más de industria y que de arte.

D

#68 Todos los oficios cuando comienzan tienen mucho de artesanía (talento, intuición, etc.) y poco de industria. Después vino la producción en serie y la industrialización de la programación. Sigue habiendo verdaderas obras de arte en el campo de la programación pero cada vez hay menos artistas.

o

This is not the greatest song program in the world. This is just a tribute

cristihg

Y el gusto que da cuando vas optimizando un programa y cada vez es más rápido, pequeño y eficiente?

Yagami_Raito

Filtro:

Ingenioso_Hidalgo

Como comenta #67 . La demoscene aunque posterior, estuvo muy por encima de lo "comercial" durante muchos años. Había gente que hacia cosas increíbles... Incluso a nivel español. Recuerdo que me sentí un inútil cuando vi esto (64k):

. De cosecha española (Centolos!!) que recuerdo con mucho cariño aunque fuera fruto de la casualidad y la "chapuza":

D

Hay verdaderas joyas para ZX81.

Igual pasaba con los primeros virus de PC, que ocupaban unas mierdecillas de bytes. Ahora ocupan megas y necesitan de .NET 4.0 parriba.

D

Dejad de discutir y haced algo útil para la humanidad.

Sofrito

La caña, lo voy a compartir en Facebook (de todas formas nadie lo va a entender).

a

Otro juego "resultón" también para ZX81 en 1K

capitan__nemo

Los únicos matemáticos buenos son los que utilizaban el ábaco.

Barquero_

#12 yo tengo una regla de calculo
http://en.wikipedia.org/wiki/Slide_rule

D

Para conseguir un ajedrez en 1024 bytes no queda otra que ensamblador, que por cierto era lo habitual en aquel tiempo. No hay otra forma de aprovechar lo máximo posible el hardware de aquellas limitadas máquinas.

Mirad los sources del Prince of Persia original. Todo assembler.

D

#43 Por aquel tiempo sólo se podía programar en lisp, ensamblador o cobol. Y si hubiera usado COBOL, eso ocuparía lo mismo que el Call Of Duty.

d

Que impresionable sois. Anda que no hay programadores de embebidos que día a día se mueven con entornos de 512 bytes de ram y menos de 1kbyte para código.

D

#55 Hoy en dia hay compiladores de c que te optimizan cualquier código al mínimo con tropecientos análisis antes de crear el binario. Aunque, también hay que ser muy cuidadoso en la programación para que ese binario ocupe poco y sea rápido en la ejecución.

D

#57 Pequeño != rápido.

Mira si no lo que hacen ciertas optimizaciones de GCC respeto a los bucles.

D

#78 Si, ahí está el truco, buscar el tamaño justo para que no se vea afectado demasiado la rapidez del programa. Puedes sobrescribir intrucciones repetitivas en tiempo de ejecución o directamente instrucciones de saltos a esas instrucciones, pero si no las sobrescribes porque tienes espacio suficiente tu programa será más rápido.

D

#79 Depende. No por usar -Os vas a ganar velocidad, te lo digo desde ya. Es posible que lo ralentices incluso por querer ahorrar espacio para código que ya está "resuelto" siento optimizado por el compilador y preprocesador.

Lo digo porque para mi ex-netbook ARM intenté usar -Os para no usar RAM como un loco y pasara a la swap, aunque fuera con DWM, y al final era preferible usar -O2.

D

#80 Imagínate que tienes un programa que necesita conometrar un segundo en varios puntos del programa(mal hecho, porque para eso están las interrupciones de tiempo, pero es un ejemplo). Siempre sería mas rápido ejecutar ese contador directamente sin saltos que saltar a una parte del programa donde se conometra 1 segundo y luego volver a saltar para continuar. Si ejecutas directamente ese contador de un segundo estarás utilizando mas memoria, pero tu programa se ahorrará varios saltos. Es un ejemplo cutre.

D

#81 No me refiero a eso, me refiero a que ciertas optimizaciones por espacio no redundan en una mayor velocidad.

Solo tienes que ver las herramientas BSD vs GNU. Las GNU son más rápidas y funcionan mucho más rápido, las BSD más ligeras en código pero no van mejor en absoluto.

D

#82 Yo estoy refiriendo a dispositivos muy básicos, donde la memoria es mínima, como puede ser un PIC de atmel o microchip. El binario no se ejecuta bajo ningún sistema operativo.

D

#84 Entonces sí, claro está.

D

Moraleja, lo desconocido siempre es lo mejor.

D

Artículo original del 2001... ejem ejem

D

Yo sé programar en varios lenguajes: Valenciano, Castellano y el Catalán......
Machote' s Club. Sito en la utopía M-30.

usuariopc

No sé si se ha puesto este enlace. Aquí hay una partida.
Es increíble lo que puede hacer la mente humana (de bueno, y de malo).