home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Serious Magazine 11
/
Serious_Magazine_11_2002_Dial_pl_Disk_2_of_2_Side_B.atr
/
rom_02.lzh
/
ST1.TXT
< prev
next >
Wrap
Text File
|
2002-05-26
|
12KB
|
1 lines
06 .OPT NO LIST¢07 ; SAVE #D1:ST1.M65¢08 .PAGE "Self Test ROM"¢09 LIST ¢10 .LOCAL ¢11 ; antic mode 8 = Gr 3¢12 ;col1 = reg0 = 12 = white 0101 $55¢13 ;col2 = reg1 = 50 = red 1010 $AA¢14 ;col3 = reg2 = 214 = grn 1111 $FF¢15 ;col0 = reg4 = 160 = bak 0000 $00¢16 ;¢17 ; This code actually maps in at¢18 ; $5000 though it is in ROM at¢19 ; $D000 (hardware range)¢20 ; Line numbers are peek addresses¢21 ; when the rom is enabled¢22 ?JKP .= * ; Save current org¢23 ; do some local equates¢30 ?WHT = $55 mode 8 col1¢40 ?RED = $AA ; mode 8 col2¢50 ?GRN = $FF ; mode 8 col3¢0100 *= $80¢0110 *= *+2 Dli two byte counter¢0130 *= *+1 ;$82¢0140 ?ZDLJ *= *+3 Dlist jvb addr¢0170 *= *+1 ;$86 Dli¢0180 *= *+1 ;$87 Dli¢0190 *= *+1 ;$88 Dli¢0200 *= *+1 unused¢0210 *= *+1 ;$8A becomes¢0220 *= *+2 ;$8B unused¢0240 *= *+1 ;$8D ?? mask¢0250 ?ZRTIX *= *+1 ;$8E ram test index¢0260 *= *+1 ;$8F ??¢0270 *= *+2 ;$90 pointer¢0290 *= *+1 ;$92 counter¢0300 *= *+1 ;$93 ??¢0310 *= *+1 ;$94 counter¢0320 *= *+2 ;$95 pointer¢0340 *= *+1 ;$97 ??¢0350 *= *+1 ;$98 index¢0360 *= *+1 ;$99 counter¢0370 *= *+1 ;$9A ??¢0380 *= *+2 ;$9B pointer¢0400 *= *+1 ;$9D loop counter¢0410 *= *+2 ;$9E pointer¢0430 *= *+2 ;$A0 pointer¢0450 *= *+1 ;$A2 Dli¢0460 *= *+1 ;$A3 loop counter¢0470 ?ZPBCALC *= *+1 ;$A4¢0480 ?ZPBORA *= *+1 ;$A5 portb bits¢0490 ;¢0500 *= ?JKP ; $D000 restore org¢0510 ;¢019000 ?DSP = *-$5000 Displacement¢019001 ;¢020479 XSLFTST = *-?DSP From vector¢020480 JMP ?BYE-?DSP¢020481 XRAMERR = *-?DSP¢020483 JSR ?INIT1-?DSP Reset entry¢020486 JMP ?MEMTST-?DSP on ram error¢020489 ?BYE JSR ?INIT1-?DSP Bye entry¢020492 ?MAIN LDA #0¢020494 STA $80¢020496 STA $80+1¢020498 STA $82¢020500 STA AUDCTL Init Pokey¢020503 LDA #3 enable debounce¢020505 STA SKCTL and Kbd scan¢020508 JSR ?NOSOUND-?DSP¢020511 LDA #$40 Disable dlis¢020513 STA NMIEN¢020516 LDX #0¢020518 JSR ?SETCOL-?DSP a=210¢020521 LDX # <?MAINDL-?DSP¢020523 LDY # >?MAINDL-?DSP¢020525 JSR ?SETDL-?DSP¢020528 LDA # <?DLI.2-?DSP¢020530 STA VDSLST¢020533 LDA # >?DLI.2-?DSP¢020535 STA VDSLST+1¢020538 LDX #12 Range $3000-$3020¢020540 LDA #$AA¢020542 JSR ?FILRAM-?DSP fill with (a)¢020545 LDX #0¢020547 ?WAIT1 STX WSYNC waste some time¢020550 INX ¢020551 BNE ?WAIT1¢020553 ?WAIT2 LDA VCOUNT Wait til¢020556 CMP #24 Antic in first¢020558 BCS ?WAIT2 ;48 scan lines¢020560 LDA #16¢020562 STA $87¢020564 LDA #$C0 Enable Dli and¢020566 STA NMIEN vbi¢020569 ?START1 LDA CONSOL Wait for¢020572 AND #1 Start key¢020574 BNE ?START1¢020576 LDA #$FF Clear keypress¢020578 STA CH¢020581 LDA $86¢020583 AND #$0F¢020585 CMP #1¢020587 BEQ ?GOMEM¢020589 CMP #2¢020591 BEQ ?GOAV¢020593 CMP #4¢020595 BEQ ?GOKEY¢020597 ?20597 LDA #$88¢020599 STA $86¢020601 LDA #$FF¢020603 STA $82¢020605 ?GOMEM JMP ?MEMTST-?DSP¢020608 ?GOAV JMP ?AVTEST-?DSP¢020611 ?GOKEY JMP ?KEYTST-?DSP¢020614 ?INIT1 LDA #$11¢020616 STA $86 Initial init¢020618 LDA #33 Narrow playfield¢020620 STA SDMCTL¢020623 LDA #$C0 Enable Dli/Vbi¢020625 STA NMIEN¢020628 LDA #$41 Set JVB into page 0¢020630 STA ?ZDLJ¢020632 LDA #$FF Clear keypress¢020634 STA CH¢020637 RTS ¢020638 ?SETDL STA $8A¢020640 TYA ¢020641 PHA ¢020642 TXA ¢020643 PHA ¢020644 LDA #0¢020646 STA SDMCTL¢020649 STA HELPFG¢020652 LDA # <?DLI.1-?DSP¢020654 STA VDSLST¢020657 LDA # >?DLI.1-?DSP¢020659 STA VDSLST+1¢020662 LDX #0 Range $3000-$3EFF¢020664 TXA a=0¢020665 JSR ?FILRAM-?DSP clear ram¢020668 PLA ¢020669 TAX ¢020670 PLA ¢020671 TAY ¢020672 STX SDLSTL Set dlist¢020675 STX ?ZDLJ+1 addr into DLJ¢020677 STY SDLSTH¢020680 STY ?ZDLJ+2¢020682 LDA #33 Narrow playfield¢020684 STA SDMCTL all lines 0.8¢020687 RTS ; ----------------¢020688 ?DLI.2 PHA Main menu dli¢020689 TXA ¢020690 PHA ¢020691 ?20691 LDX #122 blue¢020693 LDA $87¢020695 CMP #1¢020697 BEQ ?20730¢020699 AND #1¢020701 BEQ ?20713¢020703 INC $A2¢020705 LDA $A2¢020707 AND #$20¢020709 BEQ ?20713¢020711 LDX #44 orange¢020713 ?20713 STX WSYNC¢020716 STX COLPF0¢020719 CLC ¢020720 ROR $87¢020722 LDA #0¢020724 STA ATRACT¢020726 PLA ¢020727 TAX ¢020728 PLA ¢020729 RTI ¢020730 ?20730 LDA $88¢020732 BNE ?20756¢020734 LDA CONSOL¢020737 AND #2 Select?¢020739 BNE ?20767 No¢020741 LDA $86¢020743 ROL A¢020744 ROL $86¢020746 LDA #$20¢020748 STA $A2¢020750 LDA #$FF¢020752 STA $88¢020754 BNE ?20767 Go always¢020756 ?20756 LDA CONSOL¢020759 AND #2 Select?¢020761 BEQ ?20767¢020763 LDA #0¢020765 STA $88¢020767 ?20767 LDA $86¢020769 AND #$0F¢020771 ORA #$10¢020773 STA $87¢020775 INC $80¢020777 BNE ?20781¢020779 INC $80+1¢020781 ?20781 LDA $80+1¢020783 CMP #$FA¢020785 BNE ?20791¢020787 CLI ¢020788 JMP ?20597-?DSP¢020791 ?20791 JMP ?20691-?DSP¢020794 ?MAINDL .BYTE $70,$70,$70,$70¢020798 .BYTE $70 ;40 blank lines¢020799 .BYTE $47 lms + mode 7 (Gr2)¢020800 .WORD ?MENU1-?DSP¢020802 .BYTE $70,$70,$70 ;24 blank¢020805 .BYTE $4E lms + mode 14¢020806 .WORD $3000¢020808 .BYTE $70 ;8 blank¢020809 .BYTE $F0 ;8 blank +dli¢020810 .BYTE $C6 lms+mode 6 +dli¢020811 .WORD ?MENU2-?DSP¢020813 .BYTE $70 ;8 blank¢020814 .BYTE $86 mode 6 +dli¢020815 .BYTE $70 ;8 blank¢020816 .BYTE $86 mode 6 +dli¢020817 .BYTE $70 ;8 blank¢020818 .BYTE $06 mode 6¢020819 .BYTE $70,$70 ;16 blank¢020821 .BYTE $4E lms+mode 14¢020822 .WORD $3000¢020823 .BYTE $70,$70,$70 ;24 blank¢020827 .BYTE $42 lms + mode 2¢020828 .WORD ?MENU3-?DSP¢020830 .BYTE $41 jvb maindl¢020831 .WORD ?MAINDL-?DSP¢020833 ?MENU1 .SBYTE " SELF TEST "¢020849 ?MENU2 .SBYTE " MEMORY "¢020865 .SBYTE " AUDIO-VISUAL "¢020881 .SBYTE " KEYBOARD "¢020897 .SBYTE " ALL TESTS "¢020913 ?MENU3 .SBYTE " ",2¢020918 .SBYTE +$80,"SELECT"¢020924 .SBYTE 22,44,2¢020927 .SBYTE +$80,"START"¢020932 .SBYTE 22,"OR",2¢020936 .SBYTE +$80,"RESET"¢020941 .SBYTE 22," "¢020945 ?MEMDL .BYTE $70,$70,$70 ; 24bl¢020948 .BYTE $46 ; lms mode 6¢020949 .WORD $3000 (Gr1 16bpl)¢020951 .BYTE $70,$70 ; 16 blank¢020953 .BYTE $06 mode 6 16 bytes¢020954 .BYTE $70 ; 8 blank $3030¢020955 .BYTE $08 mode 8 (Gr3 8bpl)¢020956 .BYTE $70,$70 ; 16 blank $3038¢020958 .BYTE $06 mode 6 16 bytes¢020959 .BYTE $70 ; 8 blank $3048¢020960 .BYTE $08 ; mode 8 8 bytes¢020961 .BYTE $70 ; 8 blank $3050¢020962 .BYTE $08 ; mode 8 8 bytes¢020963 .BYTE $70 ; 8 blank¢020964 .BYTE $08 ; mode 8 8 bytes¢020965 .BYTE $70 ; 8 blank¢020966 .BYTE $08 ; mode 8 8 bytes¢020967 .BYTE $70,$70,$70 ; 24 blank¢020970 .BYTE $01 jump¢020971 .WORD ?DLEND-?DSP¢020973 ?DLEND .BYTE $A0 ; 3 blank+dli¢020974 .BYTE $40 ; 5 blank¢020975 .BYTE $42 ; lms mode 2 32¢020976 .WORD ?PRESS-?DSP¢020978 .BYTE $01 ; jump $0083¢020979 .WORD ?ZDLJ ;¢020981 ?PRESS .SBYTE " ",2¢020987 .SBYTE +$80,"RESET"¢020992 .SBYTE 22,"OR",2¢020995 .SBYTE +$80,"HELP"¢020999 .SBYTE 22,"TO EXIT "¢021013 ?KEYDL .BYTE $70,$70,$70,$70¢021017 .BYTE $46 ;lms mode6¢021018 .WORD $3000¢021020 .BYTE $70,$70,$70,$70 ;32 blank¢021024 .BYTE $02 ; mode 2 32 byts¢021025 .BYTE $70,$70 ; 16 blank¢021027 .BYTE $02 ; mode 2 32 byts¢021028 .BYTE $70 ; 8 blank¢021029 .BYTE $02 ; mode 2 32 bytes¢021030 .BYTE $70 ; 8 blank¢021031 .BYTE $02 ; mode 2 32 bytes¢021032 .BYTE $70 ; 8 blank¢021033 .BYTE $02 ; mode 2 32 bytes¢021034 .BYTE $70 ; 8 blank¢021035 .BYTE $02 ; mode 2 32 bytes¢021036 .BYTE $70,$70 ; 16 blank¢021038 .BYTE $01 ; jump¢021039 .WORD ?DLEND-?DSP¢021041 ?AVDL .BYTE $70,$70,$70,$70¢021045 .BYTE $46 ; lms mode 6 16¢021046 .WORD ?AVMSG-?DSP¢021048 .BYTE $70 ; 8 blank¢021049 .BYTE $06 ; mode 6 16 bytes¢021050 .BYTE $70,$70 ; 16 blank¢021052 .BYTE $4B ; lms mode 11 (Gr6 16)¢021053 .WORD $3100¢021055 .BYTE $0B,$0B,$0B,$0B ; 42 more¢021059 .BYTE $0B,$0B,$0B,$0B ; mode 6¢021063 .BYTE $0B,$0B,$0B,$0B ; 16 each¢021067 .BYTE $0B,$0B,$0B,$0B¢021071 .BYTE $0B,$0B,$0B,$0B¢021075 .BYTE $0B,$0B,$0B,$0B¢021079 .BYTE $0B,$0B,$0B,$0B¢021083 .BYTE $0B,$0B,$0B,$0B¢021087 .BYTE $0B,$0B,$0B,$0B¢021091 .BYTE $0B,$0B,$0B,$0B¢021095 .BYTE $0B,$0B¢021097 .BYTE $70 ; 8 blank¢021098 .BYTE $46 ; lms mode 6 16¢021099 .WORD $3000¢021101 .BYTE $70 ; 8 blank¢021102 .BYTE $01 ; jump¢021103 .WORD ?DLEND-?DSP¢021105 ?AVMSG .SBYTE " AUDIO-VISUAL "¢021120 .SBYTE " TEST "¢021121 ;¢021122 ; If reset entry $80 holds $10¢021123 ; otherwise $80 holds 0¢021124 ;¢021137 ?MEMTST LDX # <?MEMDL-?DSP¢021139 LDY # >?MEMDL-?DSP¢021141 LDA #0 will go to $8A¢021143 JSR ?SETDL-?DSP Dlist x=< y=>¢021146 LDX #1¢021148 JSR ?SETCOL-?DSP Set colors¢021149 ; reg0=12 reg1=50 reg2=214¢021150 ; reg4=160 (bak)¢021151 LDX #0 Point to "Ram Test"¢021153 JSR ?SCRMOV-?DSP Move to screen¢021156 LDX #1 Point to "Ram"¢021158 JSR ?SCRMOV-?DSP Move to screen¢021161 ?TSTROMA LDA $3020 Get first byte¢021164 CMP #?RED ; already red?¢021166 BEQ ?TSTROMB Yes¢021168 LDA #?WHT Make it white¢021170 JSR ?DSPROMA-?DSP¢021173 JSR ?21425-?DSP delay¢021176 JSR VFR Test rom¢021179 BCS ?BADA Go if error¢021181 LDA #$FF Show green¢021183 JMP ?SHOWA-?DSP¢021186 ?BADA LDA #?RED Make it red¢021188 ?SHOWA JSR ?DSPROMA-?DSP¢021191 ?TSTROMB LDA $3024¢021194 CMP #?RED Red already?¢021196 BEQ ?TSTRAM¢021198 LDA #?WHT Make it white¢021200 JSR ?DSPROMB-?DSP¢021203 JSR ?21425-?DSP delay¢021206 JSR VSR Test rom a=$8C¢021209 BCS ?BADB Exit on error¢021211 LDA #$FF Show green¢021213 JMP ?SHOWB-?DSP¢021216 ?BADB LDA #?RED Error=red¢021218 ?SHOWB JSR ?DSPROMB-?DSP¢021221 ?TSTRAM LDA #$C0¢021223 STA $8D¢021225 LDA #4 First pass bit 2 hi¢021227 STA ?ZPBCALC¢021229 LDA #0¢021231 STA ?ZRTIX Clear screen index¢021233 STA $90¢021235 STA $90+1¢021237 STA $8F¢021239 ?21239 LDX ?ZRTIX¢021241 LDA $3038,X¢021244 AND $8D¢021246 CMP #$80¢021248 BEQ ?21342¢021250 CMP #$08¢021252 BEQ ?21342¢021254 LDA #$44¢021256 JSR ?21443-?DSP¢021259 LDA ?ZPBCALC Force bit 2 hi¢021261 JSR ?SETPB-?DSP Go set Portb¢021264 LDA ?ZPBCALC¢021266 EOR #$0C¢021268 STA ?ZPBCALC¢021270 LDX #7¢021272 ?21272 LDA ?21578-?DSP,X¢021275 CMP $90+1¢021277 BEQ ?21334¢021279 DEX ¢021280 BPL ?21272¢021282 LDA #4¢021284 STA $92¢021286 ?21286 LDX #0¢021288 ?21288 LDY #0¢021290 ?21290 TXA ¢021291 STA ($90),Y¢021293 INX ¢021294 INY ¢021295 BNE ?21290¢021297 STX $93¢021299 LDY #0¢021301 ?21301 LDA ($90),Y¢021303 CMP $93¢021305 BNE ?21323¢021307 INC $93¢021309 INY ¢021310 BNE ?21301¢021312 INX ¢021313 BNE ?21288¢021315 INC $90+1¢021317 DEC $92¢021319 BNE ?21286¢021321 BEQ ?21337¢021323 ?21323 JSR ?21425-?DSP delay¢021326 LDA #$88¢021328 JSR ?21443-?DSP¢021331 JMP ?21342-?DSP¢021334 ?21334 JSR ?21429-?DSP delay¢021337 ?21337 LDA #$CC¢021339 JSR ?21443-?DSP¢021342 ?21342 LDA $8D¢021344 BMI ?21384¢021346 LDA #$C0¢021348 STA $8D¢021350 INC ?ZRTIX ;$8E¢021352 ?21352 CLC ¢021353 LDA $8F¢021355 ADC #4¢021357 STA $90+1¢021359 STA $8F¢021361 CMP RAMSIZ¢021364 BNE ?21239¢021366 LDA $82¢021368 BNE ?21373¢021370 JMP ?TSTROMA-?DSP¢021373 ?21373 LDA #12 Force b4 b1 high¢021375 JSR ?SETPB-?DSP Go set Portb¢021378 JSR ?21429-?DSP delay¢021381 JMP ?AVTEST-?DSP¢021384 ?21384 LDA #12¢021386 STA $8D¢021388 BNE ?21352 Go always¢021390 ?DSPROMA LDX #4 Display Rom A¢021392 JSR ?FILRAM-?DSP with (a)¢021395 AND #$FC Make last byte not¢021397 STA $3023 equal¢021400 RTS ¢021401 ?DSPROMB LDX #8 Display Rom B¢021403 JSR ?FILRAM-?DSP with (a)¢021406 AND #$FC¢021408 STA $3027¢021411 RTS ¢