Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "header.asm"
- start:
- call _ZeroOP1
- call _AnsName
- call _FindSym
- ret c
- ex de, hl
- ld a, (hl)
- cp 8
- ret nc
- ld bc, 0
- ld c, a
- inc hl
- inc hl
- ld de, OP1+1
- ldir
- ld hl, OP1
- ld (hl), ProgObj
- call _ChkFindSym
- ret c
- push de
- ld a, lcdBpp8
- ld (mpLcdCtrl),a
- ld de,mpLcdPalette
- ld b,e
- _: ld a,b
- rrca
- xor a,b
- and a,%11100000
- xor a,b
- ld (de),a
- inc de
- ld a,b
- rra
- ld (de),a
- inc de
- inc b
- jr nz,-_
- ld hl, vRAM
- ld (hl), 255
- push hl
- pop de
- inc de
- ld bc, 320*9-1
- ldir
- inc hl
- inc de
- ld (hl), 0
- ld bc, 320-1
- ldir
- inc hl
- inc de
- ld (hl), 255
- ld bc, 320*(240-9-1)-1
- ldir
- ld hl, home_text
- loop:
- ld a, (hl)
- or a, a
- jp z, stop
- call _PrintChar_ASM
- inc hl
- jr loop
- stop:
- pop de
- ld hl, (320*12)+(4*1)
- ld (TextXPos_ASM), hl
- ex de, hl
- inc hl
- inc hl
- putline:
- push hl
- call _Get_Tok_Strng
- ld hl, OP3
- putcharacter:
- ld a, (hl)
- or a, a
- jp z, stopcharacter
- cp tEnter
- jp z, stopline
- call _PrintChar_ASM
- inc hl
- jr putcharacter
- stopcharacter:
- pop hl
- inc hl
- jr putline
- stopline:
- ld a, lcdBpp16
- ld (mpLcdCtrl),a
- ret
- _PrintChar_ASM:
- push hl
- TextXPos_ASM = $+1
- ld bc, 320+22
- push af
- push af
- push bc
- push af
- ld a,(MonoFlag_ASM)
- or a,a
- ld a,8
- pop de
- jr z,+_
- or a,a
- sbc hl,hl
- ld l,d
- ld de,(CharSpacing_ASM)
- add hl,de
- ld a,(hl)
- inc a
- _: ld (charwidth),a
- or a,a
- sbc hl,hl
- ld l,a
- neg
- ld (CharWidthDelta_ASM),a
- add hl,bc
- ld (TextXPos_ASM),hl
- CharWidthDelta_ASM =$+1
- ld de,$FFFFFF
- ld hl,lcdWidth
- add hl,de
- ld (line_change),hl
- TextYPos_ASM = $+1
- ld l,0
- ld h,160
- mlt hl
- add hl,hl
- ld de,vRAM
- add hl,de
- pop de
- add hl,de
- pop af
- ex de,hl
- or a,a
- sbc hl,hl
- ld l,a
- add hl,hl
- add hl,hl
- add hl,hl
- ld bc,(TextData_ASM)
- add hl,bc
- ld b,8
- iloop: push bc
- ld c,(hl)
- charwidth =$+1
- ld b,0
- ex de,hl
- push de
- TextColor_ASM =$+1
- ld de,$FF00
- cloop: ld a,d
- rlc c
- jr nc,+_
- ld a,e
- _: cp a,$FF
- jr nz,+_
- ld a,(hl)
- _: ld (hl),a
- inc hl
- djnz cloop
- line_change =$+1
- ld bc,0
- add hl,bc
- pop de
- ex de,hl
- inc hl
- pop bc
- djnz iloop
- pop af
- pop hl
- ret
- home_text:
- .db "Program Viewer - By Peter \"PT_\" Tillema", 0
- MonoFlag_ASM:
- .db $FF
- CharSpacing_ASM:
- .dl DefaultCharSpacing_ASM
- TextData_ASM:
- .dl DefaultTextData_ASM
- DefaultCharSpacing_ASM:
- ; 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
- .db 8,8,8,7,7,7,8,8,8,8,8,8,8,1,8,8
- .db 7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8
- .db 2,3,5,7,7,7,7,4,4,4,8,6,3,6,2,7
- .db 7,6,7,7,7,7,7,7,7,7,2,3,5,6,5,6
- .db 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
- .db 7,7,7,7,8,7,7,7,7,7,7,4,7,4,7,8
- .db 3,7,7,7,7,7,7,7,7,4,7,7,4,7,7,7
- .db 7,7,7,7,6,7,7,7,7,7,7,6,2,6,7,7
- .db 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
- .db 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
- ;-------------------------------------------------------------------------------
- DefaultTextData_ASM:
- Char000: .db $00,$00,$00,$00,$00,$00,$00,$00 ; .
- Char001: .db $7E,$81,$A5,$81,$BD,$BD,$81,$7E ; .
- Char002: .db $7E,$FF,$DB,$FF,$C3,$C3,$FF,$7E ; .
- Char003: .db $6C,$FE,$FE,$FE,$7C,$38,$10,$00 ; .
- Char004: .db $10,$38,$7C,$FE,$7C,$38,$10,$00 ; .
- Char005: .db $38,$7C,$38,$FE,$FE,$10,$10,$7C ; .
- Char006: .db $00,$18,$3C,$7E,$FF,$7E,$18,$7E ; .
- Char007: .db $00,$00,$18,$3C,$3C,$18,$00,$00 ; .
- Char008: .db $FF,$FF,$E7,$C3,$C3,$E7,$FF,$FF ; .
- Char009: .db $00,$3C,$66,$42,$42,$66,$3C,$00 ; .
- Char010: .db $FF,$C3,$99,$BD,$BD,$99,$C3,$FF ; .
- Char011: .db $0F,$07,$0F,$7D,$CC,$CC,$CC,$78 ; .
- Char012: .db $3C,$66,$66,$66,$3C,$18,$7E,$18 ; .
- Char013: .db $3F,$33,$3F,$30,$30,$70,$F0,$E0 ; .
- Char014: .db $7F,$63,$7F,$63,$63,$67,$E6,$C0 ; .
- Char015: .db $99,$5A,$3C,$E7,$E7,$3C,$5A,$99 ; .
- Char016: .db $80,$E0,$F8,$FE,$F8,$E0,$80,$00 ; .
- Char017: .db $02,$0E,$3E,$FE,$3E,$0E,$02,$00 ; .
- Char018: .db $18,$3C,$7E,$18,$18,$7E,$3C,$18 ; .
- Char019: .db $66,$66,$66,$66,$66,$00,$66,$00 ; .
- Char020: .db $7F,$DB,$DB,$7B,$1B,$1B,$1B,$00 ; .
- Char021: .db $3F,$60,$7C,$66,$66,$3E,$06,$FC ; .
- Char022: .db $00,$00,$00,$00,$7E,$7E,$7E,$00 ; .
- Char023: .db $18,$3C,$7E,$18,$7E,$3C,$18,$FF ; .
- Char024: .db $18,$3C,$7E,$18,$18,$18,$18,$00 ; .
- Char025: .db $18,$18,$18,$18,$7E,$3C,$18,$00 ; .
- Char026: .db $00,$18,$0C,$FE,$0C,$18,$00,$00 ; .
- Char027: .db $00,$30,$60,$FE,$60,$30,$00,$00 ; .
- Char028: .db $00,$00,$C0,$C0,$C0,$FE,$00,$00 ; .
- Char029: .db $00,$24,$66,$FF,$66,$24,$00,$00 ; .
- Char030: .db $00,$18,$3C,$7E,$FF,$FF,$00,$00 ; .
- Char031: .db $00,$FF,$FF,$7E,$3C,$18,$00,$00 ; .
- Char032: .db $00,$00,$00,$00,$00,$00,$00,$00 ;
- Char033: .db $C0,$C0,$C0,$C0,$C0,$00,$C0,$00 ; !
- Char034: .db $D8,$D8,$D8,$00,$00,$00,$00,$00 ; "
- Char035: .db $6C,$6C,$FE,$6C,$FE,$6C,$6C,$00 ; #
- Char036: .db $18,$7E,$C0,$7C,$06,$FC,$18,$00 ; $
- Char037: .db $00,$C6,$CC,$18,$30,$66,$C6,$00 ; %
- Char038: .db $38,$6C,$38,$76,$DC,$CC,$76,$00 ; &
- Char039: .db $30,$30,$60,$00,$00,$00,$00,$00 ; '
- Char040: .db $30,$60,$C0,$C0,$C0,$60,$30,$00 ; (
- Char041: .db $C0,$60,$30,$30,$30,$60,$C0,$00 ; )
- Char042: .db $00,$66,$3C,$FF,$3C,$66,$00,$00 ; *
- Char043: .db $00,$30,$30,$FC,$FC,$30,$30,$00 ; +
- Char044: .db $00,$00,$00,$00,$00,$60,$60,$C0 ; ,
- Char045: .db $00,$00,$00,$FC,$00,$00,$00,$00 ; -
- Char046: .db $00,$00,$00,$00,$00,$C0,$C0,$00 ; .
- Char047: .db $06,$0C,$18,$30,$60,$C0,$80,$00 ; /
- Char048: .db $7C,$CE,$DE,$F6,$E6,$C6,$7C,$00 ; 0
- Char049: .db $30,$70,$30,$30,$30,$30,$FC,$00 ; 1
- Char050: .db $7C,$C6,$06,$7C,$C0,$C0,$FE,$00 ; 2
- Char051: .db $FC,$06,$06,$3C,$06,$06,$FC,$00 ; 3
- Char052: .db $0C,$CC,$CC,$CC,$FE,$0C,$0C,$00 ; 4
- Char053: .db $FE,$C0,$FC,$06,$06,$C6,$7C,$00 ; 5
- Char054: .db $7C,$C0,$C0,$FC,$C6,$C6,$7C,$00 ; 6
- Char055: .db $FE,$06,$06,$0C,$18,$30,$30,$00 ; 7
- Char056: .db $7C,$C6,$C6,$7C,$C6,$C6,$7C,$00 ; 8
- Char057: .db $7C,$C6,$C6,$7E,$06,$06,$7C,$00 ; 9
- Char058: .db $00,$C0,$C0,$00,$00,$C0,$C0,$00 ; :
- Char059: .db $00,$60,$60,$00,$00,$60,$60,$C0 ; ;
- Char060: .db $18,$30,$60,$C0,$60,$30,$18,$00 ; <
- Char061: .db $00,$00,$FC,$00,$FC,$00,$00,$00 ; =
- Char062: .db $C0,$60,$30,$18,$30,$60,$C0,$00 ; >
- Char063: .db $78,$CC,$18,$30,$30,$00,$30,$00 ; ?
- Char064: .db $7C,$C6,$DE,$DE,$DE,$C0,$7E,$00 ; @
- Char065: .db $38,$6C,$C6,$C6,$FE,$C6,$C6,$00 ; A
- Char066: .db $FC,$C6,$C6,$FC,$C6,$C6,$FC,$00 ; B
- Char067: .db $7C,$C6,$C0,$C0,$C0,$C6,$7C,$00 ; C
- Char068: .db $F8,$CC,$C6,$C6,$C6,$CC,$F8,$00 ; D
- Char069: .db $FE,$C0,$C0,$F8,$C0,$C0,$FE,$00 ; E
- Char070: .db $FE,$C0,$C0,$F8,$C0,$C0,$C0,$00 ; F
- Char071: .db $7C,$C6,$C0,$C0,$CE,$C6,$7C,$00 ; G
- Char072: .db $C6,$C6,$C6,$FE,$C6,$C6,$C6,$00 ; H
- Char073: .db $7E,$18,$18,$18,$18,$18,$7E,$00 ; I
- Char074: .db $06,$06,$06,$06,$06,$C6,$7C,$00 ; J
- Char075: .db $C6,$CC,$D8,$F0,$D8,$CC,$C6,$00 ; K
- Char076: .db $C0,$C0,$C0,$C0,$C0,$C0,$FE,$00 ; L
- Char077: .db $C6,$EE,$FE,$FE,$D6,$C6,$C6,$00 ; M
- Char078: .db $C6,$E6,$F6,$DE,$CE,$C6,$C6,$00 ; N
- Char079: .db $7C,$C6,$C6,$C6,$C6,$C6,$7C,$00 ; O
- Char080: .db $FC,$C6,$C6,$FC,$C0,$C0,$C0,$00 ; P
- Char081: .db $7C,$C6,$C6,$C6,$D6,$DE,$7C,$06 ; Q
- Char082: .db $FC,$C6,$C6,$FC,$D8,$CC,$C6,$00 ; R
- Char083: .db $7C,$C6,$C0,$7C,$06,$C6,$7C,$00 ; S
- Char084: .db $FF,$18,$18,$18,$18,$18,$18,$00 ; T
- Char085: .db $C6,$C6,$C6,$C6,$C6,$C6,$FE,$00 ; U
- Char086: .db $C6,$C6,$C6,$C6,$C6,$7C,$38,$00 ; V
- Char087: .db $C6,$C6,$C6,$C6,$D6,$FE,$6C,$00 ; W
- Char088: .db $C6,$C6,$6C,$38,$6C,$C6,$C6,$00 ; X
- Char089: .db $C6,$C6,$C6,$7C,$18,$30,$E0,$00 ; Y
- Char090: .db $FE,$06,$0C,$18,$30,$60,$FE,$00 ; Z
- Char091: .db $F0,$C0,$C0,$C0,$C0,$C0,$F0,$00 ; [
- Char092: .db $C0,$60,$30,$18,$0C,$06,$02,$00 ; \
- Char093: .db $F0,$30,$30,$30,$30,$30,$F0,$00 ; ]
- Char094: .db $10,$38,$6C,$C6,$00,$00,$00,$00 ; ^
- Char095: .db $00,$00,$00,$00,$00,$00,$00,$FF ; _
- Char096: .db $C0,$C0,$60,$00,$00,$00,$00,$00 ; `
- Char097: .db $00,$00,$7C,$06,$7E,$C6,$7E,$00 ; a
- Char098: .db $C0,$C0,$C0,$FC,$C6,$C6,$FC,$00 ; b
- Char099: .db $00,$00,$7C,$C6,$C0,$C6,$7C,$00 ; c
- Char100: .db $06,$06,$06,$7E,$C6,$C6,$7E,$00 ; d
- Char101: .db $00,$00,$7C,$C6,$FE,$C0,$7C,$00 ; e
- Char102: .db $1C,$36,$30,$78,$30,$30,$78,$00 ; f
- Char103: .db $00,$00,$7E,$C6,$C6,$7E,$06,$FC ; g
- Char104: .db $C0,$C0,$FC,$C6,$C6,$C6,$C6,$00 ; h
- Char105: .db $60,$00,$E0,$60,$60,$60,$F0,$00 ; i
- Char106: .db $06,$00,$06,$06,$06,$06,$C6,$7C ; j
- Char107: .db $C0,$C0,$CC,$D8,$F8,$CC,$C6,$00 ; k
- Char108: .db $E0,$60,$60,$60,$60,$60,$F0,$00 ; l
- Char109: .db $00,$00,$CC,$FE,$FE,$D6,$D6,$00 ; m
- Char110: .db $00,$00,$FC,$C6,$C6,$C6,$C6,$00 ; n
- Char111: .db $00,$00,$7C,$C6,$C6,$C6,$7C,$00 ; o
- Char112: .db $00,$00,$FC,$C6,$C6,$FC,$C0,$C0 ; p
- Char113: .db $00,$00,$7E,$C6,$C6,$7E,$06,$06 ; q
- Char114: .db $00,$00,$FC,$C6,$C0,$C0,$C0,$00 ; r
- Char115: .db $00,$00,$7E,$C0,$7C,$06,$FC,$00 ; s
- Char116: .db $30,$30,$FC,$30,$30,$30,$1C,$00 ; t
- Char117: .db $00,$00,$C6,$C6,$C6,$C6,$7E,$00 ; u
- Char118: .db $00,$00,$C6,$C6,$C6,$7C,$38,$00 ; v
- Char119: .db $00,$00,$C6,$C6,$D6,$FE,$6C,$00 ; w
- Char120: .db $00,$00,$C6,$6C,$38,$6C,$C6,$00 ; x
- Char121: .db $00,$00,$C6,$C6,$C6,$7E,$06,$FC ; y
- Char122: .db $00,$00,$FE,$0C,$38,$60,$FE,$00 ; z
- Char123: .db $1C,$30,$30,$E0,$30,$30,$1C,$00 ; {
- Char124: .db $C0,$C0,$C0,$00,$C0,$C0,$C0,$00 ; |
- Char125: .db $E0,$30,$30,$1C,$30,$30,$E0,$00 ; }
- Char126: .db $76,$DC,$00,$00,$00,$00,$00,$00 ; ~
- Char127: .db $00,$10,$38,$6C,$C6,$C6,$FE,$00 ; .
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement