ORG $8000¢INIT¢ LDA #DL&255 ; POINT TO NEW¢ STA $230 ; DISPLAY LIST¢ STA JDL+1¢ LDA #DL/256¢ STA $231¢ STA JDL+2¢¢ LDA #MESS&255 ; POINT MESSAGE¢ STA DL1+1 ; TO GRAPHICS 2¢ LDA #MESS/256 ; LINE¢ STA DL1+2¢¢ LDX #0¢ TXA¢ STA $10 ; TURN OFF KEY-¢ STA $D20E ; BOARD INTERRUPT¢CLRIT¢ STA $6200,X ; CLEAR PM AREA¢ INX¢ BNE CLRIT¢¢ LDA #$60 ; PM HI BYTE¢ STA $D407 ; STORE IN PMBASE¢ LDA #46 ; DOUBLE LINE RES¢ STA 559 ; TELL ANTIC¢ LDA #3 ; TURN ON PM'S¢ STA $D01D¢ LDA #3 ; SET SIZE¢ STA $D008¢¢ LDX #0 ; NOW READ STRING¢ LDY #0 ; AND COPY IT TO¢MORE LDA PSTR,X ; PM AREA¢ CMP #$9B ; DONE YET ?¢ BEQ DONE ; YES, EXIT¢ SEC¢ SBC #32 ; FOR UPPERCASE¢ STA $82 ; STORE IN PAGE¢ LDA #0 ; ZERO LOCATION¢ STA $83¢¢ ASL $82 ; VALUE OF CHAR¢ ROL $83 ; AND TIMES 8¢ ASL $82¢ ROL $83¢ ASL $82¢ ROL $83¢¢ LDA $83 ; ADD HI-BYTE¢ CLC ; OF CHARSET¢ ADC #$E0 ; POINTER¢ STA $83¢ INX ; NEXT CHAR¢ LDY #0 ; BUT COPY FIRST¢COPYIT¢ LDA ($82),Y¢KKK STA $620A,Y¢ INY¢ CPY #7 ; DONE YET ?¢ BNE COPYIT ; NO, DO REST¢ LDA KKK+1 ; ADD 10 TO¢ CLC ; KKK+1 LABEL¢ ADC #10¢ STA KKK+1 ; NOW DO REST¢ JMP MORE ; OF CHARS¢DONE¢¢ LDY #1 ; SET Y TO LINE 1¢ LDX #0 ; X = OFFSET IN¢WAIT ; TABLE¢ CPY $D40B ; HAS COUNTER¢ BNE WAIT ; REACHED LINE ?¢ LDA WAVE,X ; LOAD FROM SINUS¢ STY $D40A ; TABLE¢ STA $D000 ; STORE POSITION¢ STY $D012 ; STORE COLOUR¢ TYA ; MAKE BACKGROUND¢ CLC ; COLOUR SCROLL¢ ADC 20 ; UPWARDS IN OLD¢ STA $D01A ; RAINBOW FASHION¢ INX ; HAS TABLE¢ CPX #91 ; REACHED WRAP¢ BNE NORES ; POINT ?¢ LDX #0 ; RESET IT¢NORES¢ INY ; LET US DO SOME¢ CPY #125 ; MORE LINES¢ BNE WAIT ; IS IT 125 YET ?¢ LDY #1 ; IF YES, RESET¢ INC OFFS ; INCREASE OFFSET¢ LDX OFFS ; IN SINE TABLE¢ CPX #91 ; CHECK WRAP¢ BNE WAIT¢ LDX #0 ; RESET IF WRAP¢ STX OFFS ; POINT REACHED¢ JMP WAIT ; DO FOREVER¢OFFS DB 0¢DL DB 112,112,112,112,112,112¢DL1 DB 64+7,0,0¢JDL DB 65,0,0¢MESS DB 0,0,'a',0,'small',0,'pm'¢ DB 0,'demo',0,0,0,0¢PSTR DB ' POKEY SOFT',$9B¢WAVE DB 120,121,122,124,125,126,128¢ DB 129,130,131,132,133,134,135¢ DB 136,137,137,138,139,139,139¢ DB 139,139,139,139,139,139,139¢ DB 138,137,137,136,135,134,133¢ DB 132,131,130,129,128,126,125¢ DB 124,122,121,120,118,117,115¢ DB 114,113,111,110,109,108,107¢ DB 106,105,104,103,102,102,101¢ DB 100,100,100,100,100,100,100¢ DB 100,100,100,101,102,102,103¢ DB 104,105,106,107,108,109,110¢ DB 111,113,114,115,117,118,120¢ DB 121,122,124,125,126,128,129¢ DB 130,131,132,133,134,135,136¢ DB 137,137,138,139,139,139,139¢ DB 139,139,139,139,139,139,138¢ DB 137,137,136,135,134,133,132¢ DB 131,130,129,128,126,125,124¢ DB 122,121,120,118,117,115,114¢ DB 113,111,110,109,108,107,106¢ DB 105,104,103,102,102,101,100¢ DB 100,100,100,100,100,100,100¢ DB 100,100,101,102,102,103,104¢ DB 105,106,107,108,109,110,111¢ DB 113,114,115,117,118,120,121¢ DB 122,124,125,126,128,129,130¢ DB 131,132,133,134,135,136,137¢ DB 137,138,139,139,139,139,139¢ DB 139,139,139,139,139,138,137¢ DB 137,136,135,134,133,132,131¢ DB 130,129,128,126,125,124,122¢ DB 121,120,118,117,115,114,113¢ DB 111,110,109,108,107,106,105¢ DB 104,103,102,102,101,100,100¢ DB 100,100,100,100,100,100,100¢ DB 100,101,102,102,103¢ END INIT¢