|
ORG &9000 T_CARAC equ &7000 T_TABLE equ &7800 ; ; Prendre les fontes des caracteres ; JP QON ; scrolling active JP QOFF ; scrolling desactive QON: XOR A CALL &BBA5 CALL &B906 PUSH AF LD DE,T_CARAC LD BC,8*256 LDIR POP AF CALL &B90C ; NB EQU 15 LI EQU 110 ; Calcul d'une vague LD HL, &C000+12 LD B,LI BO1: CALL RBC26 DJNZ BO1 CALL VAGUE LD HL,NB-1*2+T_TABLE LD A, (HL) INC HL LD H, (HL) LD L,A LD (OFSET) ,HL LD HL,NOM ; Le message au debut svp LD (OFNOM),HL ; ; On recconfigure les interuptions du CPC ; D_INT: DI LD HL, (&39) INC HL LD (QINT) ,HL LD (HL),&C3 LD DE, INT INC HL LD (HL),E INC HL LD (HL),D INC HL LD (D_INT3+1) ,HL LD DE,&33 ADD HL,DE LD (D_INT2+1),HL RET ; VAGUE: LD B,8 LD IX,T_TABLE VAGUE1: PUSH HL LD C,NB VAGUE2: LD (IX+0),L LD (IX+1),H INC IX INC IX INC HL CALL VAGUE3 DEC C JR NZ,VAGUE2 POP HL CALL RBC26 DJNZ VAGUE1 RET VAGUE3: BIT 3,L JP Z,RBC26 JP #BC29 ; INT: PUSH AF PUSH BC PUSH HL PUSH DE LD BC,#7F8D OUT (C),C CALL INTA POP DE POP HL POP BC POP AF EX AF,AF' D_INT2: JP C,0 D_INT3: JP 0 ; INTA: LD B,&F5 IN A, (C) RRA JR C,INTE0 KL: LD A, 7 INC A LD (KL+1),A CP 4 JR C,INTE1 JR Z,INTE2 RET ; INTE0: XOR A LD (KL+1) ,A LD HL,T_TABLE JR SPRG1 INTE1: LD HL, (THL) SPRG1: LD B,2 SPRG1_1: LD C,NB-1 LD E, (HL) INC HL LD D, (HL) INC HL SPRG1_2: PUSH HL LD A, (HL) INC HL LD H, (HL) LD L,A LD A, (HL) LD (DE), A EX DE ,HL POP HL INC HL INC HL DEC C JR NZ,SPRG1_2 DJNZ SPRG1_1 LD (THL) ,HL RET ; INTE2: SPRG2: ; Envoie du caractere LD HL, (OFNOM) LD A, (HL) OR A JR NZ,SPRG2_1 LD HL ,NOM LD A, (HL) SPRG2_1: LD C,A LD A, (FLAG) XOR &FF LD (FLAG) ,A CALL NZ,SPRG2_4 LD DE, (FLAG1) LD HL, (OFSET) LD B,8 SPRG2_2: LD A, (DE) LD C,A LD A, (FLAG) OR A LD A,&0F JP Z,SPRG2_3 LD A,&F0 SPRG2_3: AND C LD (HL) ,A INC DE CALL RBC26 DJNZ SPRG2_2 RET ; SPRG2_4: INC HL LD (OFNOM) ,HL LD L,C LD H,0 ADD HL ,HL ADD HL ,HL ADD HL ,HL LD DE,T_CARAC ADD HL ,DE LD (FLAG1) ,HL RET ; QOFF: DI LD HL, (QINT) LD (HL), &08 INC HL LD (HL), #38 INC HL LD (HL),#33 RET ; RBC26: LD A,H ADD A,#08 LD H,A AND #38 RET NZ PUSH DE LD DE,&C050 ADD HL ,DE POP DE RET ; ; FLAG DEFB 0 FLAG1 DEFW 0 OFSET DEFW 0 OFNOM DEFW 0 THL DEFW 0 QINT DEFW 0 ; NOM DB "BONJOUR, A TOI DEFM ,LISEZ 100%" DB 0 |