;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;; http://CPCrulez.fr ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Routine d'affichage de text en overscan ( le code provient de Crown ; Cruncher v1.4 ). Ce source ce compile sans problème sous MAXAM ou ; l'assembleur de WinAPE. nolist org &4000 di ld a, &0C9 ld hl, (&39) ld (hl), a ld sp, &0 ld hl, byte_4127 call sub_40A1 ld hl, byte_4108 call sub_4091 ; modif registres BCxx ld bc, &7F8A out (c), c ld hl, byte_412C ; text ld de, &8000 call sub_40E2 ld hl, byte_4122 call sub_40A1 loc_404F: call sub_40BC jr nc, loc_404F loc_4054: call sub_40BC jr c, loc_4054 jp 0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; sub_4091: ld b, &0BC ld a, (hl) inc hl cp &0FF ret z out (c), a inc b ld a, (hl) inc hl out (c), a jr sub_4091 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; sub_40A1: ld bc, &7F10 out (c), c ld a, (hl) inc hl or &40 ; '@' out (c), a ld c, &0 loc_40AE: out (c), c ld a, (hl) inc hl or &40 ; '@' out (c), a inc c bit &2, c jr z, loc_40AE ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; sub_40BC: ld a, &5 ld bc, &0F782 out (c), c ld bc, &0F40E out (c), c ld bc, &0F6C0 out (c), c ld c, &0 out (c), c ld bc, &0F792 out (c), c or &40 ld c, a dec b out (c), c ld b, &0F4 in a, (c) rla ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; sub_40E2: ld a, (hl) inc hl or a ret z push de exx pop de ld h, &7 ld l, a add hl, hl add hl, hl add hl, hl ld b, &8 loc_40F1: ld a, (hl) ld (de), a inc hl ld a, d add a, &8 ld d, a djnz loc_40F1 exx inc de ld a, d and &7 or e jr nz, sub_40E2 ld a, d add a, &38 ld d, a jr sub_40E2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; byte_4108: db &01,&2E db &02,&31 db &06,&21 db &07,&22 db &0C,&2C ; &2C pour &8000 db &0D,0 db &0FF byte_4122: db &0F db &0F db &14 db &13 db &0C byte_4127: db &0F db &0F db &0F db &13 db &0C ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; byte_412C: db " :: Example by http://CPCrulez.fr :: " db " ____. ____. :: " db " | | ______. | | ___ :: " db " | __|_______\\___ |____|__ | ____ _______ \ \ ___ :: " db " | \\____ \ / | ___// | ___/ __//__/ __ //__\ \/ /_ :: " db " |____ /\____/___| ____| \\ \_____ \__/ \:: " db " ___. \___/ \___/ \___ /\_______/\___/\ \: " db " \ |: ____ \____/ \_____\\ " db " .__\ |_/ __//____ ____. _______ ____.____ :: " db " | \| \_____ / | | _/ __ //____|_ | _|__________ ___:_ " db " |____|___ / | __|___\ \\__/ \ _ : _ / __ //___\\__ /__ " db " :: \____/ | \\___ ____ /\___// : \\___/\ \__/ / \ " db " :: |____ / \___/ | : | \___ _____\ \ " db " :: ____ \___/ |____|____| \___/ :\_____\ " db " _:________ | | ______. ___ ____ : :: " db " \\ /_| __|_______\\___ |_\_ \ | ______. :: " db " :\______/ ' \\__ \ / | \ \ | ____\___ | :: " db " :: / _____/ /\____/___|____\ \_ | \\ / | :: " db " :: /____/ \___/ \___| \____/___| :: " db " :: ______ .____ :: " db " _____: ______ \\__ \. | | :: " db " _/ __//_____\\__ \_/ / |____|__ | .____ :: " db " \ \__ / /\________/ ___/ | | | ______. ___::___ " db " \____/ /\_______/ \ ____| ______|__ |__\\___ |_\ \/ \_ " db " \___/ \___/ \ ___/ | / | \___/ / " db " :: ____. \ ____|\____/___|____ / " db " :: ______| |__ \___/ ___. \___/ " db " _:_\\___ | ___//_ ___ /\ ___. _______ _____ | | __ :: " db " \ / | \ | _/ / \ |_\___ \__\\__ /__| |/ /_:: " db " :\ /___|\___ | \ / \_ / / \ _ \: " db " ::\__/ \____| \____/\____/\_______/\____\ \__\ \ " db " :: \_____\ \_____\ " db " :: :: " db 0 |