Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;This program is supposed to set the v9958 with none blinking cursor (but if they where they would be blue), ;green background, black text and it should say "HELLO WORLD!" on the top left.
- ;assemble with z80asm (1.8 version confirmed working http://savannah.nongnu.org/projects/z80asm )
- ;change the following value being set to bc to the base address of the V9958
- ld bc,0x10
- ;some macros
- write0: macro TVAL
- ld a,TVAL
- out (c),a
- endm
- write1: macro AVAL
- inc bc
- ld a,AVAL
- out (c),a
- dec bc
- endm
- write2: macro VAL
- inc bc
- inc bc
- ld a,VAL
- out (c),a
- dec bc
- dec bc
- endm
- writereg: macro VAL REG
- inc bc
- ld a,VAL
- out (c),a
- ld a,REG | 0x80
- out (c),a
- dec bc
- endm
- ;actual code:
- writereg 00000100b 25
- writereg 00000100b 0
- writereg 01010001b 1
- writereg 00100010b 8
- writereg 00001100b 9
- ;;;;;;;;;;;; Writing font ;;;;;;;;;;;;;;
- writereg 00000000b 45
- writereg 00000000b 14 ; 0 0 0 0 0 A16 A15 A14
- write1 00000000b ; A7 - A0
- write1 01000000b ; 0 !R/W A13 - A8
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00000000b
- write0 00000000b
- write0 00010000b
- write0 00000000b
- write0 00101000b
- write0 00101000b
- write0 00101000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00101000b
- write0 00101000b
- write0 01111100b
- write0 00101000b
- write0 01111100b
- write0 00101000b
- write0 00101000b
- write0 00000000b
- write0 00010000b
- write0 00111100b
- write0 01010000b
- write0 00111000b
- write0 00010100b
- write0 01111000b
- write0 00010000b
- write0 00000000b
- write0 01100000b
- write0 01100100b
- write0 00001000b
- write0 00010000b
- write0 00100000b
- write0 01001100b
- write0 00001100b
- write0 00000000b
- write0 00110000b
- write0 01001000b
- write0 01010000b
- write0 00100000b
- write0 01010100b
- write0 01001000b
- write0 00110100b
- write0 00000000b
- write0 00110000b
- write0 00010000b
- write0 00100000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00001000b
- write0 00010000b
- write0 00100000b
- write0 00100000b
- write0 00100000b
- write0 00010000b
- write0 00001000b
- write0 00000000b
- write0 00100000b
- write0 00010000b
- write0 00001000b
- write0 00001000b
- write0 00001000b
- write0 00010000b
- write0 00100000b
- write0 00000000b
- write0 00000000b
- write0 00010000b
- write0 01010100b
- write0 00111000b
- write0 01010100b
- write0 00010000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00010000b
- write0 00010000b
- write0 01111100b
- write0 00010000b
- write0 00010000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00110000b
- write0 00010000b
- write0 00100000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 01111100b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00110000b
- write0 00110000b
- write0 00000000b
- write0 00000000b
- write0 00000100b
- write0 00001000b
- write0 00010000b
- write0 00100000b
- write0 01000000b
- write0 00000000b
- write0 00000000b
- write0 00111000b
- write0 01000100b
- write0 01001100b
- write0 01010100b
- write0 01100100b
- write0 01000100b
- write0 00111000b
- write0 00000000b
- write0 00010000b
- write0 00110000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00111000b
- write0 00000000b
- write0 00111000b
- write0 01000100b
- write0 00000100b
- write0 00001000b
- write0 00010000b
- write0 00100000b
- write0 01111100b
- write0 00000000b
- write0 01111100b
- write0 00001000b
- write0 00010000b
- write0 00001000b
- write0 00000100b
- write0 01000100b
- write0 00111000b
- write0 00000000b
- write0 00001000b
- write0 00011000b
- write0 00101000b
- write0 01001000b
- write0 01111100b
- write0 00001000b
- write0 00001000b
- write0 00000000b
- write0 01111100b
- write0 01000000b
- write0 01000000b
- write0 01111000b
- write0 00000100b
- write0 01000100b
- write0 00111000b
- write0 00000000b
- write0 00011000b
- write0 00100000b
- write0 01000000b
- write0 01111000b
- write0 01000100b
- write0 01000100b
- write0 00111000b
- write0 00000000b
- write0 01111100b
- write0 00000100b
- write0 00001000b
- write0 00010000b
- write0 00100000b
- write0 00100000b
- write0 00100000b
- write0 00000000b
- write0 00111000b
- write0 01000100b
- write0 01000100b
- write0 00111000b
- write0 01000100b
- write0 01000100b
- write0 00111000b
- write0 00000000b
- write0 00111000b
- write0 01000100b
- write0 01000100b
- write0 00111100b
- write0 00000100b
- write0 00001000b
- write0 00110000b
- write0 00000000b
- write0 00000000b
- write0 00110000b
- write0 00110000b
- write0 00000000b
- write0 00110000b
- write0 00110000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00110000b
- write0 00110000b
- write0 00000000b
- write0 00110000b
- write0 00010000b
- write0 00100000b
- write0 00000000b
- write0 00001000b
- write0 00010000b
- write0 00100000b
- write0 01000000b
- write0 00100000b
- write0 00010000b
- write0 00001000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 01111100b
- write0 00000000b
- write0 01111100b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 01000000b
- write0 00100000b
- write0 00010000b
- write0 00001000b
- write0 00010000b
- write0 00100000b
- write0 01000000b
- write0 00000000b
- write0 00111000b
- write0 01000100b
- write0 00000100b
- write0 00001000b
- write0 00010000b
- write0 00000000b
- write0 00010000b
- write0 00000000b
- write0 00111000b
- write0 01000100b
- write0 00000100b
- write0 00110100b
- write0 01010100b
- write0 01010100b
- write0 00111000b
- write0 00000000b
- write0 00111000b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 01111100b
- write0 01000100b
- write0 01000100b
- write0 00000000b
- write0 01111000b
- write0 01000100b
- write0 01000100b
- write0 01111000b
- write0 01000100b
- write0 01000100b
- write0 01111000b
- write0 00000000b
- write0 00111000b
- write0 01000100b
- write0 01000000b
- write0 01000000b
- write0 01000000b
- write0 01000100b
- write0 00111000b
- write0 00000000b
- write0 01110000b
- write0 01001000b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 01001000b
- write0 01110000b
- write0 00000000b
- write0 01111100b
- write0 01000000b
- write0 01000000b
- write0 01111000b
- write0 01000000b
- write0 01000000b
- write0 01111100b
- write0 00000000b
- write0 01111100b
- write0 01000000b
- write0 01000000b
- write0 01111000b
- write0 01000000b
- write0 01000000b
- write0 01000000b
- write0 00000000b
- write0 00111000b
- write0 01000100b
- write0 01000000b
- write0 01011100b
- write0 01000100b
- write0 01000100b
- write0 00111100b
- write0 00000000b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 01111100b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 00000000b
- write0 00111000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00111000b
- write0 00000000b
- write0 00011100b
- write0 00001000b
- write0 00001000b
- write0 00001000b
- write0 00001000b
- write0 01001000b
- write0 00110000b
- write0 00000000b
- write0 01000100b
- write0 01001000b
- write0 01010000b
- write0 01100000b
- write0 01010000b
- write0 01001000b
- write0 01000100b
- write0 00000000b
- write0 01000000b
- write0 01000000b
- write0 01000000b
- write0 01000000b
- write0 01000000b
- write0 01000000b
- write0 01111100b
- write0 00000000b
- write0 01000100b
- write0 01101100b
- write0 01010100b
- write0 01010100b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 00000000b
- write0 01000100b
- write0 01000100b
- write0 01100100b
- write0 01010100b
- write0 01001100b
- write0 01000100b
- write0 01000100b
- write0 00000000b
- write0 00111000b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 00111000b
- write0 00000000b
- write0 01111000b
- write0 01000100b
- write0 01000100b
- write0 01111000b
- write0 01000000b
- write0 01000000b
- write0 01000000b
- write0 00000000b
- write0 00111000b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 01010100b
- write0 01001000b
- write0 00110100b
- write0 00000000b
- write0 01111000b
- write0 01000100b
- write0 01000100b
- write0 01111000b
- write0 01010000b
- write0 01001000b
- write0 01000100b
- write0 00000000b
- write0 00111100b
- write0 01000000b
- write0 01000000b
- write0 00111000b
- write0 00000100b
- write0 00000100b
- write0 01111000b
- write0 00000000b
- write0 01111100b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00000000b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 00111000b
- write0 00000000b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 00101000b
- write0 00010000b
- write0 00000000b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 01010100b
- write0 01010100b
- write0 01010100b
- write0 00101000b
- write0 00000000b
- write0 01000100b
- write0 01000100b
- write0 00101000b
- write0 00010000b
- write0 00101000b
- write0 01000100b
- write0 01000100b
- write0 00000000b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 00101000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00000000b
- write0 01111100b
- write0 00000100b
- write0 00001000b
- write0 00010000b
- write0 00100000b
- write0 01000000b
- write0 01111100b
- write0 00000000b
- write0 00111000b
- write0 00100000b
- write0 00100000b
- write0 00100000b
- write0 00100000b
- write0 00100000b
- write0 00111000b
- write0 00000000b
- write0 01000100b
- write0 00101000b
- write0 01111100b
- write0 00010000b
- write0 01111100b
- write0 00010000b
- write0 00010000b
- write0 00000000b
- write0 00111000b
- write0 00001000b
- write0 00001000b
- write0 00001000b
- write0 00001000b
- write0 00001000b
- write0 00111000b
- write0 00000000b
- write0 00010000b
- write0 00101000b
- write0 01000100b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 01111100b
- write0 00000000b
- write0 00100000b
- write0 00010000b
- write0 00001000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00111000b
- write0 00000100b
- write0 00111100b
- write0 01000100b
- write0 00111100b
- write0 00000000b
- write0 01000000b
- write0 01000000b
- write0 01011000b
- write0 01100100b
- write0 01000100b
- write0 01000100b
- write0 01111000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00111000b
- write0 01000000b
- write0 01000000b
- write0 01000100b
- write0 00111000b
- write0 00000000b
- write0 00000100b
- write0 00000100b
- write0 00110100b
- write0 01001100b
- write0 01000100b
- write0 01000100b
- write0 00111100b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00111000b
- write0 01000100b
- write0 01111100b
- write0 01000000b
- write0 00111000b
- write0 00000000b
- write0 00011000b
- write0 00100100b
- write0 00100000b
- write0 01110000b
- write0 00100000b
- write0 00100000b
- write0 00100000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00111100b
- write0 01000100b
- write0 01000100b
- write0 00111100b
- write0 00000100b
- write0 00111000b
- write0 01000000b
- write0 01000000b
- write0 01011000b
- write0 01100100b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 00000000b
- write0 00010000b
- write0 00000000b
- write0 00110000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00111000b
- write0 00000000b
- write0 00001000b
- write0 00000000b
- write0 00011000b
- write0 00001000b
- write0 00001000b
- write0 01001000b
- write0 00110000b
- write0 00000000b
- write0 00100000b
- write0 00100000b
- write0 00100100b
- write0 00101000b
- write0 00110000b
- write0 00101000b
- write0 00100100b
- write0 00000000b
- write0 00110000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00111000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 01101000b
- write0 01010100b
- write0 01010100b
- write0 01000100b
- write0 01000100b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 01111000b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00111000b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 00111000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 01111000b
- write0 01000100b
- write0 01000100b
- write0 01111000b
- write0 01000000b
- write0 01000000b
- write0 00000000b
- write0 00000000b
- write0 00110100b
- write0 01001100b
- write0 01000100b
- write0 00111100b
- write0 00000100b
- write0 00000100b
- write0 00000000b
- write0 00000000b
- write0 01011000b
- write0 01100100b
- write0 01000000b
- write0 01000000b
- write0 01000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00111000b
- write0 01000000b
- write0 00111000b
- write0 00000100b
- write0 01111000b
- write0 00000000b
- write0 00100000b
- write0 00100000b
- write0 01110000b
- write0 00100000b
- write0 00100000b
- write0 00100100b
- write0 00011000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 01001100b
- write0 00110100b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 00101000b
- write0 00010000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 01000100b
- write0 01000100b
- write0 01000100b
- write0 01010100b
- write0 00101000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 01000100b
- write0 00101000b
- write0 00010000b
- write0 00101000b
- write0 01000100b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 01000100b
- write0 01000100b
- write0 00111100b
- write0 00000100b
- write0 00111000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 01111100b
- write0 00001000b
- write0 00010000b
- write0 00100000b
- write0 01111100b
- write0 00000000b
- write0 00001000b
- write0 00010000b
- write0 00010000b
- write0 00100000b
- write0 00010000b
- write0 00010000b
- write0 00001000b
- write0 00000000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00010000b
- write0 00000000b
- write0 00100000b
- write0 00010000b
- write0 00010000b
- write0 00001000b
- write0 00010000b
- write0 00010000b
- write0 00100000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00100000b
- write0 01010100b
- write0 00001000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- write0 00000000b
- writereg 00000000b 4 ; pattern gen table base 0 0 A16 ... A11
- ;;;;;;;;;; Write Text ;;;;;;;;;;;;;;;;;;;;
- writereg 00000000b 45
- writereg 00000100b 14 ; 0 0 0 0 0 a16 a15 a14
- write1 00000000b ; a7 - a0
- write1 01000000b ; 0 !r/w a13 - a8
- write0 0x28
- write0 0x25
- write0 0x2c
- write0 0x2c
- write0 0x2f
- write0 0x00
- write0 0x37
- write0 0x2f
- write0 0x32
- write0 0x2c
- write0 0x24
- write0 0x01
- ;To clear the rest of the screen :
- ;ld hl,0x700
- ;loop:
- ; write0 0x00
- ; dec hl
- ; ld a,h
- ;xor 0
- ;jr nz,loop
- ;ld a,l
- ;xor 0
- ;jr nz,loop
- writereg 00100011b 2 ; pattern name table base [ 0 A16 A15 A14 A13 A12 1 1 ]
- ;;;;;;;;;;;;;;write color ;;;;;;;;;;;;;;;;;;;;
- writereg 00000001b 16
- write2 00000000b ;0RRR0BBB
- write2 00000111b ;00000GGG
- writereg 00000000b 16
- write2 00000111b ;0RRR0BBB
- write2 00000000b ;00000GGG
- writereg 00000010b 16
- write2 01110000b ;0RRR0BBB
- write2 00000000b ;00000GGG
- writereg 00000011b 16
- write2 00000000b ;0RRR0BBB
- write2 00000000b ;00000GGG
- writereg 00110001b 7
- ;;;;;;;;;;;;;write blink ;;;;;;;;;;;;;;;;;;;
- writereg 00000000b 45
- writereg 00000000b 14 ; 0 0 0 0 0 a16 a15 a14
- write1 00000000b ; a7 - a0
- write1 01001010b ; 0 !r/w a13 - a8
- ld hl,0x100
- loop1:
- write0 0x00
- dec hl
- ld a,h
- xor 0
- jr nz,loop1
- ld a,l
- xor 0
- jr nz,loop1
- writereg 00101111b 3 ; A13 A12 A11 A9 1 1 1
- writereg 00000000b 10; 0 0 0 0 0 A16 A15 A14
- writereg 00110000b 12; alt colors for blink
- writereg 00100010b 13; blink on/off
- ;;;;;;; please work ;;;;;;;
- ;ld bc,0
- ;ld a,0xBB
- ;out (c),a
- di
- halt
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement