Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *-----------------------------------------------------------
- * Title : Icono T-REX
- * Written by : Fulgencio
- * Date : Abril 2020
- * Description:
- *-----------------------------------------------------------
- GRAY EQU $00808080
- WHITE EQU $00FFFFFF
- SCALE EQU 4
- X1POS EQU 50 * Coordenada X esquina izquierda
- Y1POS EQU 200 * Coordenada Y esquina superior
- X2POS EQU X1POS+20*SCALE * Máxima coordenada alcanzada en X
- Y2POS EQU Y1POS+21*SCALE * Máxima coordenada alcanzada en Y
- ORG $1000
- START: ; first instruction of program
- * Put program code here
- MOVE.L #81,D0
- MOVE.L #WHITE,D1 *Selecciona color de relleno blanco
- TRAP #15
- MOVE.L #89,D0 *Rellena la pantalla del color de relleno
- MOVE.L #0,D1
- MOVE.L #0,D2 *Punto arbitrario 0,0
- TRAP #15
- MOVE.L #80,D0
- MOVE.L #GRAY,D1
- TRAP #15
- MOVE.L #81,D0
- MOVE.L #GRAY,D1
- TRAP #15
- MOVE.L #TREXICON,A0
- MOVE.L #X1POS,D1
- MOVE.L #Y1POS,D2
- WHITESCAN
- MOVE.B (A0)+,D0 *Longitud de la tramo blanco
- MULU #SCALE,D0 *ESCALAMOS en X
- ADD.L D0,D1
- CMP.L #X2POS,D1 *¿Hemos llegado al extremo derecho?
- BEQ NEWSCAN
- MOVE.L D1,D3 *Copiamos de momento las coordenadas
- MOVE.L D2,D4 *de la esquina izquierda a la derecha
- MOVE.B (A0)+,D0 *Longitud de la línea gris
- MULU #SCALE,D0 *ESCALAMOS en X
- ADD.L D0,D3 *Desplazamiento en X
- SUB.L #1,D3 *La coordenada final es una menos
- ADD.L #SCALE-1,D4 *ESCALAMOS grosor en Y
- JSR GRAYRECT *Dibujamos línea horizontal en gris
- ADD.L D0,D1 *Avanzamos hasta el siguiente punto
- CMP.L #X2POS,D1 *¿Hemos llegado al extremo derecho?
- BEQ NEWSCAN
- JMP WHITESCAN
- NEWSCAN
- ADD.L #SCALE,D2 *ESCALADO en Y
- CMP.L #Y2POS,D2
- BEQ FIN
- MOVE.L #X1POS,D1
- JMP WHITESCAN
- FIN SIMHALT
- GRAYRECT
- MOVE.L D0,-(A7)
- MOVE.L #87,D0
- TRAP #15
- MOVE.L (A7)+,D0
- RTS
- SIMHALT ; halt simulator
- * Put variables and constants here
- TREXICON *ICONO T-REX EN FORMATO 20x21*
- *El formato codifica un gráfico en dos colores, fondo y tinta. El gráfico se va definiendo por líneas horizontales.
- *La secuencia de números representan alternativamente la longitud de línea de color de fondo (que no se dibuja) y
- *la longitud de la línea de tinta (la que se dibuja) y así sucesivamente hasta que suman el total del ancho que en
- *este caso es de 20. Después se vuelve a empezar con la longitud de línea de fondo de la línea horizontal siguiente
- *Ej. 10,2,1,7 significa 10 pixels de fondo (blanco), 2 en tinta, 1 de fondo (blanco) y 7 en tinta. A continuación
- *se definiría la línea siguiente empezando de nuevo por el fondo y así hasta definir todas las líneas del gráfico,
- *que en este caso concreto son 21
- DC.B 11,8,1,10,2,1,7,10,10,10,10,10,10,10,5,5,10,8,2,0,1,8,5,6
- DC.B 0,1,7,6,6,0,2,4,10,4,0,3,2,9,1,1,4,0,14,6,0,14,6
- DC.B 1,13,6,2,11,7,3,9,8,4,7,9,5,3,2,3,7,5,2,13,5,1,14,5,2,13
- END START ; last line of source
Add Comment
Please, Sign In to add comment