; CHARMAKER ; ========= ; April 1986, Graham Harston ; Make a thicker Spectrum character set ; ; Part of Computer Studies 'O' level DefChar project ; ORG #FF00 ; Loadable to any address START PUSH BC ; Get start address from the BC register and POP DE ; decrease it by 768 to get the start of the DEC D ; character set DEC D DEC D PUSH DE LD HL,15616 ; Start of the character set in ROM LD B,3 ; Loop round for 3 sets of 256 LOOP1 LD C,0 ; Loop round 226 times LOOP LD A,(HL) ; Get the byte from the ROM PUSH BC ; Save the counters LD B,A ; Put the byte in B ADD A,A ; Shift A along one bit to the left OR B ; Superimpose the original value LD (DE),A ; and store in the RAM POP BC ; Get the counters back INC HL ; Increment the address pointers INC DE DEC C ; Decrement the first counter JR NZ,LOOP ; Loop back if it's not zero DJNZ LOOP1 ; Decrement the second counter and loop back POP DE ; Get the start of the character set back DEC D ; Decrease by 256 to get the right value LD (IY-3),D ; Store the high byte LD (IY-4),E ; then the low byte in CHARS RET ; and return. DEFW START,START