; "SCROLLING HARD VERTICAL
; PAR SNN 3/03/98 ; run &3000 JP &3000 NOLIST ORG &3000 CALL DELOCK REINIT XOR A LD HL,0 LD (OFFSET),HL LD (COMPT),A LD HL,&C000 LD (ADR),HL LD BC,&BC02 OUT(C),C LD BC,&BD00+43 OUT(C),C LD BC,&BC01 OUT(C),C LD BC,&BD00+32 OUT(C),C LD BC,&BC06 OUT(C),C LD BC,&BD00+31 OUT(C),C LD BC,&BC07 OUT (C),C LD BC,&BD00+34 OUT(C),C DI LD HL,(&38) LD (INTER),HL LD HL,&C9FB LD(&38),HL EI ; DEBUT SYNCHRO START LD B,&F5 SYNCHRO IN A,(C) RRA JR NC,SYNCHRO LD BC,&7FB8 OUT(C),C LD A,(COMPT) AND %111 RLA RLA RLA RLA LD (SSCR),A OR A ; Doit-on toucher l'offset ? JR NZ,SUITE LD HL,(OFFSET) LD BC,32 ADD HL,BC LD (OFFSET),HL LD A,H AND %11 OR &30 LD BC,&BC0C OUT(C),C LD BC,&BD00 OUT(C),A LD A,L LD BC,&BC0D OUT(C),C LD BC,&BD00 OUT (C),A SUITE LD BC,&7FA0 OUT(C),C LD DE,(ADR) CALL BC26 LD(ADR),DE ; AFFICHAGE DU SCROLLING ; GESTION COMPTEUR + TEST CLAVIER LD A,(COMPT) INC A LD (COMPT),A KEY LD BC,&F40E OUT (C),C LD BC,&F6C0 OUT (C),C XOR A OUT (C),C LD BC,&F792 OUT (C),C LD BC,&F640 OUT(C),C LD B,&F4 IN A,(C) LD BC,&F782 OUT(C),C LD BC,&F600 OUT(C),C RLA RLA JP C,START FIN LD BC,&7FB8 OUT(C),C XOR A LD (SSCR),A LD BC,&7FA0 OUT(C),C DI LD HL,(INTER) LD(&38),HL EI LD BC,&BC01 OUT (C),C LD BC,&BD00+40 OUT (C),C LD BC,&BC02 OUT (C),C LD BC,&BD00+46 OUT (C),C LD BC,&BC06 OUT(C),C LD BC,&BD00+25 OUT (C),C LD BC,&BC07 OUT (C),C LD BC,&BD00+30 OUT (C),C LD A,2 CALL &BC0E RET ;SOUS-PROGRAMMES DELOCK DI LD E,17 LD HL,TABASIC LD BC,#BC00 SASIC LD A,(HL) OUT (C),A INC HL DEC E JR NZ,SASIC RET BC26 LD A,D ADD A,8 LD D,A RET NC LD BC,&C000+64 EX DE,HL ADD HL,BC EX DE,HL RET ; EQUIVALENCE SSCR EQU &6804 ; TABLEAU DE VALEURS COMPT NOP INTER DS 2 TABASIC DB 255,0,255,119,179 DB 81,168,212,98,57,156 DB 70,43,21,138,205 DB 238 OFFSET DS 2 ADR DS 2 |