09 .OPT NO LIST›10 ; SAVE #D1:ROMTEST.M65›20 ;›30 ;›40 ; LOAD #D1:ATARIROM.M65›50 ;›51 ; *= $FF73›52 .PAGE "ROM Test"›53 LIST ›54 .LOCAL ›80 ?JKP .= *›90 *= $8B›0100 ?CSUM *= *+2›0110 *= $9E›0120 ?CURR *= *+2 Address to add›0130 ?END *= *+2 Last address+1›0140 *= ?JKP›0150 ;›0160 ; Verify 1st 8k of rom›0170 ;›065395 VFR LDX #0 Set index and›065397 STX ?CSUM clear csum›065399 STX ?CSUM+1›065401 ?VFR1 JSR ?DOSUM›065404 CPX #12 Repeat 3 times›065406 BNE ?VFR1 N.B. selftest›065408 LDA OSROM rom must be on›065411 LDX OSROM+1›065414 ?TEST2 CMP ?CSUM Compare rom sum›065416 BNE ?ROMERR to calculated›065418 CPX ?CSUM+1 checksum›065420 BNE ?ROMERR›065422 CLC Flag rom ok›065423 RTS a=$11›065424 ?ROMERR SEC Return error›065425 RTS ›065426 VSR LDX #0 Verify second 8K›065428 STX ?CSUM Clear cksum›065430 STX ?CSUM+1›065432 LDX #12 Start index›065434 JSR ?DOSUM Do twice›065437 JSR ?DOSUM›065440 LDA ?CSUM2 Compare against›065443 LDX ?CSUM2+1 second sum›065446 JMP ?TEST2›065449 ?DOSUM LDY #0 Set start and end›065451 ?SETPTR LDA ?TSTAD,X pointers›065454 STA ?CURR,Y from table›065457 INX ›065458 INY ›065459 CPY #4›065461 BNE ?SETPTR›065463 LDY #0›065465 ?ADD CLC Add everything›065466 LDA (?CURR),Y between pointers›065468 ADC ?CSUM ignoring anything›065470 STA ?CSUM past two bytes›065472 BCC ?OVRINC›065474 INC ?CSUM+1›065476 ?OVRINC INC ?CURR Bump source›065478 BNE ?OVRINC2›065480 INC ?CURR+1›065482 ?OVRINC2 LDA ?CURR Compare›065484 CMP ?END source to›065486 BNE ?ADD end›065488 LDA ?CURR+1›065490 CMP ?END+1›065492 BNE ?ADD Loop til done›065494 RTS Return c=1›065495 ?TSTAD .WORD OSROM+2,M0PF First›065499 .WORD $5000,$5800 8k to check›065503 .WORD AFP,CHARSET1›065505 ;›065507 .WORD CHARSET1,?CSUM2 2nd 8k›065511 .WORD HV.NMI,$00›065512 ;›065515 .BYTE 0,0,0 unused›065516 ; copy of rom start id›065518 .BYTE $10 day bcd rev date›065519 .BYTE $05 month "›065520 .BYTE $83 year "›065521 .BYTE 2 Option byte›065522 .BYTE "BB" Part num. Alpha›065524 .BYTE $00 ; " " bcd›065525 .BYTE $00 ; " " "›065526 .BYTE $01 ; " " "›065527 .BYTE 2 Rev num›065528 ?CSUM2 .WORD $6C8C›065529 ;›065530 HV.NMI .WORD NMI cpu hardware›065532 .WORD RESET1 vectors›065534 .WORD IRQ›