home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antic Magazine 1985 September
/
Antic_Magazine_1985_09_Antic.atr
/
revb2c.m65
< prev
next >
Wrap
Text File
|
2023-02-26
|
3KB
|
1 lines
0250 ; REV.B TO REV.C CONVERTER¢0260 ; BY MATTHEW RATCLIFF¢0270 ; (c) 1985, ANTIC PUBLISHING¢0280 *= $0600¢0290 .OPT OBJ¢0300 ;¢0310 ; PUT CODE INTO PAGE 6¢0320 ;¢0330 CASINI = $02 ;VECTOR WE WILL STEAL¢0340 BOOT = $09 ;CASS/DISK BOOT FLAG¢0350 ; SET BIT 1 AND SYSTEM LOOKS FOR¢0360 ; POST RESET HANDLER CODE POINTED¢0370 ; TO BY CASINI VECTOR. THIS IS¢0380 ; HOW RESET ALWAYS GIVES YOU REV.C¢0390 ; RAM-BASIC.¢0400 GINTLK = $03FA ;EXTERNAL CART? DO NOTHING¢0410 RMPNT = $D8 ;ROM/RAM POINTER¢0420 COUNT = $DA ;BUG FIX COUNT LOC¢0430 PORTB = $D301 ;CONTROL ROM/RAM THRU HERE¢0440 BEGBAS = $A000 ;BASIC ROM STARTS HERE¢0450 ;¢0460 ; STEAL CASSETTE RESET VECTOR¢0470 ; AND POINT HERE FOR NEXT RESET.¢0480 ;¢0490 STEAL LDA # <STEAL¢0500 STA CASINI ;MUST RESTORE VECTOR¢0510 LDA # >STEAL ;EVERY TIME RESET IS PRESSED¢0520 STA CASINI+1¢0530 LDA GINTLK ;EXTERNAL CART?¢0540 BEQ CNTNU ;IF YES, CONTINUE¢0550 RTS ; IF NO, ABORT¢0560 CNTNU LDA # <BEGBAS ;POINT TO START OF¢0570 STA RMPNT ;BAD BASIC ROM¢0580 LDA # >BEGBAS¢0590 STA RMPNT+1¢0600 BCOPY LDY #0 ;COPY IT TO RAM¢0610 LDA PORTB ;BASIC ROM ON PLEASE¢0620 AND #$FD ;RESET CONTROL BIT=ON¢0630 STA PORTB ;GOT IT¢0640 LDA (RMPNT),Y ;GET ROM BYTE¢0650 PHA ;SAVE IT¢0660 LDA PORTB ;NOW ENABLE THE RAM INSTEAD¢0670 ORA #$02 ;SET CONTROL BIT=OFF¢0680 STA PORTB ;ROM OFF, RAM ON¢0690 PLA ;GET ROM BYTE¢0700 STA (RMPNT),Y ;RAM VERSION UPDATED¢0710 INC RMPNT¢0720 BNE BCOPY¢0730 INC RMPNT+1¢0740 LDA RMPNT+1 ;DONE COPYING?¢0750 CMP #$C0 ;END OF BASIC?¢0760 BNE BCOPY ;NOT YET!¢0770 ; NOW GO FIX THE BUGS!¢0780 FIXBUGS LDX #0 ;BUG TABLE INDEX¢0790 LDA #12 ;12 BUGS TO FIX¢0800 STA COUNT¢0810 FXLOOP LDY #0 ;SETUP RAM POINTERS¢0820 LDA FXTBL,X ;GET ADDR LO BYTE¢0830 STA RMPNT ;SETUP RAM POINTER¢0840 INX ¢0850 LDA FXTBL,X ;GET ADDR HI BYTE¢0860 STA RMPNT+1¢0870 INX ¢0880 LDA FXTBL,X ;GET CORRECT BYTE¢0890 STA (RMPNT),Y ;TO FIX THE BUG¢0900 INX ;POINT TO NEXT FIX¢0910 DEC COUNT¢0920 BNE FXLOOP¢0930 LDA BOOT ;ALL DONE WITH FIXED RAM-BASIC¢0940 ORA #$02 ;RE-HOOK INTO BOOT¢0950 STA BOOT ;FOR NEXT RESET KEY-PRESS¢0960 RTS ¢0970 ;¢0980 ; ADDRESS,BYTE FIXUP TABLE FOR¢0990 ; REV.B TO REV.C CONVERSION!¢1000 ;¢1010 FXTBL .WORD $A8DF ;ADDRESS¢1020 .BYTE 234 ;WAS 202, NOW 234 IN REV.C¢1030 .WORD $A8E0¢1040 .BYTE 240 ;WAS 208¢1050 .WORD $A8E1¢1060 .BYTE 17 ;WAS 10¢1070 .WORD $A8E2¢1080 .BYTE 234 ;WAS 96¢1090 ;¢1100 ; PEEK (43234)=96 FOR REV.B¢1110 ; THAT IS ADDR $A8E2¢1120 ;¢1130 .WORD $BB29¢1140 .BYTE 0 ;WAS 16¢1150 .WORD $BFF3¢1160 .BYTE 0 ;WAS 44¢1170 .WORD $BFF4¢1180 .BYTE 0 ;WAS 55¢1190 .WORD $BFF5¢1200 .BYTE 0 ;WAS 105¢1210 .WORD $BFF6¢1220 .BYTE 0 ;WAS 110¢1230 .WORD $BFF7¢1240 .BYTE 0 ;WAS 110¢1250 .WORD $BFF8¢1260 .BYTE 0 ;WAS 101¢1270 .WORD $BFF9¢1280 .BYTE 0 ;WAS 114¢1290 ;¢1300 ; ONLY 12 BYTES DIFFERENCE BETWEEN¢1310 ; REV.B & REV.C!¢1320 ;¢1330 .END ¢