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 >
Text File  |  2002-05-26  |  12KB  |  1 lines

  1. 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 ¢