
00001  0000             
00002  0001                        ;       VDC DUMP - MEMORY TEST PROGRAM FOR C128
00003  0001             
00004  0001             
00005  0001             *=$1C01
00006  1C01             
00007  1C01                        ;       0 SYS7181
00008  1C01             
00009  1C01  0B 1C 00              BYTE    $0B,$1C,$00,$00,$9E,$37,$31,$38,$31,$00,$00,$00
00010  1C0D             
00011  1C0D             
00012  1C0D             *=$1C0D
00013  1C0D             
00014  1C0D  4C 59 1C              JMP     MAIN
00015  1C10             
00016  1C10  3A         MSGC       BYTE    $3A
00017  1C11             
00018  1C11                        ;       <CR>/<CR>
00019  1C11             
00020  1C11  0D         MSGD       BYTE    $0D
00021  1C12  0D 00      MSGR       BYTE    $0D,$00
00022  1C14             
00023  1C14                        ;       ESC-X/SCNCLR/ESC-X
00024  1C14             
00025  1C14  1B 58 93   MSGX       BYTE    $1B,$58,$93,$1B,$58,$00
00026  1C1A             
00027  1C1A                        ;       1/1,1/2,2/1,2/2
00028  1C1A             
00029  1C1A  31 2F 31   MSG11      BYTE    $31,$2F,$31,$00
00030  1C1E  31 2F 32   MSG12      BYTE    $31,$2F,$32,$00
00031  1C22  32 2F 31   MSG21      BYTE    $32,$2F,$31,$00
00032  1C26  32 2F 32   MSG22      BYTE    $32,$2F,$32,$00
00033  1C2A             
00034  1C2A                        ;       " OK"
00035  1C2A             
00036  1C2A  20 4F 4B   MSGOK      BYTE    $20,$4F,$4B,$00
00037  1C2E             
00038  1C2E                        ;       " 64K"
00039  1C2E             
00040  1C2E  20 36 34   MSG64      BYTE    $20,$36,$34,$4B,$00
00041  1C33             
00042  1C33                        ;       " 16K"
00043  1C33             
00044  1C33  20 31 36   MSG16      BYTE    $20,$31,$36,$4B,$00
00045  1C38             
00046  1C38                        ;       " EMU"
00047  1C38             
00048  1C38  20 45 4D   MSGEM      BYTE    $20,$45,$4D,$55,$00
00049  1C3D             
00050  1C3D  2C 00 D6   WPLP       BIT     $D600
00051  1C40  10 FB                 BPL     WPLP
00052  1C42  60                    RTS
00053  1C43             
00054  1C43  8E 00 D6   VDLX       STX     $D600
00055  1C46  20 3D 1C   VDLD       JSR     WPLP
00056  1C49  AD 01 D6              LDA     $D601
00057  1C4C  60                    RTS
00058  1C4D             
00059  1C4D  A2 1C      VD1C       LDX     #$1C
00060  1C4F             
00061  1C4F  8E 00 D6   VDSX       STX     $D600
00062  1C52  20 3D 1C   VDST       JSR     WPLP
00063  1C55  8D 01 D6              STA     $D601
00064  1C58  60                    RTS
00065  1C59             
00066  1C59  08         MAIN       PHP
00067  1C5A  78                    SEI
00068  1C5B             
00069  1C5B  A9 00                 LDA     #$00
00070  1C5D  A2 1C                 LDX     #$1C
00071  1C5F  85 FB                 STA     $FB
00072  1C61  85 FC                 STA     $FC
00073  1C63  85 FD                 STA     $FD
00074  1C65  85 FE                 STA     $FE
00075  1C67             
00076  1C67  20 43 1C              JSR     VDLX
00077  1C6A  48                    PHA
00078  1C6B             
00079  1C6B  20 28 1D              JSR     TEST
00080  1C6E  20 28 1D              JSR     TEST
00081  1C71             
00082  1C71  68                    PLA
00083  1C72  20 4D 1C              JSR     VD1C
00084  1C75             
00085  1C75  A2 00                 LDX     #$00
00086  1C77  86 08                 STX     $08
00087  1C79             
00088  1C79  A9 2A                 LDA     #<MSGOK
00089  1C7B  8D B8 1C              STA     EMU+1
00090  1C7E             
00091  1C7E                        ;       CHECK IF ONLY MATCHING EMULATOR LAYOUT
00092  1C7E             
00093  1C7E  A5 FC                 LDA     $FC
00094  1C80  C9 C0                 CMP     #$C0
00095  1C82  90 1F                 BCC     RESP
00096  1C84             
00097  1C84  29 30                 AND     #$30
00098  1C86  C9 30                 CMP     #$30
00099  1C88  B0 19                 BCS     RESP
00100  1C8A             
00101  1C8A  85 FC                 STA     $FC
00102  1C8C  0A                    ASL
00103  1C8D  0A                    ASL
00104  1C8E  05 FC                 ORA     $FC
00105  1C90  85 FC                 STA     $FC
00106  1C92             
00107  1C92  A9 30                 LDA     #$30
00108  1C94  25 FB                 AND     $FB
00109  1C96  85 FB                 STA     $FB
00110  1C98  0A                    ASL
00111  1C99  0A                    ASL
00112  1C9A  05 FB                 ORA     $FB
00113  1C9C  85 FB                 STA     $FB
00114  1C9E             
00115  1C9E  A9 38                 LDA     #<MSGEM
00116  1CA0  8D B8 1C              STA     EMU+1
00117  1CA3             
00118  1CA3                        ;       PRINTING RESULTS (SUMMARY)
00119  1CA3             
00120  1CA3  8A         RESP       TXA
00121  1CA4  86 09                 STX     $09
00122  1CA6  0A                    ASL
00123  1CA7  0A                    ASL
00124  1CA8  69 1A                 ADC     #<MSG11
00125  1CAA  AA                    TAX
00126  1CAB  20 00 1D              JSR     PRINT
00127  1CAE             
00128  1CAE  A6 09                 LDX     $09
00129  1CB0  B5 FB                 LDA     $FB,X
00130  1CB2  C9 C0                 CMP     #$C0
00131  1CB4  B0 31                 BCS     XESP
00132  1CB6             
00133  1CB6  48                    PHA
00134  1CB7  A2 2A      EMU        LDX     #<MSGOK
00135  1CB9  20 00 1D              JSR     PRINT
00136  1CBC  68                    PLA
00137  1CBD  D0 14                 BNE     NESP
00138  1CBF             
00139  1CBF  A5 08                 LDA     $08
00140  1CC1  D0 1D                 BNE     MESP
00141  1CC3             
00142  1CC3  A5 09                 LDA     $09
00143  1CC5  C9 02                 CMP     #$02
00144  1CC7  90 08                 BCC     OK64
00145  1CC9             
00146  1CC9  A5 FB                 LDA     $FB
00147  1CCB  25 FC                 AND     $FC
00148  1CCD  29 40                 AND     #$40
00149  1CCF  D0 16                 BNE     XESP
00150  1CD1             
00151  1CD1  A9 80      OK64       LDA     #$80
00152  1CD3             
00153  1CD3  48         NESP       PHA
00154  1CD4  29 40                 AND     #$40
00155  1CD6  D0 05                 BNE     SESP
00156  1CD8             
00157  1CD8  A2 2E                 LDX     #<MSG64
00158  1CDA  20 00 1D              JSR     PRINT
00159  1CDD             
00160  1CDD  68         SESP       PLA
00161  1CDE  30 07                 BMI     XESP
00162  1CE0             
00163  1CE0  A2 33      MESP       LDX     #<MSG16
00164  1CE2  20 00 1D              JSR     PRINT
00165  1CE5             
00166  1CE5  E6 08                 INC     $08
00167  1CE7             
00168  1CE7  A2 12      XESP       LDX     #<MSGR
00169  1CE9  20 00 1D              JSR     PRINT
00170  1CEC             
00171  1CEC  A6 09                 LDX     $09
00172  1CEE  E8                    INX
00173  1CEF  E0 04                 CPX     #$04
00174  1CF1  90 B0                 BCC     RESP
00175  1CF3             
00176  1CF3  28                    PLP
00177  1CF4             
00178  1CF4  AD FE FF              LDA     $FFFE
00179  1CF7  C9 17                 CMP     #$17
00180  1CF9  D0 15                 BNE     PRET
00181  1CFB             
00182  1CFB  20 62 FF              JSR     $FF62
00183  1CFE             
00184  1CFE  A2 14                 LDX     #<MSGX
00185  1D00             
00186  1D00                        ;       PRINT MESSAGE
00187  1D00             
00188  1D00  08         PRINT      PHP
00189  1D01  58                    CLI
00190  1D02             
00191  1D02  BD 00 1C   PELP       LDA     $1C00,X
00192  1D05  F0 06                 BEQ     PEND
00193  1D07             
00194  1D07  20 D2 FF              JSR     $FFD2
00195  1D0A             
00196  1D0A  E8                    INX
00197  1D0B  10 F5                 BPL     PELP
00198  1D0D             
00199  1D0D  A2 00      PEND       LDX     #$00
00200  1D0F  28                    PLP
00201  1D10             
00202  1D10  60         PRET       RTS
00203  1D11             
00204  1D11  A9 00      NULX       LDA     #$00
00205  1D13  A2 12                 LDX     #$12
00206  1D15  85 06                 STA     $06
00207  1D17  85 07                 STA     $07
00208  1D19  20 4F 1C              JSR     VDSX
00209  1D1C             
00210  1D1C  E8                    INX
00211  1D1D  20 4F 1C              JSR     VDSX
00212  1D20             
00213  1D20  A8                    TAY
00214  1D21  AA                    TAX
00215  1D22  A9 1F                 LDA     #$1F
00216  1D24  8D 00 D6              STA     $D600
00217  1D27             
00218  1D27  60                    RTS
00219  1D28             
00220  1D28                        ;       THE TESTING SUBROUTINE (CALLED TWO TIMES: 1ST AND 2ND ROUND)
00221  1D28             
00222  1D28  A9 3F      TEST       LDA     #$3F
00223  1D2A  20 4D 1C              JSR     VD1C
00224  1D2D             
00225  1D2D  20 11 1D              JSR     NULX
00226  1D30             
00227  1D30  98         TELP       TYA
00228  1D31  20 52 1C              JSR     VDST
00229  1D34             
00230  1D34  E8                    INX
00231  1D35  D0 F9                 BNE     TELP
00232  1D37             
00233  1D37  C8                    INY
00234  1D38  D0 F6                 BNE     TELP
00235  1D3A             
00236  1D3A  86 08                 STX     $08
00237  1D3C  84 09                 STY     $09
00238  1D3E             
00239  1D3E  A9 12                 LDA     #$12
00240  1D40  4D 30 1D              EOR     TELP
00241  1D43  8D 30 1D              STA     TELP
00242  1D46             
00243  1D46  C9 98                 CMP     #$98
00244  1D48  D0 02                 BNE     RUMP
00245  1D4A             
00246  1D4A  C6 09                 DEC     $09
00247  1D4C             
00248  1D4C                        ;       DUMPING IN 64K MODE
00249  1D4C             
00250  1D4C  20 56 1D   RUMP       JSR     DUMP
00251  1D4F             
00252  1D4F  A9 2F                 LDA     #$2F
00253  1D51  20 4D 1C              JSR     VD1C
00254  1D54             
00255  1D54  C6 08                 DEC     $08
00256  1D56             
00257  1D56                        ;       DUMPING IN 16K MODE
00258  1D56             
00259  1D56  20 11 1D   DUMP       JSR     NULX
00260  1D59             
00261  1D59  A5 07      DULP       LDA     $07
00262  1D5B  85 02                 STA     $02
00263  1D5D             
00264  1D5D  20 EC 1D              JSR     NUMPR
00265  1D60             
00266  1D60  A2 10                 LDX     #<MSGC
00267  1D62  20 00 1D              JSR     PRINT
00268  1D65             
00269  1D65  20 46 1C   DXLP       JSR     VDLD
00270  1D68  85 02                 STA     $02
00271  1D6A             
00272  1D6A  24 08                 BIT     $08
00273  1D6C  50 01                 BVC     XUMP
00274  1D6E             
00275  1D6E  E8                    INX
00276  1D6F             
00277  1D6F                        ;       CHECK IF MATCHING ANY SYSTEM (2ND ROUND)
00278  1D6F             
00279  1D6F  24 09      XUMP       BIT     $09
00280  1D71  50 0E                 BVC     NUMP
00281  1D73             
00282  1D73  C5 06                 CMP     $06
00283  1D75  F0 5E                 BEQ     TEMP
00284  1D77             
00285  1D77  A9 F0                 LDA     #$F0
00286  1D79  95 FD                 STA     $FD,X
00287  1D7B  D0 58                 BNE     TEMP
00288  1D7D             
00289  1D7D  D0 E6      NXLP       BNE     DXLP
00290  1D7F  D0 D8      NULP       BNE     DULP
00291  1D81             
00292  1D81                        ;       CHECK IF MATCHING 16K REAL SYSTEM (1ST ROUND)
00293  1D81             
00294  1D81  A5 07      NUMP       LDA     $07
00295  1D83             
00296  1D83  24 08                 BIT     $08
00297  1D85  50 01                 BVC     CUMP
00298  1D87             
00299  1D87  0A                    ASL
00300  1D88             
00301  1D88  09 81      CUMP       ORA     #$81
00302  1D8A             
00303  1D8A  C5 02                 CMP     $02
00304  1D8C  F0 06                 BEQ     QUMP
00305  1D8E             
00306  1D8E  A9 80                 LDA     #$80
00307  1D90  15 FB                 ORA     $FB,X
00308  1D92  95 FB                 STA     $FB,X
00309  1D94             
00310  1D94                        ;       CHECK IF MATCHING 64K REAL SYSTEM (1ST ROUND)
00311  1D94             
00312  1D94  A5 07      QUMP       LDA     $07
00313  1D96             
00314  1D96  24 08                 BIT     $08
00315  1D98  50 17                 BVC     ZUMP
00316  1D9A             
00317  1D9A  29 80                 AND     #$80
00318  1D9C  85 03                 STA     $03
00319  1D9E             
00320  1D9E  A5 07                 LDA     $07
00321  1DA0  29 01                 AND     #$01
00322  1DA2  F0 06                 BEQ     HARM
00323  1DA4             
00324  1DA4  A9 03                 LDA     #$03
00325  1DA6  05 03                 ORA     $03
00326  1DA8  85 03                 STA     $03
00327  1DAA             
00328  1DAA  A5 07      HARM       LDA     $07
00329  1DAC  29 3E                 AND     #$3E
00330  1DAE  0A                    ASL
00331  1DAF             
00332  1DAF  05 03                 ORA     $03
00333  1DB1             
00334  1DB1  C5 02      ZUMP       CMP     $02
00335  1DB3  F0 06                 BEQ     JUMP
00336  1DB5             
00337  1DB5  A9 40                 LDA     #$40
00338  1DB7  15 FB                 ORA     $FB,X
00339  1DB9  95 FB                 STA     $FB,X
00340  1DBB             
00341  1DBB                        ;       CHECK IF MATCHING 16K EMULATOR SYSTEM (1ST ROUND)
00342  1DBB             
00343  1DBB  A5 07      JUMP       LDA     $07
00344  1DBD             
00345  1DBD  09 C0                 ORA     #$C0
00346  1DBF             
00347  1DBF  C5 02                 CMP     $02
00348  1DC1  F0 06                 BEQ     EUMP
00349  1DC3             
00350  1DC3  A9 20                 LDA     #$20
00351  1DC5  15 FB                 ORA     $FB,X
00352  1DC7  95 FB                 STA     $FB,X
00353  1DC9             
00354  1DC9                        ;       CHECK IF MATCHING 64K EMULATOR SYSTEM (1ST ROUND)
00355  1DC9             
00356  1DC9  A5 07      EUMP       LDA     $07
00357  1DCB             
00358  1DCB  C5 02                 CMP     $02
00359  1DCD  F0 06                 BEQ     TEMP
00360  1DCF             
00361  1DCF  A9 10                 LDA     #$10
00362  1DD1  15 FB                 ORA     $FB,X
00363  1DD3  95 FB                 STA     $FB,X
00364  1DD5             
00365  1DD5                        ;       PRINT NUMBER
00366  1DD5             
00367  1DD5  20 EC 1D   TEMP       JSR     NUMPR
00368  1DD8             
00369  1DD8  A9 20                 LDA     #$20
00370  1DDA  20 D2 FF              JSR     $FFD2
00371  1DDD             
00372  1DDD  78                    SEI
00373  1DDE  E6 06                 INC     $06
00374  1DE0  D0 9B                 BNE     NXLP
00375  1DE2             
00376  1DE2  A2 11                 LDX     #<MSGD
00377  1DE4  20 00 1D              JSR     PRINT
00378  1DE7             
00379  1DE7  E6 07                 INC     $07
00380  1DE9  D0 94                 BNE     NULP
00381  1DEB             
00382  1DEB  60                    RTS
00383  1DEC             
00384  1DEC                        ;       PRINT NUMBER (IN $02)
00385  1DEC             
00386  1DEC  A9 00      NUMPR      LDA     #$00
00387  1DEE  85 03                 STA     $03
00388  1DF0             
00389  1DF0  85 04      NUM16      STA     $04
00390  1DF2  85 05      NUM24      STA     $05
00391  1DF4  A2 08                 LDX     #$08
00392  1DF6  D0 35                 BNE     NLP0
00393  1DF8             
00394  1DF8  A5 02      NLP1       LDA     $02
00395  1DFA  FD 38 1E              SBC     NTAB1-1,X
00396  1DFD  85 02                 STA     $02
00397  1DFF  A5 03                 LDA     $03
00398  1E01  FD 3F 1E              SBC     NTAB2-1,X
00399  1E04  85 03                 STA     $03
00400  1E06  A5 04                 LDA     $04
00401  1E08  FD 46 1E              SBC     NTAB3-1,X
00402  1E0B  85 04                 STA     $04
00403  1E0D  C8                    INY
00404  1E0E             
00405  1E0E  A5 02      NLP2       LDA     $02
00406  1E10  DD 38 1E              CMP     NTAB1-1,X
00407  1E13  A5 03                 LDA     $03
00408  1E15  FD 3F 1E              SBC     NTAB2-1,X
00409  1E18  A5 04                 LDA     $04
00410  1E1A  FD 46 1E              SBC     NTAB3-1,X
00411  1E1D  B0 D9                 BCS     NLP1
00412  1E1F             
00413  1E1F  98                    TYA
00414  1E20  D0 04                 BNE     NLP3
00415  1E22  A4 05                 LDY     $05
00416  1E24  F0 09                 BEQ     NLPY
00417  1E26             
00418  1E26  09 30      NLP3       ORA     #$30
00419  1E28  84 05                 STY     $05
00420  1E2A  20 D2 FF              JSR     $FFD2
00421  1E2D             
00422  1E2D  A0 00      NLP0       LDY     #$00
00423  1E2F  CA         NLPY       DEX
00424  1E30  D0 DC                 BNE     NLP2
00425  1E32             
00426  1E32  A9 30                 LDA     #$30
00427  1E34  05 02                 ORA     $02
00428  1E36  4C D2 FF              JMP     $FFD2
00429  1E39             
00430  1E39  0A 64 E8   NTAB1      BYTE    $0A,$64,$E8,$10,$A0,$40,$80
00431  1E40  00 00 03   NTAB2      BYTE    $00,$00,$03,$27,$86,$42,$96
00432  1E47  00 00 00   NTAB3      BYTE    $00,$00,$00,$00,$01,$0F,$98
00433  1E4E             
00434  1E4E                        ;       COMPILED WITH CBM PRG STUDIO V3.10 (BY ARTHUR JORDISON)
00435  1E4E                        ;       HTTP://AJORDISON.CO.UK/
00436  1E4E             
00437  1E4E                        ;       ROSETTA INTERACTIVE FICTION PROJECT HOMEPAGE:
00438  1E4E             
00439  1E4E                        ;       HTTP://ISTENNYILA.HU/ROSETTA
00440  1E4E             
00441  1E4E                        ;       V0.13 (C) 2012-2017 BY ROBERT OLESSAK
00442  1E4E             
