module main_module org 8000h.start call init call main call terminate ret.init ld a, (5c8dh) ld...

47
MODULE main_module ORG 8000h .start call init call main call terminate ret .init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld a, 40h ld (5C8Dh),a xor a out (feh),a call cls ld a, (tail_length) add a ld hl, location_queue .init_loop ld (hl),ffh inc hl dec a jr nz, init_loop ld hl, hello call len ld (hello_length), a ld b,5 ld c,5 ld d,1 ld e,1 ret .cls push hl ZX Spectrum sinclair 128 Historia Hardware Software

Upload: fidel-de-gracia

Post on 27-Jan-2016

239 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

MODULE main_moduleORG 8000h.start

call init

call main

call terminate

ret

.init ld a, (5C8Dh)

ld (screen_color),a ld a, (5C48h)

ld (border_color), a ld a, 40h

ld (5C8Dh),a xor a

out (feh),a

call cls

ld a, (tail_length)

add a

ld hl, location_queue.init_loop

ld (hl),ffh inc hldec ajr nz, init_loop

ld hl, hello call len ld (hello_length), a

ld b,5 ld c,5ld d,1ld e,1ret

.cls push hl

ZX Spectrumsinclair

128

Historia

Hardware

Software

Page 2: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

push bcpush decall 0dafh pop depop bcpop hlret

.len

push hlpush bcld c, 00h

.len_loopld a, (hl) and a jr z, len_exit inc c inc hl

jr len_loop .len_exit

ld a, c pop bcpop hlret

.terminate ld a, (screen_color) ld (5C8Dh),a

ld a, (border_color) ld (5C48h),a

dec a

out (feh),a

call cls

ret

.main

call setcolorcall printstrcall pingpongcall clearstr

HISTORIAsinclair

En 1980 un joven graduado de Cambridge, Clive Marles

Sinclair, lanzó al mercado un extraño objeto electrónico con la

idea de que cada persona pudiera «construir su propia

computadora de forma simple y barata en casa» .

Dicho kit consistía en una serie de componentes electrónicos

baratos, y por casi 80 libras esterlinas, podía obtenerse un

microprocesador completo de índole doméstica que se

denominó Sinclair ZX80.

Page 3: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

ret

.enqueue_positionpush afpush hlpush bc Set hl to point last item in

queueld a, (tail_length) add a, a

ld hl, location_queue push hlld b, 00h

ld c, aadd hl, bc dec hl dec hl

.enqueue_position_loop push afld a, (hl) inc hl inc hlld (hl), a dec hl dec hldec hlpop afdec a jr nz, enqueue_position_loop

pop hl pop bc ld (hl), binc hlld (hl), cpop hlpop afret

.clearstrpush bc

HISTORIAsinclair

Destacaba la posibilidad de conectarlo a un televisor normal, un

teclado tipo QWERTY, conectarlo a un cassette, y el lenguaje

BASIC integrado de fabrica como intérprete.

Poseía tan sólo 1KB de memoria RAM y carecía de gráficos,

colores y sonido. A pesar de ello, la reacción de la gente fue

sorprendente , comenzando a surgir libros, revistas y

programas para la pequeña maquina.

Page 4: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

ret

.enqueue_positionpush afpush hlpush bc Set hl to point last item in

queueld a, (tail_length) add a, a

ld hl, location_queue push hlld b, 00h

ld c, aadd hl, bc dec hl dec hl

.enqueue_position_loop push afld a, (hl) inc hl inc hlld (hl), a dec hl dec hldec hlpop afdec a jr nz, enqueue_position_loop

pop hl pop bc ld (hl), binc hlld (hl), cpop hlpop afret

.clearstrpush bc

HISTORIAsinclair

Sinclair fundo Sinclair Research Ltd desde su vieja empresa,

Sinclair Computers. A partir del ZX80 comenzaron a surgir

nuevos modelos: ZX81, ZX-Spectrum, ZX-Spectrum 48… pero

nos vamos a centrar en el ZX-Spectrum 128K.

Page 5: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

ret

.enqueue_positionpush afpush hlpush bc Set hl to point last item in

queueld a, (tail_length) add a, a

ld hl, location_queue push hlld b, 00h

ld c, aadd hl, bc dec hl dec hl

.enqueue_position_loop push afld a, (hl) inc hl inc hlld (hl), a dec hl dec hldec hlpop afdec a jr nz, enqueue_position_loop

pop hl pop bc ld (hl), binc hlld (hl), cpop hlpop afret

.clearstrpush bc

HISTORIAsinclair

Spectrum 128k

Page 6: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

ret

.enqueue_positionpush afpush hlpush bc Set hl to point last item in

queueld a, (tail_length) add a, a

ld hl, location_queue push hlld b, 00h

ld c, aadd hl, bc dec hl dec hl

.enqueue_position_loop push afld a, (hl) inc hl inc hlld (hl), a dec hl dec hldec hlpop afdec a jr nz, enqueue_position_loop

pop hl pop bc ld (hl), binc hlld (hl), cpop hlpop afret

.clearstrpush bc

HISTORIAsinclair

El Spectrum 128K fue el tercer modelo de Spectrum fabricado

en España por Investrónica, distribuidora oficial de Sinclair

Research. El desarrollo conjunto se realizó en la sede española,

y es por ellos que en 1985 aparece primero es España.

El ordenador salió a la venta en 1985, presentándose en la

feria informática SIMO. Una vez saliera en España llegaría a

Reino Unido y otros países de Europa debido al exceso de

unidades de modelos anteriores, decidiendo esperar a la venta

absoluta de dichos modelos.

Page 7: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

ret

.enqueue_positionpush afpush hlpush bc Set hl to point last item in

queueld a, (tail_length) add a, a

ld hl, location_queue push hlld b, 00h

ld c, aadd hl, bc dec hl dec hl

.enqueue_position_loop push afld a, (hl) inc hl inc hlld (hl), a dec hl dec hldec hlpop afdec a jr nz, enqueue_position_loop

pop hl pop bc ld (hl), binc hlld (hl), cpop hlpop afret

.clearstrpush bc

HISTORIAsinclair

El aspecto externo del ZX Spectrum 128 era muy similar al del

ZX Spectrum +, sólo que añadía una rejilla en la zona derecha.

Las diferencias esenciales respecto a los primeros modelos

fueron, un aumento de la memoria RAM (de 48 Kb a 128 KB) y

de la memoria ROM (hasta 32 KB).

Otra de las novedades fue la incorporación de un chip mas

moderno (Yamaha AY-3-8912, que incorpora tres canales de

sonido) y la salida MIDI, lo que hizo aumentar las posibilidades

sonoras del Spectrum,

Page 8: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

ret

.enqueue_positionpush afpush hlpush bc Set hl to point last item in

queueld a, (tail_length) add a, a

ld hl, location_queue push hlld b, 00h

ld c, aadd hl, bc dec hl dec hl

.enqueue_position_loop push afld a, (hl) inc hl inc hlld (hl), a dec hl dec hldec hlpop afdec a jr nz, enqueue_position_loop

pop hl pop bc ld (hl), binc hlld (hl), cpop hlpop afret

.clearstrpush bc

HISTORIAsinclair

Además, añadía una salida para monitor y siendo la

compatibilidad para los juegos mucho mas alta respecto a los

modelos anteriores.

Por todo ello, el Spectrum 128K fue el mejor modelo de la

compañía. No obstante, al llegar a Reino Unido Sinclair

Research estaba ya sumida en una profunda crisis económica.

Todo ello obligo a Sir Clive Sinclair a vender la compañía, por lo

que este modelo fue el último producido por la empresa del

mismo.

Page 9: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

ret

.enqueue_positionpush afpush hlpush bc Set hl to point last item in

queueld a, (tail_length) add a, a

ld hl, location_queue push hlld b, 00h

ld c, aadd hl, bc dec hl dec hl

.enqueue_position_loop push afld a, (hl) inc hl inc hlld (hl), a dec hl dec hldec hlpop afdec a jr nz, enqueue_position_loop

pop hl pop bc ld (hl), binc hlld (hl), cpop hlpop afret

.clearstrpush bc

HISTORIAsinclair

La sencilla arquitectura del Spectrum hizo que fuese un ordenador

relativamente fácil de clonar.

Entre los clones mas destacados están:

-TK90X, TK95

-LAMBDA 8300

-PENTAGON

-SCORPION ZS-256

-TIMEX SINCLAIR 2068

Aunque el único clon autorizado fue el TIMEX SINCLAIR 2068, distribuido

principalmente en los Estados Unidos.

Page 10: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

call sleep call getkey

and 01h

jr nz, main ret

.setcolorpush afld a, (current_color) cp 07h

jr nz, setcolor_continueld a, 01h

.setcolor_continueinc a

ld (current_color), ald a, 10h

rst 10h

ld a, (current_color)rst 10h

pop af

ret

.printstrpush hl push de ld ix, printstr_nextchar call printbase

pop depop hl ret

.printstr_nextchar ld a,(hl) ret

.fillstrpush hl push de ld ix, fillstr_nextchar call printbase

ZX Spectrumsinclair

128

Historia

Hardware

Software

Page 11: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

push bcpush decall 0dafh pop depop bcpop hlret

.len

push hlpush bcld c, 00h

.len_loopld a, (hl) and a jr z, len_exit inc c inc hl

jr len_loop .len_exit

ld a, c pop bcpop hlret

.terminate ld a, (screen_color) ld (5C8Dh),a

ld a, (border_color) ld (5C48h),a

dec a

out (feh),a

call cls

ret

.main

call setcolorcall printstrcall pingpongcall clearstr

HARDWAREsinclair

El hardware fue diseñado por Richard Altwasser.

El Spectrum ZX Sinclair tenía un teclado de caucho integrado en

el ordenador en el modelo de 16 kB y en la primera versión de

48 kB. El teclado de caucho original oprimía dos membranas (el

del ZX Spectrum Plus tenía 4) con pistas conductoras que

servían para detectar la presión.

Page 12: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

push bcpush decall 0dafh pop depop bcpop hlret

.len

push hlpush bcld c, 00h

.len_loopld a, (hl) and a jr z, len_exit inc c inc hl

jr len_loop .len_exit

ld a, c pop bcpop hlret

.terminate ld a, (screen_color) ld (5C8Dh),a

ld a, (border_color) ld (5C48h),a

dec a

out (feh),a

call cls

ret

.main

call setcolorcall printstrcall pingpongcall clearstr

HARDWAREsinclair

El sistema de almacenamiento era en cinta casete de audio

común. Se accedía a los datos a una velocidad de 1.500 bit/s de

media. Había juegos que usaban su propio sistema de carga,

denominado "turbo", aunque ligeramente más propensos a

producir errores de carga. Como periférico adicional, a partir

del año 1983 Sinclair puso a la venta el ZX Interface 1 al que se

le podían conectar hasta ocho unidades de cinta rápida,

llamadas microdrive.

Page 13: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

push bcpush decall 0dafh pop depop bcpop hlret

.len

push hlpush bcld c, 00h

.len_loopld a, (hl) and a jr z, len_exit inc c inc hl

jr len_loop .len_exit

ld a, c pop bcpop hlret

.terminate ld a, (screen_color) ld (5C8Dh),a

ld a, (border_color) ld (5C48h),a

dec a

out (feh),a

call cls

ret

.main

call setcolorcall printstrcall pingpongcall clearstr

HARDWAREsinclair

Posteriormente se desarrolló una nueva carcasa, que consistía

en un teclado mejorado con teclas duras y 4 capas de

membrana,y la carcasa más profesional con el nombre ZX

Spectrum Plus. Este desarrollo también se vendió como

actualización y solía incluirse junto con una ampliación de

memoria para los Spectrum de 16 kB, que añadía un botón de

reset y una mejor ventilación.

Page 14: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

push bcpush decall 0dafh pop depop bcpop hlret

.len

push hlpush bcld c, 00h

.len_loopld a, (hl) and a jr z, len_exit inc c inc hl

jr len_loop .len_exit

ld a, c pop bcpop hlret

.terminate ld a, (screen_color) ld (5C8Dh),a

ld a, (border_color) ld (5C48h),a

dec a

out (feh),a

call cls

ret

.main

call setcolorcall printstrcall pingpongcall clearstr

HARDWAREsinclair

El modelo de 128K podía funcionar en modo 48 KB o 128 KB.

Incorporaba un chip de sonido AY-3-8912, un pequeño teclado

numérico anexo pero independiente y un editor de textos

integrado en el sistema operativo firmware.

Page 15: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

push bcpush decall 0dafh pop depop bcpop hlret

.len

push hlpush bcld c, 00h

.len_loopld a, (hl) and a jr z, len_exit inc c inc hl

jr len_loop .len_exit

ld a, c pop bcpop hlret

.terminate ld a, (screen_color) ld (5C8Dh),a

ld a, (border_color) ld (5C48h),a

dec a

out (feh),a

call cls

ret

.main

call setcolorcall printstrcall pingpongcall clearstr

HARDWAREsinclair

En los juegos, especialmente cuando se ejecutaban en el modo

128, se podía disponer de las mejoras del modelo. En el modo

de 48 kB únicamente el mapeado de memoria estaba

inhabilitado, por lo que el chip AY-3-8912 se podía seguir

utilizando, no así la memoria adicional.

Page 16: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

push bcpush decall 0dafh pop depop bcpop hlret

.len

push hlpush bcld c, 00h

.len_loopld a, (hl) and a jr z, len_exit inc c inc hl

jr len_loop .len_exit

ld a, c pop bcpop hlret

.terminate ld a, (screen_color) ld (5C8Dh),a

ld a, (border_color) ld (5C48h),a

dec a

out (feh),a

call cls

ret

.main

call setcolorcall printstrcall pingpongcall clearstr

HARDWAREsinclair

A diferencia del Spectrum+, el Spectrum 128 aporta novedades

hardware con respecto al modelo original.

• Cuenta con memoria adicional

• Incorpora salidas para monitor, RS232 y MIDI.

• Incluye un nuevo chip para sonido.

• Además de un modo compatible 48K cuenta con 16K

adicionales de ROM, con el BASIC 128 que incorpora nuevas

funciones. Fue el último "ZX" comercializado antes de que

Amstrad adquiriera la compañía Sinclair.

Page 17: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

push bcpush decall 0dafh pop depop bcpop hlret

.len

push hlpush bcld c, 00h

.len_loopld a, (hl) and a jr z, len_exit inc c inc hl

jr len_loop .len_exit

ld a, c pop bcpop hlret

.terminate ld a, (screen_color) ld (5C8Dh),a

ld a, (border_color) ld (5C48h),a

dec a

out (feh),a

call cls

ret

.main

call setcolorcall printstrcall pingpongcall clearstr

HARDWAREsinclair

Para su funcionamiento, además de un televisor con entrada de

antena, es imprescindible para utilizar un ZX Spectrum:

• La unidad principal.

• Una fuente de alimentación.

• Un cable coaxial para conectar la salida de la parte trasera

del Spectrum etiquetada como "TV" a la entrada de antena

del televisor.

Page 18: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

push bcpush decall 0dafh pop depop bcpop hlret

.len

push hlpush bcld c, 00h

.len_loopld a, (hl) and a jr z, len_exit inc c inc hl

jr len_loop .len_exit

ld a, c pop bcpop hlret

.terminate ld a, (screen_color) ld (5C8Dh),a

ld a, (border_color) ld (5C48h),a

dec a

out (feh),a

call cls

ret

.main

call setcolorcall printstrcall pingpongcall clearstr

HARDWAREsinclair

Existían también otros periféricos.

• El ZX INTERFACE 1 (Conexión múltiples MicroDrives)

• El ZX INTERFACE 2 (Conexión joysticks)

• El KEMPSTON INTERFACE (Conexión joysticks)

• EL ZX PRINTER

• TRICKSTICK, MICRO-COMMANDUN o el STACK LIGHT RIFLE.

Page 19: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

pop de pop hl ret

.fillstr_nextchar ld a, (hl)

and a

ret z

ld a, (fill_char) .fillstr_nextchar_end

ret

.printbase

push afpush deld a,16h rst 10hld a,crst 10hld a,brst 10hpop afpush hlld de, printstr_testnull

.printstr_looppush de

jp (ix)

.printstr_testnull

and a

jr z, printstr_end

push af

rst 10h

pop afinc hl

jr printstr_loop

.printstr_endpop de

pop hl

ret

ZX Spectrumsinclair

128

Historia

Hardware

Software

Page 20: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

.pingpongcall enqueue_position Perform vertical ping-pong ld a, c cp 21 call z, pingpong_swapy and a call z, pingpong_swapyadd eld c, aPerform horizontal ping-pong ld a,bpush hl ld hl, hello_length add a,(hl) pop hlcp 32 call z, pingpong_swapx ld a,band a call z, pingpong_swapxadd dld b,aret

.pingpong_swapypush afxor asub eld e, apop afret

.pingpong_swapxpush afxor asub dld d, apop af

softwaresinclair

• Biblioteca de titulos

• Distribucion

• Adopción

• Evolucion

Page 21: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

.pingpongcall enqueue_position Perform vertical ping-pong ld a, c cp 21 call z, pingpong_swapy and a call z, pingpong_swapyadd eld c, aPerform horizontal ping-pong ld a,bpush hl ld hl, hello_length add a,(hl) pop hlcp 32 call z, pingpong_swapx ld a,band a call z, pingpong_swapxadd dld b,aret

.pingpong_swapypush afxor asub eld e, apop afret

.pingpong_swapxpush afxor asub dld d, apop af

softwaresinclair

Biblioteca de titulos

• Implementación de lenguajes

• Ensambladores

• Videojuegos

• Ofimática

• Aplicaciones gráficas

Page 22: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

.pingpongcall enqueue_position Perform vertical ping-pong ld a, c cp 21 call z, pingpong_swapy and a call z, pingpong_swapyadd eld c, aPerform horizontal ping-pong ld a,bpush hl ld hl, hello_length add a,(hl) pop hlcp 32 call z, pingpong_swapx ld a,band a call z, pingpong_swapxadd dld b,aret

.pingpong_swapypush afxor asub eld e, apop afret

.pingpong_swapxpush afxor asub dld d, apop af

softwaresinclair

HiSoft C

Page 23: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

.pingpongcall enqueue_position Perform vertical ping-pong ld a, c cp 21 call z, pingpong_swapy and a call z, pingpong_swapyadd eld c, aPerform horizontal ping-pong ld a,bpush hl ld hl, hello_length add a,(hl) pop hlcp 32 call z, pingpong_swapx ld a,band a call z, pingpong_swapxadd dld b,aret

.pingpong_swapypush afxor asub eld e, apop afret

.pingpong_swapxpush afxor asub dld d, apop af

softwaresinclair

Micro-PROLOG

Page 24: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

.pingpongcall enqueue_position Perform vertical ping-pong ld a, c cp 21 call z, pingpong_swapy and a call z, pingpong_swapyadd eld c, aPerform horizontal ping-pong ld a,bpush hl ld hl, hello_length add a,(hl) pop hlcp 32 call z, pingpong_swapx ld a,band a call z, pingpong_swapxadd dld b,aret

.pingpong_swapypush afxor asub eld e, apop afret

.pingpong_swapxpush afxor asub dld d, apop af

softwaresinclair

HiSoft DevPac

Page 25: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

.pingpongcall enqueue_position Perform vertical ping-pong ld a, c cp 21 call z, pingpong_swapy and a call z, pingpong_swapyadd eld c, aPerform horizontal ping-pong ld a,bpush hl ld hl, hello_length add a,(hl) pop hlcp 32 call z, pingpong_swapx ld a,band a call z, pingpong_swapxadd dld b,aret

.pingpong_swapypush afxor asub eld e, apop afret

.pingpong_swapxpush afxor asub dld d, apop af

softwaresinclair

BetaBASIC

Page 26: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

.pingpongcall enqueue_position Perform vertical ping-pong ld a, c cp 21 call z, pingpong_swapy and a call z, pingpong_swapyadd eld c, aPerform horizontal ping-pong ld a,bpush hl ld hl, hello_length add a,(hl) pop hlcp 32 call z, pingpong_swapx ld a,band a call z, pingpong_swapxadd dld b,aret

.pingpong_swapypush afxor asub eld e, apop afret

.pingpong_swapxpush afxor asub dld d, apop af

softwaresinclair

Renegade (Beat’em’up)

Page 27: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

.pingpongcall enqueue_position Perform vertical ping-pong ld a, c cp 21 call z, pingpong_swapy and a call z, pingpong_swapyadd eld c, aPerform horizontal ping-pong ld a,bpush hl ld hl, hello_length add a,(hl) pop hlcp 32 call z, pingpong_swapx ld a,band a call z, pingpong_swapxadd dld b,aret

.pingpong_swapypush afxor asub eld e, apop afret

.pingpong_swapxpush afxor asub dld d, apop af

softwaresinclair

The Great Escape (Aventura grafica)

Page 28: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

.pingpongcall enqueue_position Perform vertical ping-pong ld a, c cp 21 call z, pingpong_swapy and a call z, pingpong_swapyadd eld c, aPerform horizontal ping-pong ld a,bpush hl ld hl, hello_length add a,(hl) pop hlcp 32 call z, pingpong_swapx ld a,band a call z, pingpong_swapxadd dld b,aret

.pingpong_swapypush afxor asub eld e, apop afret

.pingpong_swapxpush afxor asub dld d, apop af

softwaresinclair

Swords & Sorcery (RPG)

Page 29: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

.pingpongcall enqueue_position Perform vertical ping-pong ld a, c cp 21 call z, pingpong_swapy and a call z, pingpong_swapyadd eld c, aPerform horizontal ping-pong ld a,bpush hl ld hl, hello_length add a,(hl) pop hlcp 32 call z, pingpong_swapx ld a,band a call z, pingpong_swapxadd dld b,aret

.pingpong_swapypush afxor asub eld e, apop afret

.pingpong_swapxpush afxor asub dld d, apop af

softwaresinclair

WEC LeMans (Conduccion)

Page 30: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

.pingpongcall enqueue_position Perform vertical ping-pong ld a, c cp 21 call z, pingpong_swapy and a call z, pingpong_swapyadd eld c, aPerform horizontal ping-pong ld a,bpush hl ld hl, hello_length add a,(hl) pop hlcp 32 call z, pingpong_swapx ld a,band a call z, pingpong_swapxadd dld b,aret

.pingpong_swapypush afxor asub eld e, apop afret

.pingpong_swapxpush afxor asub dld d, apop af

softwaresinclair

Psytron (Estrategia)

Page 31: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

.pingpongcall enqueue_position Perform vertical ping-pong ld a, c cp 21 call z, pingpong_swapy and a call z, pingpong_swapyadd eld c, aPerform horizontal ping-pong ld a,bpush hl ld hl, hello_length add a,(hl) pop hlcp 32 call z, pingpong_swapx ld a,band a call z, pingpong_swapxadd dld b,aret

.pingpong_swapypush afxor asub eld e, apop afret

.pingpong_swapxpush afxor asub dld d, apop af

softwaresinclair

R-type (Shoot’em’up)

Page 32: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

.pingpongcall enqueue_position Perform vertical ping-pong ld a, c cp 21 call z, pingpong_swapy and a call z, pingpong_swapyadd eld c, aPerform horizontal ping-pong ld a,bpush hl ld hl, hello_length add a,(hl) pop hlcp 32 call z, pingpong_swapx ld a,band a call z, pingpong_swapxadd dld b,aret

.pingpong_swapypush afxor asub eld e, apop afret

.pingpong_swapxpush afxor asub dld d, apop af

softwaresinclair

TasWord

Page 33: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

.pingpongcall enqueue_position Perform vertical ping-pong ld a, c cp 21 call z, pingpong_swapy and a call z, pingpong_swapyadd eld c, aPerform horizontal ping-pong ld a,bpush hl ld hl, hello_length add a,(hl) pop hlcp 32 call z, pingpong_swapx ld a,band a call z, pingpong_swapxadd dld b,aret

.pingpong_swapypush afxor asub eld e, apop afret

.pingpong_swapxpush afxor asub dld d, apop af

softwaresinclair

VU-Calc

Page 34: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

.pingpongcall enqueue_position Perform vertical ping-pong ld a, c cp 21 call z, pingpong_swapy and a call z, pingpong_swapyadd eld c, aPerform horizontal ping-pong ld a,bpush hl ld hl, hello_length add a,(hl) pop hlcp 32 call z, pingpong_swapx ld a,band a call z, pingpong_swapxadd dld b,aret

.pingpong_swapypush afxor asub eld e, apop afret

.pingpong_swapxpush afxor asub dld d, apop af

softwaresinclair

OCP Advanced Art Studio

Page 35: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

.pingpongcall enqueue_position Perform vertical ping-pong ld a, c cp 21 call z, pingpong_swapy and a call z, pingpong_swapyadd eld c, aPerform horizontal ping-pong ld a,bpush hl ld hl, hello_length add a,(hl) pop hlcp 32 call z, pingpong_swapx ld a,band a call z, pingpong_swapxadd dld b,aret

.pingpong_swapypush afxor asub eld e, apop afret

.pingpong_swapxpush afxor asub dld d, apop af

softwaresinclair

VU-3D

Page 36: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

push de push hl ld a,(tail_length) add ald hl, location_queue ld b, 00hld c, aadd hl, bc dec hl dec hl

ld a, (hl) cp 0ffh jr z, clearstr_exit ld b, a inc hl ld c, (hl)

pop hl call fillstr

push hl.clearstr_exit

pop hlpop depop bcret

.sleeppush hlpush afld hl,(sleep_delay)

.sleep_loop call getkey

and 01h

jr z, sleep_exit dec hl ld a, l and ajr nz, sleep_loop ld a, h

softwaresinclair

Distribución

• Cinta casete

• ZX Microdrive

• Rotronics Wafadrive

• Floppy Disk

• Otros medios

Page 37: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

push de push hl ld a,(tail_length) add ald hl, location_queue ld b, 00hld c, aadd hl, bc dec hl dec hl

ld a, (hl) cp 0ffh jr z, clearstr_exit ld b, a inc hl ld c, (hl)

pop hl call fillstr

push hl.clearstr_exit

pop hlpop depop bcret

.sleeppush hlpush afld hl,(sleep_delay)

.sleep_loop call getkey

and 01h

jr z, sleep_exit dec hl ld a, l and ajr nz, sleep_loop ld a, h

softwaresinclair

Cinta de Casete

Page 38: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

push de push hl ld a,(tail_length) add ald hl, location_queue ld b, 00hld c, aadd hl, bc dec hl dec hl

ld a, (hl) cp 0ffh jr z, clearstr_exit ld b, a inc hl ld c, (hl)

pop hl call fillstr

push hl.clearstr_exit

pop hlpop depop bcret

.sleeppush hlpush afld hl,(sleep_delay)

.sleep_loop call getkey

and 01h

jr z, sleep_exit dec hl ld a, l and ajr nz, sleep_loop ld a, h

softwaresinclair

ZX MicroDrive

Ventajas• Sistema de almacenamiento masivo 85 kb

• Velocidad de transferencia 15 kb/s

• Bajo coste

• Menor tamaño que cintas cassette

Page 39: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

push de push hl ld a,(tail_length) add ald hl, location_queue ld b, 00hld c, aadd hl, bc dec hl dec hl

ld a, (hl) cp 0ffh jr z, clearstr_exit ld b, a inc hl ld c, (hl)

pop hl call fillstr

push hl.clearstr_exit

pop hlpop depop bcret

.sleeppush hlpush afld hl,(sleep_delay)

.sleep_loop call getkey

and 01h

jr z, sleep_exit dec hl ld a, l and ajr nz, sleep_loop ld a, h

softwaresinclair

Rotronics Wafadrive

Ventajas• Dos unidades de cinta continua

• 2 velocidades: alta, busqueda secuencial y baja, lectura/ grabacion

• Capacidad: 16 kiB, 64 KiB o 128 KiB.

Floppy Disk

Page 40: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

and ajr nz, sleep_loop

.sleep_exit

pop afpop hlret

.getkeyld a, 7fhin a, (feh )ret

.screen_color defb 00h

.border_color defb 00h

.sleep_delay defw 0cffh

.fill_char defm " "

.hello defm "Hello, World!" & 00h

.hello_length defb 00h

.tail_length defb 0ah

.current_color defb 01h

.location_queue

softwaresinclair

Adopción

El Sinclair ZX Spectrum fue un ordenador de 8 bits fabricado por

la compañía británica Sinclair Research y lanzado al mercado

el 23 de abril de 1982.

El Sinclair ZX Spectrum fue uno de los microordenadores

domésticos más populares de los años 1980.

Su optimizado y compacto diseño hizo las delicias de miles de

aficionados a la informática y los videojuegos.

Page 41: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

and ajr nz, sleep_loop

.sleep_exit

pop afpop hlret

.getkeyld a, 7fhin a, (feh )ret

.screen_color defb 00h

.border_color defb 00h

.sleep_delay defw 0cffh

.fill_char defm " "

.hello defm "Hello, World!" & 00h

.hello_length defb 00h

.tail_length defb 0ah

.current_color defb 01h

.location_queue

softwaresinclair

Diferencias entre Spectrum 128k y Spectrum 128k+3

ZX Spectrum 128 +3 tenia unidad de disquete de 3" incorporada

en la misma carcasa del ordenador. Este modelo recuperaba el

tradicional color negro. Incluía también una mejora del BASIC,

el +3BASIC. La compañía Digital Research desarrolló y

comercializó una versión del sistema operativo CP/M para el +3.

Page 42: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

and ajr nz, sleep_loop

.sleep_exit

pop afpop hlret

.getkeyld a, 7fhin a, (feh )ret

.screen_color defb 00h

.border_color defb 00h

.sleep_delay defw 0cffh

.fill_char defm " "

.hello defm "Hello, World!" & 00h

.hello_length defb 00h

.tail_length defb 0ah

.current_color defb 01h

.location_queue

softwaresinclair

Ventas

Se vendieron más de dos millones de unidades del Spectrum

128k, a un precio de 87.000 pesetas, varias veces mas barato

que el modelo equiparable de IBM.

Cerro sus balances con un beneficio bruto de 3.000 millones de

pesetas.

Page 43: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

softwaresinclair

Evolución

Otros fiascos serios y muy costosos fueron el TV80 (un televisor

en miniatura) y el C5 (un vehículo eléctrico monoplaza).Tras

estos fracasos y pese a las buenas ventas del Spectrum 128,

Sinclair llegó a una situación financiera insostenible.

Page 44: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

softwaresinclair

Evolución

La solución fue vender los derechos de fabricación, distribución

y venta de todos sus productos a su competidora directa

Amstrad Consumer Electronics por 5 millones de libras, la cual

compró además el logo, que siguió usando en los modelos que

vendrían después. Así pues, Amstrad se hacía por fin con una

gran parte del pastel (el mercado de los 8 bits), algo que había

intentado con su CPC 464 durante largo tiempo sin conseguirlo.

Page 45: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

and ajr nz, sleep_loop

.sleep_exit

pop afpop hlret

.getkeyld a, 7fhin a, (feh )ret

.screen_color defb 00h

.border_color defb 00h

.sleep_delay defw 0cffh

.fill_char defm " "

.hello defm "Hello, World!" & 00h

.hello_length defb 00h

.tail_length defb 0ah

.current_color defb 01h

.location_queue

softwaresinclair

Evolución

Paralelamente al desarrollo del Spectrum, Sinclair Research

llevó a cabo otros proyectos que comercialmente resultaron ser

un fracaso. Un ejemplo de ello fue el QL, un ordenador

enfocado al ámbito profesional que no encontró su sitio en el

mercado.

Page 46: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

and ajr nz, sleep_loop

.sleep_exit

pop afpop hlret

.getkeyld a, 7fhin a, (feh )ret

.screen_color defb 00h

.border_color defb 00h

.sleep_delay defw 0cffh

.fill_char defm " "

.hello defm "Hello, World!" & 00h

.hello_length defb 00h

.tail_length defb 0ah

.current_color defb 01h

.location_queue

softwaresinclair

Evolución

Era una máquina con muchas posibilidades, tenía un buen

sistema operativo y era potente, pero al principio se produjeron

errores de fabricación y distribución que crearon desconfianza

en los usuarios. Además, el sistema de almacenamiento elegido

fue el microdrive, poco fiable y más lento que el diskette. Pero

sobretodo, no hubo un soporte sólido por parte de los

desarrolladores de software.

Page 47: MODULE main_module ORG 8000h.start call init call main call terminate ret.init ld a, (5C8Dh) ld (screen_color),a ld a, (5C48h) ld (border_color), a ld

and ajr nz, sleep_loop

.sleep_exit

pop afpop hlret

.getkeyld a, 7fhin a, (feh )ret

.screen_color defb 00h

.border_color defb 00h

.sleep_delay defw 0cffh

.fill_char defm " "

.hello defm "Hello, World!" & 00h

.hello_length defb 00h

.tail_length defb 0ah

.current_color defb 01h

.location_queue

softwaresinclair

Comunidad

En la actualidad hay paginas web de los seguidores del

spectrum 128k:

http://www.museo8bits.com/spec128.htm

http://www.worldofspectrum.org/

http://www.zxspectrum.net/

http://www.elmundodelspectrum.com/

Campaña publicitaria:

http://www.youtube.com/watch?v=esAZ4h3liDg