1 'THIS PROGRAM MAKES BANK 2 INTO 2 'ROM 0. IT DESTROYS ALL INFO IN 3 'BANK 2! IT WILL ALSO KICK OUT 4 'ROM 0 AND REPLACE IT WITH BANK 2, 5 'SO YOU CAN MODIFY THE OPERATING 6 'SYSTEM! (if you want). IT ALSO 7 'PROMTS YOU IF YOU WISH AN ALTERNATE 8 'CHARACTER SET, AND IF SO, THE 9 'STANDARD CHARACTER FONT IS REPLACED 10 'WITH A 'TECHIE' STYLE FROM THE 11 'PROGRAM 'ALPHA.BA' 12 CLEAR 256,62300!:RESTORE52 13 Z=62301!:Y=34 14 FOR X=Z TO Z+Y-1 15 READ A$:GOSUB 24:POKE X,A 16 NEXT X 17 INPUT"ROM0 TO BANK 2 PRESS RET";Q 18 EXEC Z 19 INPUT"REPLACE 0000H-7FFFH WITH BANK 2";Q$:IFQ$<>"Y"ANDQ$<>"y"THEN23 20 OUT 161,2:POKE1304,111 21 INPUT"REPLACE CHARACTER SET";Q$:IFQ$<>"Y"ANDQ$<>"y"THEN23 22 GOSUB73 23 END 24 A=0:B$=LEFT$(A$,1):GOSUB26 25 A=A*16:B$=RIGHT$(A$,1) 26 B=ASC(B$):A=A+B+32*(B>95)+7*(B>63)-48 27 RETURN 28 'DATA area makes bank two into ROM0 29 'ROMRAM:f35d 30 'LXI H,0 ;mem loc 0 in ROM 31 'MVI B,8 ;specify write to bnk 2 32 'ROMRA1:f362 33 'MOV D,M ;get (rom) into d 34 'MOV A,H ;ready for adding 8000h 35 'ADI 80h ;bump up 36 'JC ROMRA2 37 'PUSH H ;save address 38 'MOV H,A ;RAM BNK2 addr to store (ROM) 39 'DI ;no interupts 40 'CALL 7EEBh ;PUTBNK: copy (ROM) to (RAM) 41 'EI ;okay to int 42 'POP H ;restore ROM pointer 43 'INX H ;point to next loc 44 'JMP ROMRA1 45 'ROMRA2:f375 46 'CALL 4258h ;BEEP 47 'MVI A,02 ;0000-7FFF = BANK #2 48 'DI ;make BNK2 into pseudo ROM0 49 'OUT 0A1h ;switch 50 'EI ;okay ! 51 'RET 52 DATA 21,00,00 53 DATA 06,08 54 DATA 56 55 DATA 7c 56 DATA c6,80 57 DATA da,75,f3 58 DATA e5 59 DATA 67 60 DATA f3 61 DATA cd,eb,7e 62 DATA fb 63 DATA e1 64 DATA 23 65 DATA c3,62,f3 66 DATA cd,58,42 67 DATA 3e,02 68 DATA f3 69 DATA d3,a1 70 DATA fb 71 DATA c9 72 END 73 DATA 120,127,9,127,120,127,127,73 74 DATA 79,112,127,65,65,67,99,127 75 DATA 121,65,65,62,127,121,73,73,65 76 DATA 127,121,9,9,1,127,65,81,113 77 DATA 115,127,127,8,8,127,0,99,127 78 DATA 99,0,99,67,65,127,1,127,120 79 DATA 8,15,112,127,127,64,64,96 80 DATA 127,2,4,114,127,127,2,4,120 81 DATA 127,127,65,65,113,127,127 82 DATA 121,9,9,15,127,65,113,127,64 83 DATA 127,121,9,15,112,111,105,73,73 84 DATA 123,1,1,127,3,3,127,64,64 85 DATA 127,127,15,127,64,127,15,127 86 DATA 96,126,64,127,99,28,8,28,99 87 DATA 3,4,120,100,3,99,81,73,101,99 88 DATA 127,65,65,65,127,0,113,127 89 DATA 112,0,0,121,73,79,0,73,73,73 90 DATA 127,112,31,31,16,120,120,79 91 DATA 73,73,73,121,127,81,83,80,112 92 DATA 7,1,113,9,7,112,127,73,127 93 DATA 112,15,9,9,121,127,192,192 94 DATA 224,224,240,248,252,254 95 RESTORE 88 96 FORA=30983TO31032:READB:POKEA,B:NEXT 97 RESTORE 73 98 FORA=31068TO31197:READB:POKEA,B:NEXT 99 READ X:PRINTX 100 RETURN