2023年3月25日土曜日

FM-7にRTCとSDを接続する試み(SDカード編 その2)

SDカード中のBASICプログラムファイルと機械語ファイルを読み込んで実行することができました

SDカードへの書き込みはまだ実現していませんが、とりあえず、読み込みはできるようになりました。

F-BASICのコマンド(FILES, LOAD, LOADM)でフロッピィディスクと同様にSDカードを扱えるのが理想なのでしょうが、1セクタのサイズが512バイトであることもあり実現するのは私には難しいようです。

とりあえず、SDカードを用いてWindowsPCからFM-7へファイルを移動させるツールとして使用する前提で、常駐ソフトではなくその都度起動してSDカードを読むという形の専用プログラムにしました。

使用法のイメージは下図のようです。


使用イメージ

通常使用しているFT245高速通信カードでは、ディスクイメージを丸ごとコピーするのですが、このSDカード使用の場合は特定のファイルを選択してFM-7に移すことができます。

プログラムの起動画面です


起動画面

メニュー項目は

1.指定したセクタのリード
2.SDカードのデータ取得・表示
3.SDカードの初期化
4.MBR(Master Boot Record)内容の表示
5.BPB(Boot Parameter Block)内容の表示
6.FAT(File Allocation Table)内容の表示
7.DIR(Directory)内容の表示
8.指定ファイルの読み込み
で、前回との違いは、
・セクタへの書き込みを省いた。
・ディレクトリの表示形式を変更したことと、全ページを表示できるようにした。
・ファイルの読み込みを画面表示ではなく、メモリに展開してF-BASICと連携した。
の3つです。

その様子を下に示します。
ファイルのロードは前回のような番号ではなく、ファイル名の入力で選択します。


ディレクトリ表示とファイルのロード


メモリにロードしたBASICのプログラムは、下画面のように普通に表示できて実行もできます。


ロードしたBASICファイルをリスト表示

ここには示しませんでしたが、機械語ファイルも指定したアドレスに読み込まれます。


現在までに実現できた機能をまとめると

1.SDカードとSDHCカードに対応している。

2.普通にWindows上でSDカードに書き込んだファイルが読み込める。

3.F-BASICのプログラムファイルと機械語ファイルが扱える。


制限事項は

1.FM-7で使用することを前提としているので、32KBを超えるような大きなファイルには対応していない。

2.ファイル名には拡張子をつけてはいけない。(拡張子はチェックしていない)

3.ファイル名に小文字は使えない。(大文字に変換されてしまう)

4.F-BASICのプログラムファイルは中間言語に変換されたもののみで、アスキーセーブされたファイルは扱えない。(テキストエリアに直接書き込んでいるため)

5.機械語ファイルはF-BASICのディスク保存形式であること。


制約事項も多々ありますが、とりあえず、Windows上に保存してあったBASICプログラムファイルや機械語ファイルを、SDカードを介してFM-7に持ち込むツールとして使用できるのではと考えています。


さらに実現したいこと

残る課題は、当然、FM-7上でSDカードにプログラムなどを書き込んで、それをWindows上で読み込むという機能を実現することです。これができれば完成といえます。

しかし、これはFATを書き換えるということになりますので、FMS(ファイルマネージメントシステム)が絡んできますし、プログラムサイズも既に3KB近くになっていますので、さらに大きくなるとどこに配置するかも問題になってきます。

以上、6809のアセンブラでSDカードからのファイルの読み込みまで実現できたという報告でした。なお、使用しているFM-7本体のルーチンはINCHA, OUTCHA, CSRONの3つのみです。

作成したプログラムを下に示しておきます。



  1. 0001        *0002        *  SDHC9.TXT0003        *0004        *  SD Read/Write for FM-70005        *0006        *    use RTC & SD Card0007        *0008        *    6821(PIA) Port A <--> RTC (I2C Mode)0009        *0010        *        SBC      RTC                    Ext IO0011        *    CA2  2  -->       -->  HV4 LV4 -->  IO10012        *    PA0  3  -->  SCL  -->  HV1 LV1 -->  IO40013        *    PA1  4  <-- --="" 0014="" 10="" hv2="" io3="" lv2="" pa7="">  SDA  -->  HV3 LV3 -->  IO20015        *    GND     --        --           --   GND0016        *            --        --           --   3V30017        *0018        *0019        *    6821(PIA) Port B <--> SD (SPI Mode)0020        *0021        *        SBC                   SD0022        *    CB2 12  -->  HV4 LV4 -->  SCK0023        *    PB0 13  -->  HV1 LV1 -->  CS0024        *    PB1 14  <-- --="" 0025="" 20="" hv2="" lv2="" miso="" pb7="">  HV3 LV3 -->  MOSI0026        *    GND 31  --           --   GND0027        *    VCC 33  --           --   VCC0028        *0029        *    cf. all data line use level converter0030        *0031        *    PB  output mode0032        *    CB2 1bit output0033        *0034        *    READ/WRITE BUFFER  $6D00 - 6EFF0035        *0036        *    Load data to F-BASIC '2023.03.230037        *    Add command          '2023.03.140038        *    Change use Port B    '2023.03.070039        *    Original version     '2022.06.110040        *         Copyright by Y.Yamamoto0041        *0042  6000      STTADR  EQU     $6000       0043        0044  FBB8      INCHA   EQU     $FBB8       0045  FBBB      OUTCHA  EQU     $FBBB       0046  FBF7      CSRON   EQU     $FBF7       0047        0048  6D00      RWBUF   EQU     STTADR+$0D00    0049        0050  FD9E      PBDAT   EQU     $FD9E       0051  FD9F      PBCTL   EQU     PBDAT+1     0052  0033      BASADRP EQU     $33         pointer of adrs for F-BASIC0053  2000      TXTADR  EQU     $2000       for TEXT0054        0055  6000              ORG     STTADR      0056        0057  6000  20  58  START   BRA     MAIN        0058  6002  01    VN      FCB     1           0059  6003  00    SCTN0   FCB     0           top adrs of sct0060  6004  00    SCTN1   FCB     0           0061  6005  00    SCTN2   FCB     0           0062  6006  00    SCTN3   FCB     0           0063  6007  00    RESDAT  FCB     0           response data0064  6008  00    SDHC    FCB     0           sd:0,sdhc:10065        0066  6009  0000    SCTBPB  FDB     00          sct no of BPB(4bytes)0067  600B  0000            FDB     00          0068  600D  0000    SCTFAT  FDB     00          sct no of FAT#1(4bytes)0069  600F  0000            FDB     00          0070  6011  0000    SCTDIR  FDB     00          sct no of DIR(4bytes)0071  6013  0000            FDB     00          0072  6015  0000    SCTDSV  FDB     00          save sct no of DIR0073  6017  0000            FDB     00          0074  6019  0000    SCTCLT  FDB     00          sct no of top CLUSTER(4bytes)0075  601B  0000            FDB     00          if SD:#2, SDHC:#30076  601D  00    SCTPCL  FCB     0           sct per cluster0077  601E  FF    DIRENT  RMB     32          0078  603E  FF    WMDY    RMB     3           0079  6041  FF    WFSIZ   RMB     4           0080  6045  FF    FILSIZ  RMB     2           0081  6047  0000    CLSTH   FDB     00          0082  6049  0000    CLSTL   FDB     00          0083  604B  00    CNT     FCB     0           0084  604C  00    CNTSV   FCB     0           0085  604D  00    MCFLG   FCB     0           1:machine code, 0:else0086  604E  00    DPGFLG  FCB     0           1:1st page of DIR, 0:else0087  604F  FF    FNAME   RMB     9           0088  6058  0000    WK1     FDB     00          0089        0090  605A      MAIN    EQU     *           0091        *=====reset pia=====0092        *portB:output0093  605A  86  30          LDA     #$30        0094  605C  B7  FD9F          STA     PBCTL       select ddra, cb2:00095  605F  86  FD          LDA     #$FD        pb0,7:out,pb1:in0096  6061  B7  FD9E          STA     PBDAT       set output mode0097  6064  86  34          LDA     #$34        0098  6066  B7  FD9F          STA     PBCTL       select peripheral,cb2:00099         0100        *for pia exist check0101  6069  86  55          LDA     #$55        test data0102  606B  B7  FD9E          STA     PBDAT       0103  606E  B6  FD9E          LDA     PBDAT       0104  6071  84  FD          ANDA    #$FD        pb1=00105  6073  81  55          CMPA    #$55        0106  6075  27  07          BEQ     INIT        0107  6077  8E  6A30          LDX     #MERR       0108  607A  17  075F          LBSR    PSTRNG      0109  607D  39            RTS           return to BASIC0110        0111  607E      INIT    EQU     *           0112  607E  8D  59          BSR     SDINIT      0113        0114        ****************************************0115        * MAIN MENU0116        ****************************************0117  6080      MENU    EQU     *           0118  6080  8E  6976          LDX     #MSMENU1    0119  6083  17  0756          LBSR    PSTRNG      0120  6086  8E  69B6          LDX     #MSMENU2    0121  6089  17  0750          LBSR    PSTRNG      0122  608C  17  9B68          LBSR    CSRON       cursor on0123        0124  608F  BD  690B          JSR     INOUTC      0125  6092  80  30          SUBA    #$30        0126  6094  26  04          BNE     MEN1        0?0127  6096  17  068E          LBSR    CRLF        0128  6099  39            RTS           return to BASIC0129        0130  609A  4A    MEN1    DECA          1?0131  609B  26  05          BNE     MEN2        0132  609D  17  0279          LBSR    SDRD        0133  60A0  20  DE          BRA     MENU        0134  60A2  4A    MEN2    DECA          2?0135  60A3  26  05          BNE     MEN3        0136  60A5  17  01E3          LBSR    GETSD       0137  60A8  20  D6          BRA     MENU        0138  60AA  4A    MEN3    DECA          3?0139  60AB  26  04          BNE     MEN4        0140  60AD  8D  2A          BSR     SDINIT      0141  60AF  20  CF          BRA     MENU        0142  60B1  4A    MEN4    DECA          4?0143  60B2  26  05          BNE     MEN5        0144  60B4  17  0275          LBSR    DSPMBR      0145  60B7  20  C7          BRA     MENU        0146  60B9  4A    MEN5    DECA          5?0147  60BA  26  05          BNE     MEN6        0148  60BC  17  02C7          LBSR    DSPBPB      0149  60BF  20  BF          BRA     MENU        0150  60C1  4A    MEN6    DECA          6?0151  60C2  26  05          BNE     MEN7        0152  60C4  17  02D1          LBSR    DSPFAT      0153  60C7  20  B7          BRA     MENU        0154  60C9  4A    MEN7    DECA          7?0155  60CA  26  05          BNE     MEN8        0156  60CC  17  02DB          LBSR    DSPDIR      0157  60CF  20  AF          BRA     MENU        0158  60D1  4A    MEN8    DECA          8?0159  60D2  26  AC          BNE     MENU        0160  60D4  17  0398          LBSR    LDFILE      0161  60D7  20  A7          BRA     MENU        0162        *0163        ****************************************0164        * SD Initialize routine0165        ****************************************0166  60D9      SDINIT  EQU     *           0167        *---------- start ----------0168  60D9  8E  6A14          LDX     #MSINIT     0169  60DC  17  06FD          LBSR    PSTRNG      0170        * cs:1,di:1,sck>74ms0171  60DF  86  FF          LDA     #$FF        mosi:b7=H,miso:b1=H(for PIA),cs:b0=H0172  60E1  B7  FD9E          STA     PBDAT       0173  60E4  C6  50          LDB     #80         80times0174  60E6  17  0603  ISTT    LBSR    SETCKL      0175  60E9  17  0609          LBSR    SETCKH      0176  60EC  5A            DECB          0177  60ED  26  F7          BNE     ISTT        0178        *0179        *---------- cmd 0 ----------0180  60EF      SCMD0   EQU     *           0181        * LDX #MCMD00182        * LBSR PSTRNG0183         0184  60EF  17  05FA          LBSR    SETCKL      0185  60F2  C6  06          LDB     #6          0186  60F4  8E  6912          LDX     #CMD0       0187  60F7  A6  80  SC01    LDA     ,X+         0188  60F9  17  057B          LBSR    SNDDAT      0189  60FC  5A            DECB          0190  60FD  26  F8          BNE     SC01        0191        *get response0192  60FF  5F            CLRB          0193  6100      GR00          0194  6100  5A            DECB          0195  6101  1027  020D          LBEQ    SDERR       0196  6105  17  058B          LBSR    GETDAT      0197  6108  B6  6007          LDA     RESDAT      0198        * LBSR DSPBIN disp response0199  610B  81  01          CMPA    #$01        0200  610D  26  F1          BNE     GR00        0201        * LBSR CRLF0202        *0203        *---------- cmd 8 ----------0204  610F      SCMD8   EQU     *           0205        * LDX #MCMD80206        * LBSR PSTRNG0207         0208  610F  17  05DA          LBSR    SETCKL      0209  6112  86  FF          LDA     #$FF        dummy cmd0210  6114  17  0560          LBSR    SNDDAT      0211  6117  C6  06          LDB     #6          0212  6119  8E  692A          LDX     #CMD8       0213  611C  A6  80  SC80    LDA     ,X+         0214  611E  17  0556          LBSR    SNDDAT      0215  6121  5A            DECB          0216  6122  26  F8          BNE     SC80        0217        *get response0218  6124      GR80          0219  6124  17  056C          LBSR    GETDAT      0220  6127  B6  6007          LDA     RESDAT      0221         0222  612A  17  0566          LBSR    GETDAT      0223  612D  B6  6007          LDA     RESDAT      0224        * LBSR DSPBIN disp response0225  6130  81  01          CMPA    #$01        0226  6132  26  F0          BNE     GR80        0227  6134  C6  04          LDB     #4          0228  6136  17  055A  GR81    LBSR    GETDAT      0229  6139  B6  6007          LDA     RESDAT      0230        * LBSR DSPBIN disp response0231  613C  5A            DECB          0232  613D  26  F7          BNE     GR81        0233        * LBSR CRLF0234        *0235        *---------- cmd 58 ----------0236  613F      SCMD58  EQU     *           0237        * LDX #MCMD580238        * LBSR PSTRNG0239         0240  613F  17  05AA          LBSR    SETCKL      0241  6142  86  FF          LDA     #$FF        dummy cmd0242  6144  17  0530          LBSR    SNDDAT      0243  6147  C6  06          LDB     #6          0244  6149  8E  6930          LDX     #CMD58      0245  614C  A6  80  SC581   LDA     ,X+         0246  614E  17  0526          LBSR    SNDDAT      0247  6151  5A            DECB          0248  6152  26  F8          BNE     SC581       0249        *get response0250  6154      GR580         0251  6154  17  053C          LBSR    GETDAT      0252  6157  B6  6007          LDA     RESDAT      0253        * LBSR DSPBIN disp response0254  615A  81  01          CMPA    #$01        0255  615C  26  F6          BNE     GR580       0256  615E  C6  04  GR581   LDB     #4          0257  6160  17  0530  GR582   LBSR    GETDAT      0258  6163  B6  6007          LDA     RESDAT      0259        * LBSR DSPBIN disp response0260  6166  5A            DECB          0261  6167  26  F7          BNE     GR582       0262  6169      RPT41   EQU     *           0263        *---------- cmd 55 ----------0264  6169      SCMD55  EQU     *           0265        * LDX #MCMD550266        * LBSR PSTRNG0267         0268  6169  17  0580          LBSR    SETCKL      0269  616C  86  FF          LDA     #$FF        dummy cmd0270  616E  17  0506          LBSR    SNDDAT      0271  6171  C6  06          LDB     #6          0272  6173  8E  6936          LDX     #CMD55      0273  6176  A6  80  SC551   LDA     ,X+         0274  6178  17  04FC          LBSR    SNDDAT      0275  617B  5A            DECB          0276  617C  26  F8          BNE     SC551       0277        *get response0278        * CLRB0279  617E      GR550         0280        * DECB0281        * BEQ SDERR0282  617E  17  0512          LBSR    GETDAT      0283  6181  B6  6007          LDA     RESDAT      0284        * LBSR DSPBIN disp response0285  6184  81  01          CMPA    #$01        0286  6186  26  F6          BNE     GR550       0287         0288        * LBSR CRLF0289        *---------- acmd 41 ----------0290  6188      ASCMD41 EQU     *           0291        * LDX #MCMD410292        * LBSR PSTRNG0293         0294  6188  17  0561          LBSR    SETCKL      0295  618B  86  FF          LDA     #$FF        dummy cmd0296  618D  17  04E7          LBSR    SNDDAT      0297  6190  C6  06          LDB     #6          0298  6192  8E  693C          LDX     #ACMD41     0299  6195  A6  80  ASC411  LDA     ,X+         0300  6197  17  04DD          LBSR    SNDDAT      0301  619A  5A            DECB          0302  619B  26  F8          BNE     ASC411      0303        *get response0304  619D      GR410         0305  619D  17  04F3          LBSR    GETDAT      0306  61A0  B6  6007          LDA     RESDAT      0307        * LBSR DSPBIN disp response0308  61A3  17  04ED          LBSR    GETDAT      0309  61A6  B6  6007          LDA     RESDAT      0310        * LBSR DSPBIN disp response0311  61A9  81  00          CMPA    #$00        0312  61AB  26  BC          BNE     RPT41       0313        * LBSR CRLF0314         0315        *---------- second cmd 58 ----------0316  61AD      SCMD258 EQU     *           0317        * LDX #MCMD580318        * LBSR PSTRNG0319         0320  61AD  17  053C          LBSR    SETCKL      0321  61B0  86  FF          LDA     #$FF        dummy cmd0322  61B2  17  04C2          LBSR    SNDDAT      0323  61B5  C6  06          LDB     #6          0324  61B7  8E  6930          LDX     #CMD58      0325  61BA  A6  80  SC2581  LDA     ,X+         0326  61BC  17  04B8          LBSR    SNDDAT      0327  61BF  5A            DECB          0328  61C0  26  F8          BNE     SC2581      0329        *get response0330  61C2      GR2580        0331  61C2  17  04CE          LBSR    GETDAT      0332  61C5  B6  6007          LDA     RESDAT      0333        * LBSR DSPBIN disp response0334  61C8  81  00          CMPA    #$00        0335  61CA  26  F6          BNE     GR2580      0336  61CC  17  04C4          LBSR    GETDAT      0337  61CF  B6  6007          LDA     RESDAT      0338        * LBSR DSPBIN disp response0339  61D2  48            LSLA          0340  61D3  48            LSLA          0341  61D4  24  03          BCC     GR2581      0342  61D6  7C  6008          INC     SDHC        if sdhc then 10343  61D9  C6  03  GR2581  LDB     #3          0344  61DB  17  04B5  GR2582  LBSR    GETDAT      0345  61DE  B6  6007          LDA     RESDAT      0346        * LBSR DSPBIN disp response0347  61E1  5A            DECB          0348  61E2  26  F7          BNE     GR2582      0349         0350  61E4  8E  69FA          LDX     #MSSD0      0351  61E7  B6  6008          LDA     SDHC        0352  61EA  27  03          BEQ     SD1         0353  61EC  8E  6A06          LDX     #MSSD1      0354  61EF  17  05EA  SD1     LBSR    PSTRNG      0355        *----------0356        *set sct no of BPB0357  61F2  17  0155          LBSR    GETMBR      0358  61F5  8E  6ECA          LDX     #RWBUF+446+8+4    0359  61F8  108E  6009          LDY     #SCTBPB     0360  61FC  C6  04          LDB     #4          0361  61FE  A6  82  ILOP1   LDA     ,-X         0362  6200  A7  A0          STA     ,Y+         0363  6202  5A            DECB          0364  6203  26  F9          BNE     ILOP1       0365         0366        *set sct no of FAT#10367  6205  17  0165          LBSR    GETBPB      0368  6208  8E  6009          LDX     #SCTBPB     0369  620B  108E  600D          LDY     #SCTFAT     0370  620F  C6  04          LDB     #4          0371  6211  A6  80  ILOP2   LDA     ,X+         0372  6213  A7  A0          STA     ,Y+         0373  6215  5A            DECB          0374  6216  26  F9          BNE     ILOP2       0375         0376  6218  8E  600D          LDX     #SCTFAT     0377  621B  108E  6D0E          LDY     #RWBUF+$0E    for SD & SDHC0378  621F  17  0589          LBSR    ADD42       0379         0380        *set sct no of DIR0381  6222  8E  600D          LDX     #SCTFAT     0382  6225  108E  6011          LDY     #SCTDIR     0383  6229  C6  04          LDB     #4          0384  622B  A6  80  ILOP3   LDA     ,X+         0385  622D  A7  A0          STA     ,Y+         0386  622F  5A            DECB          0387  6230  26  F9          BNE     ILOP3       0388         0389  6232  8E  6D16          LDX     #RWBUF+$16    for SD0390  6235  7D  6008          TST     SDHC        0391  6238  27  03          BEQ     SKP1        0392  623A  C6  0E          LDB     #$24-$16    0393  623C  3A            ABX           for SDHC0394  623D  1F  12  SKP1    TFR     X,Y         0395  623F  8E  6011          LDX     #SCTDIR     0396  6242  17  0566          LBSR    ADD42       0397  6245  17  0563          LBSR    ADD42       skip for FAT#20398         0399        *save no of directory0400  6248  8E  6011          LDX     #SCTDIR     0401  624B  108E  6015          LDY     #SCTDSV     0402  624F  C6  04          LDB     #4          0403  6251  A6  80  SCPY1   LDA     ,X+         0404  6253  A7  A0          STA     ,Y+         0405  6255  5A            DECB          0406  6256  26  F9          BNE     SCPY1       0407        0408        *set sct per cluster0409  6258  8E  6D0D          LDX     #RWBUF+$0D    0410  625B  A6  84          LDA     ,X          0411  625D  B7  601D          STA     SCTPCL      0412         0413        *set sct no of CLUSTER#20414  6260  8E  6011          LDX     #SCTDIR     0415  6263  108E  6019          LDY     #SCTCLT     0416  6267  C6  04          LDB     #4          0417  6269  A6  80  ILOP4   LDA     ,X+         0418  626B  A7  A0          STA     ,Y+         0419  626D  5A            DECB          0420  626E  26  F9          BNE     ILOP4       0421         0422  6270  108E  605A          LDY     #WK1+2      0423  6274  86  00          LDA     #$00        0424  6276  A7  A2          STA     ,-Y         0425  6278  86  20          LDA     #$20        for SD0426  627A  7D  6008          TST     SDHC        0427  627D  27  03          BEQ     SKP2        0428  627F  B6  601D          LDA     SCTPCL      for SDHC0429  6282  A7  A2  SKP2    STA     ,-Y         0430  6284  8E  6019          LDX     #SCTCLT     0431  6287  17  0521          LBSR    ADD42       0432        *----------0433  628A  39            RTS           0434        0435        ****************************************0436        * GET SD DATA ROUTINE0437        * use CMD90438        ****************************************0439  628B      GETSD   EQU     *           0440  628B  17  0499          LBSR    CRLF        0441  628E  17  045B          LBSR    SETCKL      0442  6291  C6  06          LDB     #6          0443  6293  8E  6942          LDX     #CMD9       0444  6296  A6  80  SC91    LDA     ,X+         0445  6298  17  03DC          LBSR    SNDDAT      0446  629B  5A            DECB          0447  629C  26  F8          BNE     SC91        0448        * LBSR CRLF0449        *get response0450  629E      GR90          0451  629E  17  03F2          LBSR    GETDAT      0452  62A1  B6  6007          LDA     RESDAT      0453        * LBSR DSPBIN disp response0454  62A4  81  00          CMPA    #$00        0455  62A6  26  F6          BNE     GR90        0456         0457        * LBSR CRLF0458  62A8  17  047C          LBSR    CRLF        0459  62AB  C6  14          LDB     #16+1+2+1   fe,crcH,crcL,ff0460  62AD  17  03E3  GR91    LBSR    GETDAT      0461  62B0  B6  6007          LDA     RESDAT      0462  62B3  17  0448          LBSR    DSPBIN      disp response0463  62B6  5A            DECB          0464  62B7  26  F4          BNE     GR91        0465  62B9  17  046B          LBSR    CRLF        0466        0467        *disp offset of MBR,FAT#1,DIR,CLUSTER#20468  62BC  8E  6A56          LDX     #MSOFS      0469  62BF  17  051A          LBSR    PSTRNG      0470  62C2  8E  6A66          LDX     #MSBPB      0471  62C5  17  0514          LBSR    PSTRNG      0472  62C8  8E  6009          LDX     #SCTBPB     0473  62CB  C6  04          LDB     #4          0474  62CD  A6  80  SCLOP1  LDA     ,X+         0475  62CF  17  042C          LBSR    DSPBIN      0476  62D2  5A            DECB          0477  62D3  26  F8          BNE     SCLOP1      0478        0479  62D5  8E  6A6F          LDX     #MSFAT      0480  62D8  17  0501          LBSR    PSTRNG      0481  62DB  8E  600D          LDX     #SCTFAT     0482  62DE  C6  04          LDB     #4          0483  62E0  A6  80  SCLOP2  LDA     ,X+         0484  62E2  17  0419          LBSR    DSPBIN      0485  62E5  5A            DECB          0486  62E6  26  F8          BNE     SCLOP2      0487        0488  62E8  8E  6A78          LDX     #MSDIR      0489  62EB  17  04EE          LBSR    PSTRNG      0490  62EE  8E  6011          LDX     #SCTDIR     0491  62F1  C6  04          LDB     #4          0492  62F3  A6  80  SCLOP3  LDA     ,X+         0493  62F5  17  0406          LBSR    DSPBIN      0494  62F8  5A            DECB          0495  62F9  26  F8          BNE     SCLOP3      0496        0497  62FB  8E  6A81          LDX     #MSCL2      0498  62FE  17  04DB          LBSR    PSTRNG      0499  6301  8E  6019          LDX     #SCTCLT     0500  6304  C6  04          LDB     #4          0501  6306  A6  80  SCLOP4  LDA     ,X+         0502  6308  17  03F3          LBSR    DSPBIN      0503  630B  5A            DECB          0504  630C  26  F8          BNE     SCLOP4      0505  630E  17  0416          LBSR    CRLF        0506  6311  39            RTS           0507        0508        *0509  6312      SDERR   EQU     *           0510  6312  8E  6A30          LDX     #MERR       0511  6315  17  04C4          LBSR    PSTRNG      0512  6318      OKEND         0513  6318  39            RTS           return to BASIC0514        *0515        ****************************************0516        * READ ROUTINE0517        * use CMD170518        * set sctno to $6005,60060519        * read data set to $6800-69FF0520        ****************************************0521  6319      SDRD    EQU     *           0522  6319  17  040B          LBSR    CRLF        0523  631C  17  038E          LBSR    INSCT       0524  631F  17  02FC          LBSR    RD1SCT      read 1 sct0525        0526        *disp data0527  6322  17  0402          LBSR    CRLF        0528  6325  17  0331          LBSR    DSPBUF      0529  6328  17  03FC          LBSR    CRLF        0530  632B  39            RTS           0531        0532        ****************************************0533        * Read MBR & Disp parameter of BPB0534        ****************************************0535  632C      DSPMBR  EQU     *           0536  632C  17  03F8          LBSR    CRLF        0537  632F  8D  19          BSR     GETMBR      0538        0539        *disp BPB0540  6331  17  03F3          LBSR    CRLF        0541  6334  8E  6EBE          LDX     #RWBUF+446    0542  6337  C6  10  GET1    LDB     #16         0543  6339  A6  80  GET2    LDA     ,X+         0544  633B  17  03C0          LBSR    DSPBIN      disp data0545  633E  5A            DECB          0546  633F  26  F8          BNE     GET2        0547  6341  17  03E3          LBSR    CRLF        0548  6344  8C  6EFE          CMPX    #RWBUF+510    446+16*40549  6347  25  EE          BLO     GET1        0550  6349  39            RTS           0551        0552        *----------------------------------------0553        *read MBR0554  634A      GETMBR  EQU     *           0555  634A  8E  6003          LDX     #SCTN0      0556  634D  C6  04          LDB     #4          0557  634F  4F            CLRA          0558  6350  A7  80  GPLOP   STA     ,X+         0559  6352  5A            DECB          0560  6353  26  FB          BNE     GPLOP       0561  6355  17  035D          LBSR    SETSCT      0562         0563  6358  17  02C3          LBSR    RD1SCT      read 1 sct0564  635B  39            RTS           0565        0566        *----------------------------------------0567        *set sector no to SCTN00568        *from X,X+1,X+2,X+3 to SCTN0-SCTN30569  635C      SETSNO  EQU     *           0570  635C  108E  6003          LDY     #SCTN0      0571  6360  C6  04          LDB     #4          0572  6362  A6  80  SELOP   LDA     ,X+         0573  6364  A7  A0          STA     ,Y+         0574  6366  5A            DECB          0575  6367  26  F9          BNE     SELOP       0576  6369  17  0349          LBSR    SETSCT      0577  636C  39            RTS           0578        0579        *----------------------------------------0580        *read BPB0581  636D      GETBPB  EQU     *           0582  636D  8D  DB          BSR     GETMBR      0583        *set sct no of BPB0584  636F  8E  6ECA          LDX     #RWBUF+446+8+4    0585  6372  108E  6003          LDY     #SCTN0      0586  6376  C6  04          LDB     #4          0587  6378  A6  82  GPLOP2  LDA     ,-X         0588  637A  A7  A0          STA     ,Y+         0589  637C  5A            DECB          0590  637D  26  F9          BNE     GPLOP2      0591  637F  17  0333          LBSR    SETSCT      0592         0593  6382  17  0299          LBSR    RD1SCT      read 1 sct0594  6385  39            RTS           0595        0596        ****************************************0597        * Disp BPB(Bios Parameter Block)0598        ****************************************0599  6386      DSPBPB  EQU     *           0600  6386  8E  6009          LDX     #SCTBPB     0601  6389  8D  D1          BSR     SETSNO      0602  638B  17  0290          LBSR    RD1SCT      read 1 sct0603         0604        *disp BPB0605  638E  17  0396          LBSR    CRLF        0606  6391  17  02C5          LBSR    DSPBUF      0607  6394  17  0390          LBSR    CRLF        0608  6397  39            RTS           0609        0610        ****************************************0611        * Disp FAT#10612        ****************************************0613  6398      DSPFAT  EQU     *           0614  6398  8E  600D          LDX     #SCTFAT     0615  639B  8D  BF          BSR     SETSNO      0616  639D  17  027E          LBSR    RD1SCT      read 1 sct0617         0618        *disp FAT0619  63A0  17  0384          LBSR    CRLF        0620  63A3  17  02B3          LBSR    DSPBUF      0621  63A6  17  037E          LBSR    CRLF        0622  63A9  39            RTS           0623        0624        ****************************************0625        * Disp Directory0626        ****************************************0627  63AA      DSPDIR  EQU     *           0628  63AA  7C  604E          INC     DPGFLG      set 1st page of DIR flag0629        *return no of DIR0630  63AD  108E  6019          LDY     #SCTDSV+4   0631  63B1  8E  6015          LDX     #SCTDIR+4   0632  63B4  C6  04          LDB     #4          0633  63B6  A6  A2  DRET0   LDA     ,-Y         0634  63B8  A7  82          STA     ,-X         0635  63BA  5A            DECB          0636  63BB  26  F9          BNE     DRET0       0637         0638  63BD  8E  6011  DSPFL0  LDX     #SCTDIR     0639  63C0  8D  9A          BSR     SETSNO      0640  63C2  17  0259          LBSR    RD1SCT      read 1 sct0641         0642        *disp FILE name0643  63C5  17  035F          LBSR    CRLF        0644  63C8  17  035C          LBSR    CRLF        0645  63CB  8E  6D00          LDX     #RWBUF      0646  63CE  7D  604E          TST     DPGFLG      1st page of DIR?0647  63D1  27  03          BEQ     DSKP1       0648  63D3  30  88 60         LEAX    96,X        skip top data0649  63D6      DSKP1         0650        0651  63D6  A6  84  DSPFL1  LDA     ,X          0652  63D8  1027  008F          LBEQ    DSPEND      if top of filename is 0 then end0653  63DC  81  E5          CMPA    #$E5        delete mark?0654  63DE  27  0A          BEQ     DSPCKE      0655  63E0  A6  0B          LDA     11,X        attr0656  63E2  81  0F          CMPA    #$0F        long file name?0657  63E4  27  04          BEQ     DSPCKE      0658  63E6  81  10          CMPA    #$10        directory?0659  63E8  26  0A          BNE     DSPFL2      0660  63EA  30  88 20 DSPCKE  LEAX    32,X        next directory entry0661  63ED  8C  6EE0          CMPX    #RWBUF+512-32   0662  63F0  24  60          BHS     DSPFL5      0663  63F2  20  E2          BRA     DSPFL1      0664         0665  63F4      DSPFL2        0666        *disp filename0667  63F4  C6  08          LDB     #8          0668  63F6  A6  80  DSPFL3  LDA     ,X+         0669  63F8  BD  FBBB          JSR     OUTCHA      0670  63FB  5A            DECB          0671  63FC  26  F8          BNE     DSPFL3      0672        *disp ext0673  63FE  86  2E          LDA     #'.         0674  6400  BD  FBBB          JSR     OUTCHA      0675  6403  C6  03          LDB     #3          0676  6405  A6  80  DSPFL4  LDA     ,X+         0677  6407  BD  FBBB          JSR     OUTCHA      0678  640A  5A            DECB          0679  640B  26  F8          BNE     DSPFL4      0680  640D  86  20          LDA     #'          0681  640F  BD  FBBB          JSR     OUTCHA      0682  6412  BD  FBBB          JSR     OUTCHA      0683        0684        *get FILE time data0685  6415  30  07          LEAX    7,X         0686  6417  EC  81          LDD     ,X++        0687  6419  FD  6058          STD     WK1         0688        0689        *get CLUSTER(H) data0690  641C  EC  81          LDD     ,X++        0691  641E  1E  89          EXG     A,B         0692  6420  FD  6047          STD     CLSTH       0693  6423  30  04          LEAX    4,X         0694  6425  EC  81          LDD     ,X++        0695  6427  1E  89          EXG     A,B         0696  6429  FD  6049          STD     CLSTL       0697         0698        *get FILE size data0699  642C  108E  6045          LDY     #WFSIZ+4    0700  6430  C6  04          LDB     #4          0701  6432  A6  80  DSPC1   LDA     ,X+         0702  6434  A7  A2          STA     ,-Y         0703  6436  5A            DECB          0704  6437  26  F9          BNE     DSPC1       0705        0706        *disp FILE size0707  6439  86  20          LDA     #'          0708  643B  BD  FBBB          JSR     OUTCHA      0709  643E  17  040C          LBSR    DSPSIZ      disp FILE size0710        0711        *disp FILE time0712  6441  FC  6058          LDD     WK1         0713  6444  17  03A5          LBSR    DSPYMD      disp MM-DD-YY0714        0715        *disp CLUSTER(H,L)0716  6447  17  0462          LBSR    DSPCLS      0717  644A  17  02DA          LBSR    CRLF        0718         0719  644D  8C  6F00          CMPX    #RWBUF+512    0720  6450  25  84          BLO     DSPFL1      0721  6452  8E  6011  DSPFL5  LDX     #SCTDIR     0722  6455  17  0192          LBSR    INCX4       sct no +10723  6458  7F  604E          CLR     DPGFLG      clear 1st page of DIR0724  645B  8E  6AC1          LDX     #MSNXTP     0725  645E  17  037B          LBSR    PSTRNG      0726  6461  BD  690B          JSR     INOUTC      0727  6464  81  20          CMPA    #'          0728  6466  26  03          BNE     DSPEND      0729  6468  16  FF52          LBRA    DSPFL0      0730  646B  17  02B9  DSPEND  LBSR    CRLF        0731  646E  39            RTS           0732        0733        ****************************************0734        * Load FILE0735        ****************************************0736  646F      LDFILE  EQU     *           0737        * LBSR DSPDIR0738  646F  7C  604E          INC     DPGFLG      set 1st page of DIR flag0739        *return no of DIR0740  6472  108E  6019          LDY     #SCTDSV+4   0741  6476  8E  6015          LDX     #SCTDIR+4   0742  6479  C6  04          LDB     #4          0743  647B  A6  A2  DRET1   LDA     ,-Y         0744  647D  A7  82          STA     ,-X         0745  647F  5A            DECB          0746  6480  26  F9          BNE     DRET1       0747         0748  6482  8E  6A91          LDX     #MSINFN     0749  6485  17  0354          LBSR    PSTRNG      0750  6488  17  0467          LBSR    FNMIN       0751         0752  648B  8E  6011  LDFL0   LDX     #SCTDIR     0753  648E  17  FECB          LBSR    SETSNO      0754  6491  17  018A          LBSR    RD1SCT      read 1 sct0755        0756  6494  8E  6D00          LDX     #RWBUF      0757  6497  7D  604E          TST     DPGFLG      1st page of DIR?0758  649A  27  03          BEQ     LDFL1       0759  649C  30  88 60         LEAX    96,X        skip top data0760        0761  649F  A6  84  LDFL1   LDA     ,X          0762  64A1  1027  00FA          LBEQ    LDNEND      if top of filename is 0 then end0763  64A5  81  E5          CMPA    #$E5        delete mark?0764  64A7  26  0A          BNE     LD1         0765  64A9  30  88 20         LEAX    32,X        next directory entry0766  64AC  8C  6F00          CMPX    #RWBUF+512    over buf?0767  64AF  24  0F          BHS     LDFL5       0768  64B1  20  EC          BRA     LDFL1       0769        0770        *check file name0771  64B3      LD1           0772  64B3  17  041B          LBSR    CMPFN       C=1:match0773  64B6  25  13          BCS     LD2         0774  64B8  30  88 20         LEAX    32,X        0775  64BB  8C  6F00          CMPX    #RWBUF+512    0776  64BE  25  DF          BLO     LDFL1       0777         0778  64C0      LDFL5         0779  64C0  8E  6011          LDX     #SCTDIR     0780  64C3  17  0124          LBSR    INCX4       sct no +10781  64C6  7F  604E          CLR     DPGFLG      clear 1st page of DIR0782  64C9  20  C0          BRA     LDFL0       0783         0784        *hit file, get dirctory entry0785  64CB  C6  20  LD2     LDB     #32         0786  64CD  108E  601E          LDY     #DIRENT     0787  64D1  A6  80  DCPY    LDA     ,X+         0788  64D3  A7  A0          STA     ,Y+         0789  64D5  5A            DECB          0790  64D6  26  F9          BNE     DCPY        0791  64D8  8E  601E          LDX     #DIRENT     0792         0793        *get cluster no0794  64DB  EC  88 14         LDD     $14,X       0795  64DE  1E  89          EXG     A,B         0796  64E0  FD  6047          STD     CLSTH       high cluster no0797  64E3  EC  88 1A         LDD     $1A,X       0798  64E6  1E  89          EXG     A,B         0799  64E8  FD  6049          STD     CLSTL       low cluster no0800        *sub start cluster no (SD:2,SDHC:3)0801  64EB  83  0002          SUBD    #2          0802  64EE  7D  6008          TST     SDHC        SD:0,SDHC:10803  64F1  27  03          BEQ     LD3         0804  64F3  83  0001          SUBD    #1          D:cluster no (start 0)0805         0806  64F6  34  36  LD3     PSHS    A,B,X,Y     0807  64F8  8E  6019          LDX     #SCTCLT     0808  64FB  108E  6058          LDY     #WK1        0809  64FF  C6  04          LDB     #4          0810  6501  A6  80  LD4     LDA     ,X+         0811  6503  A7  A0          STA     ,Y+         0812  6505  5A            DECB          0813  6506  26  F9          BNE     LD4         0814  6508  35  36          PULS    A,B,X,Y     0815        0816        *(B)x40h0817  650A  34  30          PSHS    X,Y         0818  650C  8E  6058          LDX     #WK1        0819  650F  17  00E7          LBSR    ADD40H      0820  6512  35  30          PULS    X,Y         0821         0822        *get file size0823  6514  34  30          PSHS    X,Y         0824  6516  30  88 20         LEAX    32,X        0825  6519  108E  6041          LDY     #WFSIZ      0826  651D  C6  04          LDB     #4          0827  651F  A6  82  LD41    LDA     ,-X         0828  6521  A7  A0          STA     ,Y+         0829  6523  5A            DECB          0830  6524  26  F9          BNE     LD41        0831  6526  35  30          PULS    X,Y         0832         0833  6528  EC  88 1D         LDD     $1D,X       upper of file size0834  652B  1E  89          EXG     A,B         0835  652D  44            LSRA          wfsiz/$200+10836  652E  56            RORB          0837  652F  C3  0001          ADDD    #1          0838         0839  6532  C1  40          CMPB    #$40        40h page?0840  6534  23  02          BLS     LD5         0841  6536  C6  40          LDB     #$40        0842  6538  F7  604B  LD5     STB     CNT         sct counter0843  653B  F7  604C          STB     CNTSV       0844         0845        *set start sct no0846  653E      LD6           0847  653E  34  30          PSHS    X,Y         0848  6540  8E  6058          LDX     #WK1        0849  6543  108E  6003          LDY     #SCTN0      0850  6547  C6  04          LDB     #4          0851  6549  A6  80  LD7     LDA     ,X+         0852  654B  A7  A0          STA     ,Y+         0853  654D  5A            DECB          0854  654E  26  F9          BNE     LD7         0855  6550  35  30          PULS    X,Y         0856         0857  6552  17  0160          LBSR    SETSCT      0858  6555  17  00C6          LBSR    RD1SCT      read 1 file data0859         0860  6558  7F  604D          CLR     MCFLG       set not machine code0861  655B  B6  604C          LDA     CNTSV       0862  655E  B1  604B          CMPA    CNT         top sector read?0863  6561  26  1B          BNE     LD8         0864         0865        *at top sector, ini set0866        *offset 00 data is0867        *  $00    :machine code (MCFLG=0)0868        *  $FF,$FE:BASIC PROGRAM (binary save) (MCFLG=$FF,$FE)0869        *  else   :general text (MCFLG=1)0870  6563  10BE  6043          LDY     WFSIZ+2     0871  6567  10BF  6045          STY     FILSIZ      set file size0872         0873  656B  8E  6D00          LDX     #RWBUF      0874  656E  A6  84          LDA     ,X          00?(machine code?)0875  6570  B7  604D          STA     MCFLG       0876  6573  26  09          BNE     LD8         0877        *at machine code, read header0878        * INC MCFLG set machine code0879  6575  10AE  01          LDY     1,X         get file size0880  6578  10BF  6045          STY     FILSIZ      0881  657C  EE  03          LDU     3,X         get store addr0882         0883  657E  DE  33  LD8     LDU     BASADRP     get text buffer adr0884  6580  4D            TSTA          0885  6581  2B  03          BMI     LD9         $FFor$FE (basic code?)0886  6583  CE  2000          LDU     #TXTADR     (else)0887  6586      LD9           0888  6586  8D  1F          BSR     MEMSET      0889        0890  6588  8E  6058          LDX     #WK1        0891  658B  8D  5D          BSR     INCX4       sct no +10892  658D  7F  604E          CLR     DPGFLG      clear 1st page of DIR0893  6590  7A  604B          DEC     CNT         0894  6593  26  A9          BNE     LD6         0895         0896  6595  8E  6AA7  LDEND   LDX     #MSLDED     0897  6598  17  0241          LBSR    PSTRNG      0898  659B  17  0189  LDE1    LBSR    CRLF        0899  659E  39            RTS           0900  659F  8E  6AB3  LDNEND  LDX     #MSNOFL     0901  65A2  17  0237          LBSR    PSTRNG      0902  65A5  20  F4          BRA     LDE1        0903        0904        *0905        *data to memory0906        *U:memory adr0907        0908  65A7      MEMSET  EQU     *           0909  65A7  34  30          PSHS    X,Y         0910  65A9  8E  6D00          LDX     #RWBUF      0911  65AC  B6  604D          LDA     MCFLG       0,1,$FF($FE)0912  65AF  27  07          BEQ     MS1         0913  65B1  2B  12          BMI     MS2         0914        *text file0915  65B3  CE  2000          LDU     #TXTADR     (else)0916  65B6  20  1B          BRA     MSLOP0      0917        *machine code0918  65B8      MS1            0919  65B8  10AE  01          LDY     1,X         get file size0920  65BB  10BF  6045          STY     FILSIZ      0921  65BF  EE  03          LDU     3,X         get store addr0922  65C1  30  05          LEAX    5,X         skip header0923  65C3  20  0E          BRA     MSLOP0      0924        *basic program(binary save)0925  65C5      MS2            0926  65C5  30  03          LEAX    3,X         skip 3 $FFs0927  65C7  10BE  6045          LDY     FILSIZ      0928  65CB  31  3D          LEAY    -3,Y        0929  65CD  10BF  6045          STY     FILSIZ      0930  65D1  DE  33          LDU     BASADRP     get text buffer adrs0931         0932  65D3  10BE  6045  MSLOP0  LDY     FILSIZ      0933  65D7  A6  80  MSLOP   LDA     ,X+         0934  65D9  A7  C0          STA     ,U+         0935  65DB  31  3F          LEAY    -1,Y        0936  65DD  27  05          BEQ     MS3         0937  65DF  8C  6F00          CMPX    #RWBUF+512    0938  65E2  25  F3          BLO     MSLOP       0939  65E4  10BF  6045  MS3     STY     FILSIZ      0940  65E8  35  B0          PULS    X,Y,PC      0941        0942        *--------------------0943        *(X)..(X+3)+10944  65EA      INCX4   EQU     *           0945  65EA  6C  03  ADX0    INC     3,X         0946  65EC  24  02          BCC     ADX1        0947  65EE  6C  02          INC     2,X         0948  65F0  24  02  ADX1    BCC     ADX2        0949  65F2  6C  01          INC     1,X         0950  65F4  24  02  ADX2    BCC     ADX3        0951  65F6  6C  84          INC     ,X          0952  65F8  39    ADX3    RTS           0953        *0954        *(X)..(X+3)+(B)x40h0955  65F9      ADD40H  EQU     *           0956  65F9  34  06          PSHS    A,B         0957  65FB  A6  03  ADD0    LDA     3,X         0958  65FD  8B  40          ADDA    #$40        0959  65FF  A7  03          STA     3,X         0960  6601  24  06          BCC     ADD1        0961  6603  A6  02          LDA     2,X         0962  6605  8B  01          ADDA    #1          0963  6607  A7  02          STA     2,X         0964  6609  24  06  ADD1    BCC     ADD2        0965  660B  A6  01          LDA     1,X         0966  660D  8B  01          ADDA    #1          0967  660F  A7  01          STA     1,X         0968  6611  24  06  ADD2    BCC     ADD3        0969  6613  A6  84          LDA     ,X          0970  6615  8B  01          ADDA    #1          0971  6617  A7  84          STA     ,X          0972  6619  5A    ADD3    DECB          0973  661A  26  DF          BNE     ADD0        0974  661C  35  86          PULS    A,B,PC      0975        0976        *0977        *------------------------------0978        *read 1 sct0979        *------------------------------0980  661E      RD1SCT  EQU     *           0981        *copy sct no to cmd param0982  661E  8E  6003          LDX     #SCTN0      0983  6621  108E  691F          LDY     #CMD17+1    0984  6625  C6  04          LDB     #4          0985  6627  A6  80  CPY1    LDA     ,X+         0986  6629  A7  A0          STA     ,Y+         0987  662B  5A            DECB          0988  662C  26  F9          BNE     CPY1        0989        *send cmd0990  662E  17  00BB          LBSR    SETCKL      0991  6631  C6  06          LDB     #6          0992  6633  8E  691E          LDX     #CMD17      0993  6636  A6  80  RD1     LDA     ,X+         0994  6638  8D  3D          BSR     SNDDAT      0995  663A  5A            DECB          0996  663B  26  F9          BNE     RD1         0997        *get response0998  663D      RD2           0999  663D  8D  54          BSR     GETDAT      1000  663F  B6  6007          LDA     RESDAT      1001  6642  81  FE          CMPA    #$FE        token?1002  6644  26  F7          BNE     RD2         1003        1004        *get data1005        * LBSR CRLF1006  6646  8E  6D00          LDX     #RWBUF      <-temp -1="" 0094="" 00b3="" 00cb="" 0200="" 02="" 06="" 08="" 1007="" 1008="" 1009="" 1010="" 1011="" 1012="" 1013="" 1014="" 1015="" 1016="" 1017="" 1018="" 1019="" 1020="" 1021="" 1022="" 1023="" 1024="" 1025="" 1026="" 1027="" 1028="" 1029="" 1030="" 1031="" 1032="" 1033="" 1034="" 1035="" 1036="" 1037="" 1038="" 1039="" 1040="" 1041="" 1042="" 1043="" 1044="" 1045="" 1046="" 1047="" 1048="" 1049="" 1050="" 1051="" 1052="" 1053="" 1054="" 1055="" 1056="" 1057="" 1058="" 1059="" 1060="" 1061="" 1062="" 1063="" 108e="" 12="" 17="" 20="" 26="" 27="" 31="" 34="" 35="" 39="" 3f="" 44="" 48="" 53="" 57="" 5a="" 6007="" 63="" 6649="" 664d="" 664f="" 6652="" 6654="" 6656="" 6658="" 6659="" 665c="" 665f="" 6663="" 6665="" 6667="" 666a="" 666c="" 666e="" 666f="" 6671="" 6674="" 6676="" 6677="" 6679="" 667c="" 667e="" 6680="" 6682="" 6684="" 6687="" 6689="" 668b="" 668c="" 668e="" 668f="" 6691="" 6693="" 6695="" 6697="" 6699="" 669a="" 669b="" 669c="" 669e="" 66a1="" 66a2="" 67="" 6d00="" 7f="" 80="" 84="" 86="" 8a="" 8d="" 8e="" a6="" a7="" a="" anda="" b1-="" b6="" b7="" beq="" bne="" bra="" bsr="" buf="" c6="" clr="" crlf="" cs:b0="L" data="" decb="" disp="" dspb1="" dspb2="" dspb3="" dspbin="" dspbuf="" ed="" equ="" f4="" f5="" fc="" fd9e="" get="" getd1="" getdat="" lbsr="" lda="" ldb="" ldx="" ldy="" leay="" lsla="" lsra="" miso:b1="H(for" nop="" ora="" pbdat="" pia="" pshs="" puls="" rd3="" resdat="" response="" rts="" save="" send="" setckh="" setckl="" sndd1="" snddat="" sta="" temp="">C1064  66A3  79  6007          ROL     RESDAT      C->b01065  66A6  5A            DECB          1066  66A7  26  EE          BNE     GETD1       1067  66A9  8D  41          BSR     SETCKL      1068  66AB  35  86          PULS    A,B,PC      1069        *1070        *------------------------------1071        *input SCT No1072  66AD      INSCT   EQU     *           1073  66AD  8E  69E6          LDX     #MSSCT      1074  66B0  17  0129          LBSR    PSTRNG      1075  66B3  8D  7D          BSR     GET8CH      get 8chr, convert 4bin1076         1077  66B5      SETSCT  EQU     *           1078  66B5  34  32          PSHS    A,X,Y       1079  66B7  7D  6008          TST     SDHC        1080  66BA  26  1E          BNE     CALCHC      1081        *SD card1082  66BC  C6  03          LDB     #3          1083  66BE  8E  6004          LDX     #SCTN1      1084  66C1  108E  6003          LDY     #SCTN0      1085  66C5  A6  80  SFT1    LDA     ,X+         1086  66C7  A7  A0          STA     ,Y+         1087  66C9  5A            DECB          1088  66CA  26  F9          BNE     SFT1        1089  66CC  7F  6006          CLR     SCTN3       1090        *calc top adrs of sct1091  66CF      CALCSD  EQU     *           1092  66CF  78  6006          LSL     SCTN3       1093  66D2  79  6005          ROL     SCTN2       1094  66D5  79  6004          ROL     SCTN1       1095  66D8  35  B2          PULS    A,X,Y,PC    1096        1097        *SDHC card1098        *calc top adrs of sct1099  66DA      CALCHC  EQU     *           1100  66DA  8E  6003          LDX     #SCTN0      1101  66DD  108E  691F          LDY     #CMD17+1    1102  66E1  C6  04          LDB     #4          1103  66E3  A6  80  CALCH1  LDA     ,X+         1104  66E5  A7  A0          STA     ,Y+         1105  66E7  5A            DECB          1106  66E8  26  F9          BNE     CALCH1      1107  66EA  35  B2          PULS    A,X,Y,PC    1108        1109        *1110        *set sck:L1111  66EC      SETCKL  EQU     *           1112  66EC  34  02          PSHS    A           1113  66EE  86  34          LDA     #$34        ca2=L1114  66F0  B7  FD9F          STA     PBCTL       1115  66F3  35  82          PULS    A,PC        1116        1117        *set sck:H1118  66F5      SETCKH  EQU     *           1119  66F5  34  02          PSHS    A           1120  66F7  86  3C          LDA     #$3C        ca2=H1121  66F9  B7  FD9F          STA     PBCTL       1122  66FC  35  82          PULS    A,PC        1123        1124        *binary(A)->ascii(A)(B)1125  66FE      DSPBIN  EQU     *           1126  66FE  34  06          PSHS    A,B         1127  6700  1F  89          TFR     A,B         1128  6702  44            LSRA          1129  6703  44            LSRA          1130  6704  44            LSRA          1131  6705  44            LSRA          1132  6706  8A  30          ORA     #$30        1133  6708  C4  0F          ANDB    #$0F        1134  670A  CA  30          ORB     #$30        1135  670C  81  39          CMPA    #$39        1136  670E  23  02          BLS     BI21        1137  6710  8B  07          ADDA    #$07        1138  6712  C1  39  BI21    CMPB    #$39        1139  6714  23  02          BLS     BI22        1140  6716  CB  07          ADDB    #$07        1141  6718  BD  FBBB  BI22    JSR     OUTCHA      1142  671B  1F  98          TFR     B,A         1143  671D  BD  FBBB          JSR     OUTCHA      1144  6720  86  20          LDA     #$20        1145  6722  BD  FBBB          JSR     OUTCHA      1146  6725  35  86          PULS    A,B,PC      1147        1148        *crlf1149  6727      CRLF    EQU     *           1150  6727  86  0D          LDA     #$0D        1151  6729  BD  FBBB          JSR     OUTCHA      1152  672C  86  0A          LDA     #$0A        1153  672E  BD  FBBB          JSR     OUTCHA      1154  6731  39            RTS           1155        1156        *1157  6732      GET8CH  EQU     *           1158        *input chr1159  6732  8E  6ADA          LDX     #INPBUF     1160  6735  5F            CLRB          1161  6736  BD  690B  CLOP    JSR     INOUTC      1162  6739  81  0D          CMPA    #$0D        1163  673B  27  07          BEQ     INEND       1164  673D  A7  85          STA     B,X         1165  673F  5C            INCB          1166  6740  C1  08          CMPB    #8          1167  6742  25  F2          BLO     CLOP        1168        1169  6744      INEND          1170        *shift1171  6744  5D            TSTB          1172  6745  27  11          BEQ     CL1         1173  6747  8E  6ADA          LDX     #INPBUF     1174  674A  3A            ABX           1175  674B  108E  6AE2          LDY     #INPBUF+8   1176  674F  34  04          PSHS    B           1177  6751  A6  82  SFLOP   LDA     ,-X         1178  6753  A7  A2          STA     ,-Y         1179  6755  5A            DECB          1180  6756  26  F9          BNE     SFLOP       1181        *clr1182  6758  C6  08  CL1     LDB     #8          1183  675A  E0  E0          SUBB    ,S+         1184  675C  27  0A          BEQ     CLEND       1185  675E  8E  6ADA          LDX     #INPBUF     1186  6761  86  30          LDA     #'0         1187  6763  A7  80  CLLOP   STA     ,X+         1188  6765  5A            DECB          1189  6766  26  FB          BNE     CLLOP       1190  6768      CLEND         1191        1192        *convert to bin1193  6768  C6  04          LDB     #4          1194  676A  8E  6ADA          LDX     #INPBUF     1195  676D  108E  6003          LDY     #SCTN0      1196  6771      CVT1          1197  6771  A6  80          LDA     ,X+         1198  6773  8D  1E          BSR     CVBIN       1199  6775  25  16          BCS     EREND1      1200  6777  48            LSLA          1201  6778  48            LSLA          1202  6779  48            LSLA          1203  677A  48            LSLA          1204  677B  34  02          PSHS    A           1205  677D  A6  80          LDA     ,X+         1206  677F  8D  12          BSR     CVBIN       1207  6781  25  08          BCS     EREND0      1208  6783  AB  E0          ADDA    ,S+         1209  6785  A7  A0          STA     ,Y+         1210  6787  5A            DECB          1211  6788  26  E7          BNE     CVT1        1212  678A  39            RTS           1213         1214  678B  35  02  EREND0  PULS    A           1215  678D  8E  6A47  EREND1  LDX     #MSERR      1216  6790  8D  4A          BSR     PSTRNG      1217  6792  39    EEND    RTS           1218        1219        *--------------------1220        *ascii -> bin1221  6793      CVBIN   EQU     *           1222  6793  80  30          SUBA    #'0         1223  6795  2B  11          BMI     CVERR       1224  6797  81  09          CMPA    #9          1225  6799  23  0A          BLS     CVBEND      1226  679B  81  11          CMPA    #$11        1227  679D  25  09          BLO     CVERR       1228  679F  81  16          CMPA    #$16        1229  67A1  22  05          BHI     CVERR       1230  67A3  80  07          SUBA    #7          1231  67A5      CVBEND        1232  67A5  1C  FE          ANDCC   #$FE        reset C1233  67A7  39            RTS           1234  67A8  1A  01  CVERR   ORCC    #$01        set C1235  67AA  39            RTS           1236        1237        *--------------------1238        *add 2bytes to 4bytes1239        * X,X+1,X+2,X+3 + Y,Y+11240        * data X is big endian1241        * data Y is little endian1242  67AB      ADD42   EQU     *           1243  67AB  34  36          PSHS    A,B,X,Y     1244  67AD  32  7C          LEAS    -4,S        1245  67AF  C6  04          LDB     #4          1246  67B1  A6  80  AD1     LDA     ,X+         1247  67B3  A7  E0          STA     ,S+         1248  67B5  5A            DECB          1249  67B6  26  F9          BNE     AD1         1250         1251        *add (lower)1252  67B8  A6  A0          LDA     ,Y+         1253  67BA  AB  E2          ADDA    ,-S         1254  67BC  A7  E4          STA     ,S          1255  67BE  24  02          BCC     AD2         1256  67C0  6C  7F          INC     -1,S        1257        *add (upper)1258  67C2  A6  A4  AD2     LDA     ,Y          1259  67C4  AB  E2          ADDA    ,-S         1260  67C6  A7  E4          STA     ,S          1261  67C8  24  02          BCC     AD3         1262  67CA  6C  7F          INC     -1,S        1263  67CC  30  1C  AD3     LEAX    -4,X        1264  67CE  32  7E          LEAS    -2,S        1265  67D0  C6  04          LDB     #4          1266  67D2  A6  E0  AD4     LDA     ,S+         1267  67D4  A7  80          STA     ,X+         1268  67D6  5A            DECB          1269  67D7  26  F9          BNE     AD4         1270  67D9  35  36          PULS    A,B,X,Y     1271  67DB  39            RTS           1272        1273        *--------------------1274        * pstring1275  67DC      PSTRNG  EQU     *           1276  67DC  34  02          PSHS    A           1277  67DE  A6  80  PSLOP   LDA     ,X+         1278  67E0  81  04          CMPA    #4          1279  67E2  27  05          BEQ     PSEND       1280  67E4  BD  FBBB          JSR     OUTCHA      1281  67E7  20  F5          BRA     PSLOP       1282  67E9  35  02  PSEND   PULS    A           1283  67EB  39            RTS           1284        1285        *--------------------1286        *disp MM-DD-YY1287        *indata A(Low),B(High)1288  67EC      DSPYMD  EQU     *           1289  67EC  1E  89          EXG     A,B         1290  67EE  34  10          PSHS    X           1291  67F0  34  06          PSHS    A,B         1292  67F2  C4  E0          ANDB    #$E0        1293  67F4  54            LSRB          1294  67F5  54            LSRB          1295  67F6  54            LSRB          1296  67F7  54            LSRB          1297  67F8  54            LSRB          1298  67F9  47            ASRA          1299  67FA  24  02          BCC     DYMD1       1300  67FC  CB  08          ADDB    #8          1301  67FE  F7  603E  DYMD1   STB     WMDY        MM1302  6801  35  06          PULS    A,B         1303  6803  34  04          PSHS    B           1304  6805  C4  1F          ANDB    #$1F        1305  6807  F7  603F          STB     WMDY+1      DD1306  680A  35  04          PULS    B           1307         1308  680C  44            LSRA          1309        * ASLB1310        * BCC DYMD21311        * INCA1312  680D      DYMD2         1313  680D  80  14          SUBA    #20         A+1980-20001314  680F  B7  6040          STA     WMDY+2      YY1315         1316        *disp MM-DD-YY1317  6812  86  20          LDA     #'          1318  6814  BD  FBBB          JSR     OUTCHA      1319  6817  8E  603E          LDX     #WMDY       1320  681A  A6  80          LDA     ,X+         1321  681C  8D  14          BSR     DB2ASC      MM1322  681E  86  2D          LDA     #'-         1323  6820  BD  FBBB          JSR     OUTCHA      1324  6823  A6  80          LDA     ,X+         1325  6825  8D  0B          BSR     DB2ASC      DD1326  6827  86  2D          LDA     #'-         1327  6829  BD  FBBB          JSR     OUTCHA      1328  682C  A6  80          LDA     ,X+         1329  682E  8D  02          BSR     DB2ASC      YY1330  6830  35  90          PULS    X,PC        1331        *1332        *----------1333        *(A:BIN)->ASCII1334  6832      DB2ASC  EQU     *           1335  6832  34  06          PSHS    A,B         1336  6834  1F  89          TFR     A,B         1337  6836  86  30          LDA     #$30        1338  6838  C1  0A  DBLOP   CMPB    #10         1339  683A  25  05          BLO     DB2         1340  683C  C0  0A          SUBB    #10         1341  683E  4C            INCA          1342  683F  20  F7          BRA     DBLOP       1343  6841  BD  FBBB  DB2     JSR     OUTCHA      1344  6844  1F  98          TFR     B,A         1345  6846  8B  30          ADDA    #$30        1346  6848  BD  FBBB          JSR     OUTCHA      1347  684B  35  86          PULS    A,B,PC      1348        1349        *disp FILE size1350  684D      DSPSIZ  EQU     *           1351  684D  34  10          PSHS    X           1352  684F  BE  6041          LDX     WFSIZ       1353  6852  27  16          BEQ     DSS1        if 64k over?1354  6854  86  3E          LDA     #'>        1355  6856  BD  FBBB          JSR     OUTCHA      1356  6859  86  36          LDA     #'6         1357  685B  BD  FBBB          JSR     OUTCHA      1358  685E  86  34          LDA     #'4         1359  6860  BD  FBBB          JSR     OUTCHA      1360  6863  86  6B          LDA     #'k         1361  6865  BD  FBBB          JSR     OUTCHA      1362  6868  20  3B          BRA     DSEND       1363  686A  86  20  DSS1    LDA     #'          1364  686C  BD  FBBB          JSR     OUTCHA      1365  686F  B6  6043          LDA     WFSIZ+2     under 64k1366        *disp dec1367  6872  81  64          CMPA    #100        1368  6874  23  12          BLS     DSS13       1369  6876  1F  89          TFR     A,B         1370  6878  86  30          LDA     #$30        1371  687A  C1  64  DSLOP1  CMPB    #100        1372  687C  25  05          BLO     DSS12       1373  687E  C0  64          SUBB    #100        1374  6880  4C            INCA          1375  6881  20  F7          BRA     DSLOP1      1376  6883  BD  FBBB  DSS12   JSR     OUTCHA      1377  6886  20  05          BRA     DSS14       1378        *under 1001379  6888  86  20  DSS13   LDA     #'          1380  688A  BD  FBBB          JSR     OUTCHA      1381  688D  86  30  DSS14   LDA     #$30        1382  688F  C1  0A  DSLOP2  CMPB    #10         1383  6891  25  05          BLO     DSS2        1384  6893  C0  0A          SUBB    #10         1385  6895  4C            INCA          1386  6896  20  F7          BRA     DSLOP2      1387  6898  81  30  DSS2    CMPA    #$30        1388  689A  26  01          BNE     DSS3        1389  689C  4C            INCA          1390  689D  BD  FBBB  DSS3    JSR     OUTCHA      1391  68A0  86  6B          LDA     #'k         1392  68A2  BD  FBBB          JSR     OUTCHA      1393  68A5  86  20  DSEND   LDA     #'          1394  68A7  BD  FBBB          JSR     OUTCHA      1395  68AA  35  90          PULS    X,PC        1396        1397        *----------1398  68AC      DSPCLS  EQU     *           1399  68AC  34  10          PSHS    X           1400  68AE  86  20          LDA     #'          1401  68B0  BD  FBBB          JSR     OUTCHA      1402  68B3  8E  6047          LDX     #CLSTH      1403  68B6  C6  02          LDB     #2          1404  68B8  A6  80  DCLOP1  LDA     ,X+         1405  68BA  17  FF75          LBSR    DB2ASC      1406  68BD  5A            DECB          1407  68BE  26  F8          BNE     DCLOP1      1408  68C0  86  20          LDA     #'          1409  68C2  BD  FBBB          JSR     OUTCHA      1410  68C5  C6  02          LDB     #2          1411  68C7  A6  80  DCLOP2  LDA     ,X+         1412  68C9  17  FF66          LBSR    DB2ASC      1413  68CC  5A            DECB          1414  68CD  26  F8          BNE     DCLOP2      1415  68CF  35  90          PULS    X,PC        1416        1417        *----------1418        *X:top of FILE NAME1419        *return C=1:match,C=0:not match1420  68D1      CMPFN   EQU     *           1421  68D1  34  10          PSHS    X           1422  68D3  108E  604F          LDY     #FNAME      1423  68D7  C6  08          LDB     #8          1424  68D9  A6  80  CMPLOP  LDA     ,X+         1425  68DB  81  E5          CMPA    #$E5        delete mark?1426  68DD  27  0F          BEQ     NOTM        1427  68DF  81  20          CMPA    #'          1428  68E1  27  07          BEQ     MATCH       1429  68E3  A1  A0          CMPA    ,Y+         1430  68E5  26  07          BNE     NOTM        1431  68E7  5A            DECB          1432  68E8  26  EF          BNE     CMPLOP      1433  68EA  1A  01  MATCH   ORCC    #$01        C=11434  68EC  20  02          BRA     CMPEND      1435  68EE  1C  FE  NOTM    ANDCC   #$FE        C=01436  68F0  35  90  CMPEND  PULS    X,PC        1437        1438        *----------1439  68F2      FNMIN   EQU     *           1440        *clr buf1441  68F2  8E  605A          LDX     #FNAME+11   1442  68F5  C6  0B          LDB     #8+3        1443  68F7  86  20          LDA     #'          1444  68F9  A7  82  FNIN0   STA     ,-X         1445  68FB  5A            DECB          1446  68FC  26  FB          BNE     FNIN0       1447        *fname in1448  68FE  BD  690B  FNIN1   JSR     INOUTC      1449  6901  A7  80          STA     ,X+         1450  6903  81  0D          CMPA    #$0D        1451  6905  27  03          BEQ     FNIEND      1452  6907  5A            DECB          1453  6908  26  F4          BNE     FNIN1       1454  690A  39    FNIEND  RTS           1455        1456  690B  BD  FBB8  INOUTC  JSR     INCHA       1457  690E  BD  FBBB          JSR     OUTCHA      1458  6911  39            RTS           1459        1460        **************************************************1461        *========== parameter ==========1462  6912  40    CMD0    FCB     $40,$00,$00,$00,$00,$95 '@    1463  6918  41    CMD1    FCB     $41,$00,$00,$00,$00,$FF 'A    1464  691E  51    CMD17   FCB     $51,$00,$00,$00,$00,$FF 'Q    1465  6924  58    CMD24   FCB     $58,$00,$00,$00,$00,$FF 'X    1466  692A  48    CMD8    FCB     $48,$00,$00,$01,$AA,$87 'H    1467  6930  7A    CMD58   FCB     $7A,$00,$00,$00,$00,$FF 'z    1468  6936  77    CMD55   FCB     $77,$00,$00,$00,$00,$FF 'w    1469  693C  69    ACMD41  FCB     $69,$40,$FF,$80,$00,$FF 'i    1470  6942  49    CMD9    FCB     $49,$00,$00,$00,$00,$FF 'I    1471        *1472  6948  43      MCMD0   FCC     /CMD0/,$D,$A    1473  694E  04            FCB     4           1474  694F  43      MCMD8   FCC     /CMD8/,$D,$A    1475  6955  04            FCB     4           1476  6956  43      MCMD58  FCC     /CMD58/,$D,$A   1477  695D  04            FCB     4           1478  695E  43      MCMD55  FCC     /CMD55/,$D,$A   1479  6965  04            FCB     4           1480  6966  41      MCMD41  FCC     /ACMD41/,$D,$A    1481  696E  04            FCB     4           1482  696F  43      MCMD9   FCC     /CMD9/,$D,$A    1483  6975  04            FCB     4           1484        *1485  6976  0D      MSMENU1 FCC     $0D,$0A,/1:Read Sct, 2:Get SD data, 3:SD Init, 4:Disp MBR, 5:Disp BPB,/   1486  69B5  04            FCB     4           1487  69B6  0D      MSMENU2 FCC     $0D,$0A,/6:Disp FAT, 7:Disp DIR, 8:Load FILE, 0:End : /   1488  69E5  04            FCB     4           1489  69E6  53      MSSCT   FCC     /SctNo: /   1490  69ED  04            FCB     4           1491  69EE  57      MSWROK  FCC     /Write OK?: /   1492  69F9  04            FCB     4           1493  69FA  0D      MSSD0   FCC     $0D,$0A,/SD Card/,$0D,$0A   1494  6A05  04            FCB     4           1495  6A06  0D      MSSD1   FCC     $0D,$0A,/SDHC Card/,$0D,$0A   1496  6A13  04            FCB     4           1497  6A14  0D      MSINIT  FCC     $0D,$0A,$0D,$0A,/SD Card initializing.../   1498  6A2F  04            FCB     4           1499  6A30  53      MERR    FCC     /SD Initialize error!/,$0D,$0A    1500  6A46  04            FCB     4           1501  6A47  49      MSERR   FCC     /Input error!/,$0D,$0A    1502  6A55  04            FCB     4           1503  6A56  0D      MSOFS   FCC     $0D,$0A,/Sector no is:/   1504  6A65  04            FCB     4           1505  6A66  0D      MSBPB   FCC     $0D,$0A,/ BPB: /    1506  6A6E  04            FCB     4           1507  6A6F  0D      MSFAT   FCC     $0D,$0A,/ FAT: /    1508  6A77  04            FCB     4           1509  6A78  0D      MSDIR   FCC     $0D,$0A,/ DIR: /    1510  6A80  04            FCB     4           1511  6A81  0D      MSCL2   FCC     $0D,$0A,/ 1stCLUSTER: /   1512  6A90  04            FCB     4           1513  6A91  0D      MSINFN  FCC     $0D,$0A,$0D,$0A,/Input File Name: /   1514  6AA6  04            FCB     4           1515  6AA7  0D      MSLDED  FCC     $0D,$0A,/ Load end/   1516  6AB2  04            FCB     4           1517  6AB3  0D      MSNOFL  FCC     $0D,$0A,/ Not exist!/   1518  6AC0  04            FCB     4           1519  6AC1  0D      MSNXTP  FCC     $0D,$0A,"Next page (SPC/else): "    1520  6AD9  04            FCB     4           1521        1522        **************************************************1523  6ADA  FF    INPBUF  RMB     8           1524        1525          END     START        0 error(s),  0 warning(s) is detected. Label addressACMD41  693C  AD1     67B1  AD2     67C2  AD3     67CC  AD4     67D2ADD0    65FB  ADD1    6609  ADD2    6611  ADD3    6619  ADD40H  65F9ADD42   67AB  ADX0    65EA  ADX1    65F0  ADX2    65F4  ADX3    65F8ASC411  6195  ASCMD41 6188  BASADRP 0033  BI21    6712  BI22    6718CALCH1  66E3  CALCHC  66DA  CALCSD  66CF  CL1     6758  CLEND   6768CLLOP   6763  CLOP    6736  CLSTH   6047  CLSTL   6049  CMD0    6912CMD1    6918  CMD17   691E  CMD24   6924  CMD55   6936  CMD58   6930CMD8    692A  CMD9    6942  CMPEND  68F0  CMPFN   68D1  CMPLOP  68D9CNT     604B  CNTSV   604C  CPY1    6627  CRLF    6727  CSRON   FBF7CVBEND  67A5  CVBIN   6793  CVERR   67A8  CVT1    6771  DB2     6841DB2ASC  6832  DBLOP   6838  DCLOP1  68B8  DCLOP2  68C7  DCPY    64D1DIRENT  601E  DPGFLG  604E  DRET0   63B6  DRET1   647B  DSEND   68A5DSKP1   63D6  DSLOP1  687A  DSLOP2  688F  DSPB1   6663  DSPB2   6665DSPB3   6676  DSPBIN  66FE  DSPBPB  6386  DSPBUF  6659  DSPC1   6432DSPCKE  63EA  DSPCLS  68AC  DSPDIR  63AA  DSPEND  646B  DSPFAT  6398DSPFL0  63BD  DSPFL1  63D6  DSPFL2  63F4  DSPFL3  63F6  DSPFL4  6405DSPFL5  6452  DSPMBR  632C  DSPSIZ  684D  DSPYMD  67EC  DSS1    686ADSS12   6883  DSS13   6888  DSS14   688D  DSS2    6898  DSS3    689DDYMD1   67FE  DYMD2   680D  EEND    6792  EREND0  678B  EREND1  678DFILSIZ  6045  FNAME   604F  FNIEND  690A  FNIN0   68F9  FNIN1   68FEFNMIN   68F2  GET1    6337  GET2    6339  GET8CH  6732  GETBPB  636DGETD1   6697  GETDAT  6693  GETMBR  634A  GETSD   628B  GPLOP   6350GPLOP2  6378  GR00    6100  GR2580  61C2  GR2581  61D9  GR2582  61DBGR410   619D  GR550   617E  GR580   6154  GR581   615E  GR582   6160GR80    6124  GR81    6136  GR90    629E  GR91    62AD  ILOP1   61FEILOP2   6211  ILOP3   622B  ILOP4   6269  INCHA   FBB8  INCX4   65EAINEND   6744  INIT    607E  INOUTC  690B  INPBUF  6ADA  INSCT   66ADISTT    60E6  LD1     64B3  LD2     64CB  LD3     64F6  LD4     6501LD41    651F  LD5     6538  LD6     653E  LD7     6549  LD8     657ELD9     6586  LDE1    659B  LDEND   6595  LDFILE  646F  LDFL0   648BLDFL1   649F  LDFL5   64C0  LDNEND  659F  MAIN    605A  MATCH   68EAMCFLG   604D  MCMD0   6948  MCMD41  6966  MCMD55  695E  MCMD58  6956MCMD8   694F  MCMD9   696F  MEMSET  65A7  MEN1    609A  MEN2    60A2MEN3    60AA  MEN4    60B1  MEN5    60B9  MEN6    60C1  MEN7    60C9MEN8    60D1  MENU    6080  MERR    6A30  MS1     65B8  MS2     65C5MS3     65E4  MSBPB   6A66  MSCL2   6A81  MSDIR   6A78  MSERR   6A47MSFAT   6A6F  MSINFN  6A91  MSINIT  6A14  MSLDED  6AA7  MSLOP   65D7MSLOP0  65D3  MSMENU1 6976  MSMENU2 69B6  MSNOFL  6AB3  MSNXTP  6AC1MSOFS   6A56  MSSCT   69E6  MSSD0   69FA  MSSD1   6A06  MSWROK  69EENOTM    68EE  OKEND   6318  OUTCHA  FBBB  PBCTL   FD9F  PBDAT   FD9EPSEND   67E9  PSLOP   67DE  PSTRNG  67DC  RD1     6636  RD1SCT  661ERD2     663D  RD3     664D  RESDAT  6007  RPT41   6169  RWBUF   6D00SC01    60F7  SC2581  61BA  SC551   6176  SC581   614C  SC80    611CSC91    6296  SCLOP1  62CD  SCLOP2  62E0  SCLOP3  62F3  SCLOP4  6306SCMD0   60EF  SCMD258 61AD  SCMD55  6169  SCMD58  613F  SCMD8   610FSCPY1   6251  SCTBPB  6009  SCTCLT  6019  SCTDIR  6011  SCTDSV  6015SCTFAT  600D  SCTN0   6003  SCTN1   6004  SCTN2   6005  SCTN3   6006SCTPCL  601D  SD1     61EF  SDERR   6312  SDHC    6008  SDINIT  60D9SDRD    6319  SELOP   6362  SETCKH  66F5  SETCKL  66EC  SETSCT  66B5SETSNO  635C  SFLOP   6751  SFT1    66C5  SKP1    623D  SKP2    6282SNDD1   667E  SNDDAT  6677  START   6000  STTADR  6000  TXTADR  2000VN      6002  WFSIZ   6041  WK1     6058  WMDY    603E    <!---temp--><!------><!------><!------><!------>
SDHC9FM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525


前々回の報告「FM-7にRTCとSDを接続する試み(RTC編)(2023年3月9日)」で回路図も公開してありますが、FM-7に6821PIAを1個追加するだけでRTCやSDカードが使用できるのはそれなりにお値打ち(!)なのではないでしょうか。



2023年3月16日木曜日

FM-7にRTCとSDを接続する試み(SDカード編 その1)

ようやくSDカード(SDHCカードも)のセクタの読み書きができました

まだ完成途上なのですが、一応、必要なセクタを読み書きできるようになりました。

任意のセクタの読み書きに加えて、MBR(マスタブートレコード)、BPB(ブートパラメータブロック)、FAT(ファイルアロケーションテーブル)、DIR(ディレクトリ)と指定したファイルの最初のセクタを読むことができます。もちろん、SDカードのみでなくSDHCカードもOKです。


まずはFM-7との接続の様子です。前回の報告ではFM-7本体に装着していましたが、今回は拡張基板上に装着しています。後ろにFDCカードとFT245カードが並んでおり、50Pフラットケーブルで本体の拡張コネクタに接続しています。


設置状態


SDカードでの起動画面です。
SDカードの初期化とカード種別の判別の終了後にメニューが表示されます。



SDカードの起動画面


SDHCカードでの起動画面です。


SDHCカードの起動画面


メニュー項目は
1.指定したセクタのリード
2.指定したセクタのライト
3.SDカードのデータ取得・表示
4.SDカードの初期化
5.MBR(Master Boot Record)内容の表示
6.BPB(Boot Parameter Block)内容の表示
7.FAT(File Allocation Table)内容の表示
8.DIR(Directory)内容の表示...(先頭セクタのみです)
9.ファイル内容の表示...(先頭セクタのみです)
です。

メニュー実行の例として、DIR内容を表示させてみます。
ファイル名、サイズ、作成日、クラスタ上位、クラスタ下位を表示させています。
先頭の番号は、9.ファイル内容の表示で使用します。



SDカードのディレクトリ表示


メニュー9です。
ファイル番号を入力するとそのファイルの内容が表示されます。(現在はテストプログラムですので、先頭セクタのみの表示です。)
この画面はSDHCカードの場合で、3行目のような意味不明の表示がありますが、これは4行目のファイル名中に小文字が使用されているためです。(拡張子が.Lstでした)
ということで、FAT32も使用できますが、ファイル名に小文字は使用できないという制限があります。


ファイル番号入力待ち


FM-7では一行が80文字までという制限があるために1セクタのデータの512バイトがうまく一画面に収まらないので、表示結果の画像はありません。代わりに、開発に使用しているFLEX9上での画面を示します。



FLEX9での動作の様子



以上、現在実現できていることのうち、読み込み機能について紹介しました。
ファイル名に小文字が使えませんし、もちろんフォルダも使用できませんが、目的がFM-7への実装ですので、どちらも問題にはなりません。
問題は、WindowsPC等でSDカードに保存したテキスト等のデータをFM-7で読み出せたとして、それをFM-7のシステムでどのようにして利用するかです。
最も簡単な方法としては、読み込んだデータをメモリ上に展開しておいてF-BASICからそれを読み込んでファイル化するという方法が考えられます。小さなデータならこれでも間に合いそうですが...

SDカードをドライブ2に割り付けることができて、FILES, LOAD, SAVEなどが使用できればベストなのですが、実現するにはなかなか敷居が高そうです...
また、プログラムサイズも結構大きくなりそうですので、どう組み込むかも課題です。

まだまだ完成には遠いですが、今回作成したサブルーチン等をベースにして仕上げていくことになると思いますので、雑な作りのものですが、作成したプログラムを紹介しておきます。


  1. 0001        *0002        *  SDHC8FM.TXT0003        *0004        *  SD Read/Write on SBC for FM-70005        *0006        *    use RTC & SD Card0007        *0008        *    6821(PIA) Port A ---- RTC (I2C Mode)0009        *0010        *        SBC      RTC                    Ext IO0011        *    CA2  2  ---       ---  HV4 LV4 ---  IO10012        *    PA0  3  ---  SCL  ---  HV1 LV1 ---  IO40013        *    PA1  4  ---       ---  HV2 LV2 ---  IO30014        *    PA7 10  ---  SDA  ---  HV3 LV3 ---  IO20015        *    GND     --        --           --   GND0016        *            --        --           --   3V30017        *0018        *0019        *    6821(PIA) Port B ---- SD (SPI Mode)0020        *0021        *        SBC                   SD0022        *    CB2 12  ---  HV4 LV4 ---  SCK0023        *    PB0 13  ---  HV1 LV1 ---  CS0024        *    PB1 14  ---  HV2 LV2 ---  MISO0025        *    PB7 20  ---  HV3 LV3 ---  MOSI0026        *    GND 31  --           --   GND0027        *    VCC 33  --           --   VCC0028        *0029        *    cf. all data line use level converter0030        *0031        *    PB  output mode0032        *    CB2 1bit output0033        *0034        *    READ/WRITE BUFFER  $6E00 - 6FFF0035        *0036        *    Add command        '2023.03.140037        *    Change use Port B  '2023.03.070038        *    Original version   '2022.06.110039        *         Copyright by Y.Yamamoto0040        *0041  6000      STTADR  EQU     $6000       0042  FBB8      INCHA   EQU     $FBB8       0043  FBBB      OUTCHA  EQU     $FBBB       0044        0045  6E00      RWBUF   EQU     STTADR+$E00   0046        0047  FD9E      PBDAT   EQU     $FD9E       0048  FD9F      PBCTL   EQU     PBDAT+1     0049        0050  6000              ORG     STTADR      0051        0052  6000  20  27  START   BRA     MAIN        0053  6002  01    VN      FCB     1           0054  6003  00    SCTN0   FCB     0           top adrs of sct0055  6004  00    SCTN1   FCB     0           0056  6005  00    SCTN2   FCB     0           0057  6006  00    SCTN3   FCB     0           0058  6007  00    RESDAT  FCB     0           response data0059  6008  00    SDHC    FCB     0           sd:0,sdhc:10060        0061  6009  0000    SCTBPB  FDB     00          sct no of BPB(4bytes)0062  600B  0000            FDB     00          0063  600D  0000    SCTFAT  FDB     00          sct no of FAT#1(4bytes)0064  600F  0000            FDB     00          0065  6011  0000    SCTDIR  FDB     00          sct no of DIR(4bytes)0066  6013  0000            FDB     00          0067  6015  0000    SCTCLT  FDB     00          sct no of top CLUSTER(4bytes)0068  6017  0000            FDB     00          if SD:#2, SDHC:#30069  6019  00    SCTPCL  FCB     0           sct per cluster0070  601A  FF    WMDY    RMB     3           0071  601D  FF    WFSIZ   RMB     4           0072  6021  0000    CLSTH   FDB     00          0073  6023  0000    CLSTL   FDB     00          0074  6025  0000    WK1     FDB     00          0075  6027  0000    WK2     FDB     00          0076        0077  6029      MAIN    EQU     *           0078        *=====reset pia=====0079        *portB:output0080  6029  86  30          LDA     #$30        0081  602B  B7  FD9F          STA     PBCTL       select ddra, cb2:00082  602E  86  FD          LDA     #$FD        pb0,7:out,pb1:in0083  6030  B7  FD9E          STA     PBDAT       set output mode0084  6033  86  34          LDA     #$34        0085  6035  B7  FD9F          STA     PBCTL       select peripheral,cb2:00086         0087        *for pia exist check0088  6038  86  55          LDA     #$55        test data0089  603A  B7  FD9E          STA     PBDAT       0090  603D  B6  FD9E          LDA     PBDAT       0091  6040  84  FD          ANDA    #$FD        pb1=00092  6042  81  55          CMPA    #$55        0093  6044  27  07          BEQ     INIT        0094  6046  8E  68DF          LDX     #MERR       0095  6049  17  067B          LBSR    PSTRNG      0096  604C  39            RTS           return FM-70097        0098  604D      INIT    EQU     *           0099  604D  8D  5E          BSR     SDINIT      0100        0101        ****************************************0102        * MAIN MENU0103        ****************************************0104  604F      MENU    EQU     *           0105  604F  8E  6817          LDX     #MSMENU1    0106  6052  17  0672          LBSR    PSTRNG      0107  6055  8E  6859          LDX     #MSMENU2    0108  6058  17  066C          LBSR    PSTRNG      0109        0110  605B  BD  FBB8          JSR     INCHA       0111  605E  80  30          SUBA    #$30        0112  6060  26  04          BNE     MEN1        0?0113  6062  BD  6612          JSR     CRLF        0114  6065  39            RTS           return FM-70115  6066  4A    MEN1    DECA          0116  6067  26  05          BNE     MEN2        1?0117  6069  17  0271          LBSR    SDRD        0118  606C  20  E1          BRA     MENU        0119  606E  4A    MEN2    DECA          0120  606F  26  05          BNE     MEN3        2?0121  6071  17  0416          LBSR    SDWRT       0122  6074  20  D9          BRA     MENU        0123  6076  4A    MEN3    DECA          0124  6077  26  05          BNE     MEN4        3?0125  6079  17  01D3          LBSR    GETSD       0126  607C  20  D1          BRA     MENU        0127  607E  4A    MEN4    DECA          0128  607F  26  04          BNE     MEN5        4?0129  6081  8D  2A          BSR     SDINIT      0130  6083  20  CA          BRA     MENU        0131  6085  4A    MEN5    DECA          5?0132  6086  26  05          BNE     MEN6        0133  6088  17  0265          LBSR    DSPMBR      0134  608B  20  C2          BRA     MENU        0135  608D  4A    MEN6    DECA          6?0136  608E  26  05          BNE     MEN7        0137  6090  17  02B7          LBSR    DSPBPB      0138  6093  20  BA          BRA     MENU        0139  6095  4A    MEN7    DECA          7?0140  6096  26  05          BNE     MEN8        0141  6098  17  02C1          LBSR    DSPFAT      0142  609B  20  B2          BRA     MENU        0143  609D  4A    MEN8    DECA          8?0144  609E  26  05          BNE     MEN9        0145  60A0  17  02CB          LBSR    DSPDIR      0146  60A3  20  AA          BRA     MENU        0147  60A5  4A    MEN9    DECA          9?0148  60A6  26  A7          BNE     MENU        0149  60A8  17  0349          LBSR    LDFILE      0150  60AB  20  A2          BRA     MENU        0151        *0152        ****************************************0153        * SD Initialize routine0154        ****************************************0155  60AD      SDINIT  EQU     *           0156        *---------- start ----------0157  60AD  8E  68C3          LDX     #MSINIT     0158  60B0  BD  66C7          JSR     PSTRNG      0159        * cs:1,di:1,sck-74ms0160  60B3  86  FF          LDA     #$FF        mosi:b7=H,miso:b1=H(for PIA),cs:b0=H0161  60B5  B7  FD9E          STA     PBDAT       0162  60B8  C6  50          LDB     #80         80times0163  60BA  17  051A  ISTT    LBSR    SETCKL      0164  60BD  17  0520          LBSR    SETCKH      0165  60C0  5A            DECB          0166  60C1  26  F7          BNE     ISTT        0167        *0168        *---------- cmd 0 ----------0169  60C3      SCMD0   EQU     *           0170        * LDX #MCMD00171        * LBSR PSTRNG0172         0173  60C3  17  0511          LBSR    SETCKL      0174  60C6  C6  06          LDB     #6          0175  60C8  8E  67B3          LDX     #CMD0       0176  60CB  A6  80  SC01    LDA     ,X+         0177  60CD  17  0496          LBSR    SNDDAT      0178  60D0  5A            DECB          0179  60D1  26  F8          BNE     SC01        0180        *get response0181  60D3  5F            CLRB          0182  60D4      GR00          0183  60D4  5A            DECB          0184  60D5  1027  01FD          LBEQ    SDERR       0185  60D9  17  04A6          LBSR    GETDAT      0186  60DC  B6  6007          LDA     RESDAT      0187        * LBSR DSPBIN disp response0188  60DF  81  01          CMPA    #$01        0189  60E1  26  F1          BNE     GR00        0190        * JSR CRLF0191        *0192        *---------- cmd 8 ----------0193  60E3      SCMD8   EQU     *           0194        * LDX #MCMD80195        * LBSR PSTRNG0196         0197  60E3  17  04F1          LBSR    SETCKL      0198  60E6  86  FF          LDA     #$FF        dummy cmd0199  60E8  17  047B          LBSR    SNDDAT      0200  60EB  C6  06          LDB     #6          0201  60ED  8E  67CB          LDX     #CMD8       0202  60F0  A6  80  SC80    LDA     ,X+         0203  60F2  17  0471          LBSR    SNDDAT      0204  60F5  5A            DECB          0205  60F6  26  F8          BNE     SC80        0206        *get response0207  60F8      GR80          0208  60F8  17  0487          LBSR    GETDAT      0209  60FB  B6  6007          LDA     RESDAT      0210         0211  60FE  17  0481          LBSR    GETDAT      0212  6101  B6  6007          LDA     RESDAT      0213        * LBSR DSPBIN disp response0214  6104  81  01          CMPA    #$01        0215  6106  26  F0          BNE     GR80        0216  6108  C6  04          LDB     #4          0217  610A  17  0475  GR81    LBSR    GETDAT      0218  610D  B6  6007          LDA     RESDAT      0219        * LBSR DSPBIN disp response0220  6110  5A            DECB          0221  6111  26  F7          BNE     GR81        0222        * JSR CRLF0223        *0224        *---------- cmd 58 ----------0225  6113      SCMD58  EQU     *           0226        * LDX #MCMD580227        * LBSR PSTRNG0228         0229  6113  17  04C1          LBSR    SETCKL      0230  6116  86  FF          LDA     #$FF        dummy cmd0231  6118  17  044B          LBSR    SNDDAT      0232  611B  C6  06          LDB     #6          0233  611D  8E  67D1          LDX     #CMD58      0234  6120  A6  80  SC581   LDA     ,X+         0235  6122  17  0441          LBSR    SNDDAT      0236  6125  5A            DECB          0237  6126  26  F8          BNE     SC581       0238        *get response0239  6128      GR580         0240  6128  17  0457          LBSR    GETDAT      0241  612B  B6  6007          LDA     RESDAT      0242        * LBSR DSPBIN disp response0243  612E  81  01          CMPA    #$01        0244  6130  26  F6          BNE     GR580       0245  6132  C6  04  GR581   LDB     #4          0246  6134  17  044B  GR582   LBSR    GETDAT      0247  6137  B6  6007          LDA     RESDAT      0248        * LBSR DSPBIN disp response0249  613A  5A            DECB          0250  613B  26  F7          BNE     GR582       0251  613D      RPT41   EQU     *           0252        *---------- cmd 55 ----------0253  613D      SCMD55  EQU     *           0254        * LDX #MCMD550255        * LBSR PSTRNG0256         0257  613D  17  0497          LBSR    SETCKL      0258  6140  86  FF          LDA     #$FF        dummy cmd0259  6142  17  0421          LBSR    SNDDAT      0260  6145  C6  06          LDB     #6          0261  6147  8E  67D7          LDX     #CMD55      0262  614A  A6  80  SC551   LDA     ,X+         0263  614C  17  0417          LBSR    SNDDAT      0264  614F  5A            DECB          0265  6150  26  F8          BNE     SC551       0266        *get response0267        * CLRB0268  6152      GR550         0269        * DECB0270        * BEQ SDERR0271  6152  17  042D          LBSR    GETDAT      0272  6155  B6  6007          LDA     RESDAT      0273        * LBSR DSPBIN disp response0274  6158  81  01          CMPA    #$01        0275  615A  26  F6          BNE     GR550       0276         0277        * JSR CRLF0278        *---------- acmd 41 ----------0279  615C      ASCMD41 EQU     *           0280        * LDX #MCMD410281        * LBSR PSTRNG0282         0283  615C  17  0478          LBSR    SETCKL      0284  615F  86  FF          LDA     #$FF        dummy cmd0285  6161  17  0402          LBSR    SNDDAT      0286  6164  C6  06          LDB     #6          0287  6166  8E  67DD          LDX     #ACMD41     0288  6169  A6  80  ASC411  LDA     ,X+         0289  616B  17  03F8          LBSR    SNDDAT      0290  616E  5A            DECB          0291  616F  26  F8          BNE     ASC411      0292        *get response0293  6171      GR410         0294  6171  17  040E          LBSR    GETDAT      0295  6174  B6  6007          LDA     RESDAT      0296        * LBSR DSPBIN disp response0297  6177  17  0408          LBSR    GETDAT      0298  617A  B6  6007          LDA     RESDAT      0299        * LBSR DSPBIN disp response0300  617D  81  00          CMPA    #$00        0301  617F  26  BC          BNE     RPT41       0302        * JSR CRLF0303         0304        *---------- second cmd 58 ----------0305  6181      SCMD258 EQU     *           0306        * LDX #MCMD580307        * LBSR PSTRNG0308         0309  6181  17  0453          LBSR    SETCKL      0310  6184  86  FF          LDA     #$FF        dummy cmd0311  6186  17  03DD          LBSR    SNDDAT      0312  6189  C6  06          LDB     #6          0313  618B  8E  67D1          LDX     #CMD58      0314  618E  A6  80  SC2581  LDA     ,X+         0315  6190  17  03D3          LBSR    SNDDAT      0316  6193  5A            DECB          0317  6194  26  F8          BNE     SC2581      0318        *get response0319  6196      GR2580        0320  6196  17  03E9          LBSR    GETDAT      0321  6199  B6  6007          LDA     RESDAT      0322        * LBSR DSPBIN disp response0323  619C  81  00          CMPA    #$00        0324  619E  26  F6          BNE     GR2580      0325  61A0  17  03DF          LBSR    GETDAT      0326  61A3  B6  6007          LDA     RESDAT      0327        * LBSR DSPBIN disp response0328  61A6  48            LSLA          0329  61A7  48            LSLA          0330  61A8  24  03          BCC     GR2581      0331  61AA  7C  6008          INC     SDHC        if sdhc then 10332  61AD  C6  03  GR2581  LDB     #3          0333  61AF  17  03D0  GR2582  LBSR    GETDAT      0334  61B2  B6  6007          LDA     RESDAT      0335        * LBSR DSPBIN disp response0336  61B5  5A            DECB          0337  61B6  26  F7          BNE     GR2582      0338         0339  61B8  8E  68A9          LDX     #MSSD0      0340  61BB  B6  6008          LDA     SDHC        0341  61BE  27  03          BEQ     SD1         0342  61C0  8E  68B5          LDX     #MSSD1      0343  61C3  17  0501  SD1     LBSR    PSTRNG      0344         0345        *----------0346        *set sct no of BPB0347  61C6  17  0145          LBSR    GETMBR      0348  61C9  8E  6FCA          LDX     #RWBUF+446+8+4    0349  61CC  108E  6009          LDY     #SCTBPB     0350  61D0  C6  04          LDB     #4          0351  61D2  A6  82  ILOP1   LDA     ,-X         0352  61D4  A7  A0          STA     ,Y+         0353  61D6  5A            DECB          0354  61D7  26  F9          BNE     ILOP1       0355         0356        *set sct no of FAT#10357  61D9  17  0155          LBSR    GETBPB      0358  61DC  8E  6009          LDX     #SCTBPB     0359  61DF  108E  600D          LDY     #SCTFAT     0360  61E3  C6  04          LDB     #4          0361  61E5  A6  80  ILOP2   LDA     ,X+         0362  61E7  A7  A0          STA     ,Y+         0363  61E9  5A            DECB          0364  61EA  26  F9          BNE     ILOP2       0365         0366  61EC  8E  600D          LDX     #SCTFAT     0367  61EF  108E  6E0E          LDY     #RWBUF+$0E    for SD & SDHC0368  61F3  17  04A0          LBSR    ADD42       0369         0370        *set sct no of DIR0371  61F6  8E  600D          LDX     #SCTFAT     0372  61F9  108E  6011          LDY     #SCTDIR     0373  61FD  C6  04          LDB     #4          0374  61FF  A6  80  ILOP3   LDA     ,X+         0375  6201  A7  A0          STA     ,Y+         0376  6203  5A            DECB          0377  6204  26  F9          BNE     ILOP3       0378         0379  6206  8E  6E16          LDX     #RWBUF+$16    for SD0380  6209  7D  6008          TST     SDHC        0381  620C  27  03          BEQ     SKP1        0382  620E  C6  0E          LDB     #$24-$16    0383  6210  3A            ABX           for SDHC0384  6211  1F  12  SKP1    TFR     X,Y         0385  6213  8E  6011          LDX     #SCTDIR     0386  6216  17  047D          LBSR    ADD42       0387  6219  17  047A          LBSR    ADD42       skip for FAT#20388        0389        *set sct per cluster0390  621C  8E  6E0D          LDX     #RWBUF+$0D    0391  621F  A6  84          LDA     ,X          0392  6221  B7  6019          STA     SCTPCL      0393         0394        *set sct no of CLUSTER#20395  6224  8E  6011          LDX     #SCTDIR     0396  6227  108E  6015          LDY     #SCTCLT     0397  622B  C6  04          LDB     #4          0398  622D  A6  80  ILOP4   LDA     ,X+         0399  622F  A7  A0          STA     ,Y+         0400  6231  5A            DECB          0401  6232  26  F9          BNE     ILOP4       0402         0403  6234  108E  6027          LDY     #WK1+2      0404  6238  86  00          LDA     #$00        0405  623A  A7  A2          STA     ,-Y         0406  623C  86  20          LDA     #$20        for SD0407  623E  7D  6008          TST     SDHC        0408  6241  27  03          BEQ     SKP2        0409  6243  B6  6019          LDA     SCTPCL      for SDHC0410  6246  A7  A2  SKP2    STA     ,-Y         0411  6248  8E  6015          LDX     #SCTCLT     0412  624B  17  0448          LBSR    ADD42       0413        *----------0414  624E  39            RTS           0415        0416        ****************************************0417        * GET SD DATA ROUTINE0418        * use CMD90419        ****************************************0420  624F      GETSD   EQU     *           0421  624F  BD  6612          JSR     CRLF        0422  6252  17  0382          LBSR    SETCKL      0423  6255  C6  06          LDB     #6          0424  6257  8E  67E3          LDX     #CMD9       0425  625A  A6  80  SC91    LDA     ,X+         0426  625C  17  0307          LBSR    SNDDAT      0427  625F  5A            DECB          0428  6260  26  F8          BNE     SC91        0429        * JSR CRLF0430        *get response0431  6262      GR90          0432  6262  17  031D          LBSR    GETDAT      0433  6265  B6  6007          LDA     RESDAT      0434        * LBSR DSPBIN disp response0435  6268  81  00          CMPA    #$00        0436  626A  26  F6          BNE     GR90        0437         0438        * JSR CRLF0439  626C  BD  6612          JSR     CRLF        0440  626F  C6  14          LDB     #16+1+2+1   fe,crcH,crcL,ff0441  6271  17  030E  GR91    LBSR    GETDAT      0442  6274  B6  6007          LDA     RESDAT      0443  6277  17  036F          LBSR    DSPBIN      disp response0444  627A  5A            DECB          0445  627B  26  F4          BNE     GR91        0446  627D  BD  6612          JSR     CRLF        0447        0448        *disp offset of MBR,FAT#1,DIR,CLUSTER#20449  6280  8E  6905          LDX     #MSOFS      0450  6283  BD  66C7          JSR     PSTRNG      0451  6286  8E  6917          LDX     #MSBPB      0452  6289  BD  66C7          JSR     PSTRNG      0453  628C  8E  6009          LDX     #SCTBPB     0454  628F  C6  04          LDB     #4          0455  6291  A6  80  SCLOP1  LDA     ,X+         0456  6293  17  0353          LBSR    DSPBIN      0457  6296  5A            DECB          0458  6297  26  F8          BNE     SCLOP1      0459        0460  6299  8E  6920          LDX     #MSFAT      0461  629C  BD  66C7          JSR     PSTRNG      0462  629F  8E  600D          LDX     #SCTFAT     0463  62A2  C6  04          LDB     #4          0464  62A4  A6  80  SCLOP2  LDA     ,X+         0465  62A6  17  0340          LBSR    DSPBIN      0466  62A9  5A            DECB          0467  62AA  26  F8          BNE     SCLOP2      0468        0469  62AC  8E  6929          LDX     #MSDIR      0470  62AF  BD  66C7          JSR     PSTRNG      0471  62B2  8E  6011          LDX     #SCTDIR     0472  62B5  C6  04          LDB     #4          0473  62B7  A6  80  SCLOP3  LDA     ,X+         0474  62B9  17  032D          LBSR    DSPBIN      0475  62BC  5A            DECB          0476  62BD  26  F8          BNE     SCLOP3      0477        0478  62BF  8E  6932          LDX     #MSCL2      0479  62C2  BD  66C7          JSR     PSTRNG      0480  62C5  8E  6015          LDX     #SCTCLT     0481  62C8  C6  04          LDB     #4          0482  62CA  A6  80  SCLOP4  LDA     ,X+         0483  62CC  17  031A          LBSR    DSPBIN      0484  62CF  5A            DECB          0485  62D0  26  F8          BNE     SCLOP4      0486  62D2  BD  6612          JSR     CRLF        0487  62D5  39            RTS           0488        0489        *0490  62D6      SDERR   EQU     *           0491  62D6  8E  68DF          LDX     #MERR       0492  62D9  17  03EB          LBSR    PSTRNG      0493  62DC      OKEND         0494  62DC  39            RTS           return FM-70495        *0496        ****************************************0497        * READ ROUTINE0498        * use CMD170499        * set sctno to $6005,60060500        * read data set to $6800-69FF0501        ****************************************0502  62DD      SDRD    EQU     *           0503  62DD  BD  6612          JSR     CRLF        0504  62E0  17  02B9          LBSR    INSCT       0505  62E3  17  0227          LBSR    RD1SCT      read 1 sct0506        0507        *disp data0508  62E6  BD  6612          JSR     CRLF        0509  62E9  17  025C          LBSR    DSPBUF      0510  62EC  BD  6612          JSR     CRLF        0511  62EF  39            RTS           0512        0513        ****************************************0514        * Read MBR & Disp parameter of BPB0515        ****************************************0516  62F0      DSPMBR  EQU     *           0517  62F0  BD  6612          JSR     CRLF        0518  62F3  8D  19          BSR     GETMBR      0519        0520        *disp BPB0521  62F5  BD  6612          JSR     CRLF        0522  62F8  8E  6FBE          LDX     #RWBUF+446    0523  62FB  C6  10  GET1    LDB     #16         0524  62FD  A6  80  GET2    LDA     ,X+         0525  62FF  17  02E7          LBSR    DSPBIN      disp data0526  6302  5A            DECB          0527  6303  26  F8          BNE     GET2        0528  6305  BD  6612          JSR     CRLF        0529  6308  8C  6FFE          CMPX    #RWBUF+510    446+16*40530  630B  25  EE          BLO     GET1        0531  630D  39            RTS           0532        0533        *----------------------------------------0534        *read MBR0535  630E      GETMBR  EQU     *           0536  630E  8E  6003          LDX     #SCTN0      0537  6311  C6  04          LDB     #4          0538  6313  4F            CLRA          0539  6314  A7  80  GPLOP   STA     ,X+         0540  6316  5A            DECB          0541  6317  26  FB          BNE     GPLOP       0542  6319  17  0288          LBSR    SETSCT      0543         0544  631C  17  01EE          LBSR    RD1SCT      read 1 sct0545  631F  39            RTS           0546        0547        *----------------------------------------0548        *set sector no to SCTN00549        *from X,X+1,X+2,X+3 to SCTN0-SCTN30550  6320      SETSNO  EQU     *           0551  6320  108E  6003          LDY     #SCTN0      0552  6324  C6  04          LDB     #4          0553  6326  A6  80  SELOP   LDA     ,X+         0554  6328  A7  A0          STA     ,Y+         0555  632A  5A            DECB          0556  632B  26  F9          BNE     SELOP       0557  632D  17  0274          LBSR    SETSCT      0558  6330  39            RTS           0559        0560        *----------------------------------------0561        *read BPB0562  6331      GETBPB  EQU     *           0563  6331  8D  DB          BSR     GETMBR      0564        *set sct no of BPB0565  6333  8E  6FCA          LDX     #RWBUF+446+8+4    0566  6336  108E  6003          LDY     #SCTN0      0567  633A  C6  04          LDB     #4          0568  633C  A6  82  GPLOP2  LDA     ,-X         0569  633E  A7  A0          STA     ,Y+         0570  6340  5A            DECB          0571  6341  26  F9          BNE     GPLOP2      0572  6343  17  025E          LBSR    SETSCT      0573         0574  6346  17  01C4          LBSR    RD1SCT      read 1 sct0575  6349  39            RTS           0576        0577        ****************************************0578        * Disp BPB(Bios Parameter Block)0579        ****************************************0580  634A      DSPBPB  EQU     *           0581  634A  8E  6009          LDX     #SCTBPB     0582  634D  8D  D1          BSR     SETSNO      0583  634F  17  01BB          LBSR    RD1SCT      read 1 sct0584         0585        *disp BPB0586  6352  BD  6612          JSR     CRLF        0587  6355  17  01F0          LBSR    DSPBUF      0588  6358  BD  6612          JSR     CRLF        0589  635B  39            RTS           0590        0591        ****************************************0592        * Disp FAT#10593        ****************************************0594  635C      DSPFAT  EQU     *           0595  635C  8E  600D          LDX     #SCTFAT     0596  635F  8D  BF          BSR     SETSNO      0597  6361  17  01A9          LBSR    RD1SCT      read 1 sct0598         0599        *disp FAT0600  6364  BD  6612          JSR     CRLF        0601  6367  17  01DE          LBSR    DSPBUF      0602  636A  BD  6612          JSR     CRLF        0603  636D  39            RTS           0604        0605        ****************************************0606        * Disp Directory0607        ****************************************0608  636E      DSPDIR  EQU     *           0609  636E  8E  6011          LDX     #SCTDIR     0610  6371  8D  AD          BSR     SETSNO      0611  6373  17  0197          LBSR    RD1SCT      read 1 sct0612         0613        **disp DIR0614        * JSR CRLF0615        * LBSR DSPBUF0616        * JSR CRLF0617        * 0618        *disp FILE name0619  6376  BD  6612          JSR     CRLF        0620  6379  BD  6612          JSR     CRLF        0621  637C  8E  6E60          LDX     #RWBUF+96   skip top data0622  637F  7F  6027          CLR     WK2         counter0623  6382  A6  84  DSPFL1  LDA     ,X          0624  6384  27  6D          BEQ     DSPEND      0625  6386  81  E5          CMPA    #$E5        delete mark?0626  6388  26  05          BNE     DSPFL2      0627  638A  30  88 20         LEAX    32,X        0628  638D  20  F3          BRA     DSPFL1      0629         0630  638F  7C  6027  DSPFL2  INC     WK2         0631  6392  B6  6027          LDA     WK2         0632  6395  17  0251          LBSR    DSPBIN      disp counter0633  6398  C6  08          LDB     #8          0634  639A  A6  80  DSPFL3  LDA     ,X+         0635  639C  BD  FBBB          JSR     OUTCHA      0636  639F  5A            DECB          0637  63A0  26  F8          BNE     DSPFL3      0638  63A2  86  2E          LDA     #'.         0639  63A4  BD  FBBB          JSR     OUTCHA      0640  63A7  C6  03          LDB     #3          0641  63A9  A6  80  DSPFL4  LDA     ,X+         0642  63AB  BD  FBBB          JSR     OUTCHA      0643  63AE  5A            DECB          0644  63AF  26  F8          BNE     DSPFL4      0645  63B1  86  20          LDA     #'          0646  63B3  BD  FBBB          JSR     OUTCHA      0647  63B6  BD  FBBB          JSR     OUTCHA      0648        0649        *get FILE time data0650  63B9  30  07          LEAX    7,X         0651  63BB  EC  81          LDD     ,X++        0652  63BD  FD  6025          STD     WK1         0653        0654        *get CLUSTER(H) data0655  63C0  EC  81          LDD     ,X++        0656  63C2  1E  89          EXG     A,B         0657  63C4  FD  6021          STD     CLSTH       0658  63C7  30  04          LEAX    4,X         0659  63C9  EC  81          LDD     ,X++        0660  63CB  1E  89          EXG     A,B         0661  63CD  FD  6023          STD     CLSTL       0662         0663        *get FILE size data0664  63D0  108E  6021          LDY     #WFSIZ+4    0665  63D4  C6  04          LDB     #4          0666  63D6  A6  80  DSPC1   LDA     ,X+         0667  63D8  A7  A2          STA     ,-Y         0668  63DA  5A            DECB          0669  63DB  26  F9          BNE     DSPC1       0670        0671        *disp FILE size0672  63DD  86  20          LDA     #'          0673  63DF  BD  FBBB          JSR     OUTCHA      0674  63E2  17  0353          LBSR    DSPSIZ      disp FILE size0675        0676        0677        *disp FILE time0678  63E5  FC  6025          LDD     WK1         0679  63E8  17  02EC          LBSR    DSPYMD      disp MM-DD-YY0680        0681        *disp CLUSTER(H,L)0682  63EB  17  03A0          LBSR    DSPCLS      0683        0684  63EE  BD  6612          JSR     CRLF        0685  63F1  20  8F          BRA     DSPFL1      0686        * 0687  63F3  39    DSPEND  RTS           0688        0689        ****************************************0690        * Load FILE0691        ****************************************0692  63F4      LDFILE  EQU     *           0693  63F4  17  FF77          LBSR    DSPDIR      0694  63F7  8E  6942          LDX     #MSINFL     0695  63FA  BD  66C7          JSR     PSTRNG      0696  63FD  BD  FBB8          JSR     INCHA       file no0697  6400  80  30          SUBA    #$30        to binary0698         0699  6402  8E  6E60          LDX     #RWBUF+96   skip top data0700  6405  1F  89          TFR     A,B         0701         0702  6407  A6  84  LDLOP   LDA     ,X          0703  6409  81  E5          CMPA    #$E5        delete mark?0704  640B  26  05          BNE     LD1         0705  640D  30  88 20         LEAX    32,X        skip0706  6410  20  F5          BRA     LDLOP       0707  6412  5A    LD1     DECB          0708  6413  27  05          BEQ     LD2         0709  6415  30  88 20         LEAX    32,X        0710  6418  20  ED          BRA     LDLOP       0711        *hit file, get cluster no0712  641A  EC  88 14 LD2     LDD     $14,X       0713  641D  1E  89          EXG     A,B         0714  641F  FD  6021          STD     CLSTH       0715  6422  EC  88 1A         LDD     $1A,X       0716  6425  1E  89          EXG     A,B         0717  6427  FD  6023          STD     CLSTL       0718        *get sct no0719  642A  C0  02          SUBB    #2          sub top cluseter no0720  642C  7D  6008          TST     SDHC        SD:0,SDHC:10721  642F  27  01          BEQ     LD3         0722  6431  5A            DECB          0723         0724  6432  34  04  LD3     PSHS    B           0725  6434  8E  6015          LDX     #SCTCLT     0726  6437  108E  6025          LDY     #WK1        0727  643B  C6  04          LDB     #4          0728  643D  A6  80  LD4     LDA     ,X+         0729  643F  A7  A0          STA     ,Y+         0730  6441  5A            DECB          0731  6442  26  F9          BNE     LD4         0732  6444  35  04          PULS    B           0733         0734  6446  8E  6025          LDX     #WK1        0735  6449  A6  03  LD5     LDA     3,X         0736  644B  8B  40          ADDA    #$40        0737  644D  A7  03          STA     3,X         0738  644F  24  06          BCC     LD51        0739  6451  A6  02          LDA     2,X         0740  6453  8B  01          ADDA    #1          0741  6455  A7  02          STA     2,X         0742  6457  24  06  LD51    BCC     LD52        0743  6459  A6  01          LDA     1,X         0744  645B  8B  01          ADDA    #1          0745  645D  A7  01          STA     1,X         0746  645F  24  06  LD52    BCC     LD53        0747  6461  A6  84          LDA     ,X          0748  6463  8B  01          ADDA    #1          0749  6465  A7  84          STA     ,X          0750  6467  5A    LD53    DECB          0751  6468  26  DF          BNE     LD5         0752         0753  646A  8E  6025          LDX     #WK1        0754  646D  108E  6003          LDY     #SCTN0      0755  6471  C6  04          LDB     #4          0756  6473  A6  80  LD6     LDA     ,X+         0757  6475  A7  A0          STA     ,Y+         0758  6477  5A            DECB          0759  6478  26  F9          BNE     LD6         0760  647A  17  0127          LBSR    SETSCT      0761  647D  17  008D          LBSR    RD1SCT      read 1 sct0762        0763        * LDX #SCTCLT0764        * LBSR SETSNO0765        * LBSR RD1SCT read 1 sct0766        * 0767        **disp CLUSTER#20768  6480  BD  6612          JSR     CRLF        0769  6483  17  00C2          LBSR    DSPBUF      0770  6486  BD  6612          JSR     CRLF        0771  6489  39            RTS           0772        0773        ****************************************0774        * WRITE ROUTINE0775        * use CMD240776        * set sctno to $6005,60060777        * write data from $6A00-6BFF0778        ****************************************0779  648A      SDWRT   EQU     *           0780  648A  8E  689D          LDX     #MSWROK     0781  648D  17  0237          LBSR    PSTRNG      0782  6490  BD  FBB8          JSR     INCHA       0783  6493  84  DF          ANDA    #$DF        0784  6495  81  59          CMPA    #'Y         0785  6497  27  01          BEQ     SDWR1       0786  6499  39            RTS           0787  649A  BD  6612  SDWR1   JSR     CRLF        0788  649D  17  00FC          LBSR    INSCT       *input SCT No0789        *copy sct no to cmd param0790  64A0  8E  6003          LDX     #SCTN0      0791  64A3  108E  67C6          LDY     #CMD24+1    0792  64A7  C6  04          LDB     #4          0793  64A9  A6  80  CPY2    LDA     ,X+         0794  64AB  A7  A0          STA     ,Y+         0795  64AD  5A            DECB          0796  64AE  26  F9          BNE     CPY2        0797        *send cmd0798  64B0  17  0124          LBSR    SETCKL      0799  64B3  C6  06          LDB     #6          0800  64B5  8E  67C5          LDX     #CMD24      0801  64B8  A6  80  SDW1    LDA     ,X+         0802  64BA  17  012C          LBSR    DSPBIN      disp response0803  64BD  17  00A6          LBSR    SNDDAT      0804  64C0  5A            DECB          0805  64C1  26  F5          BNE     SDW1        0806        *get cmd response0807  64C3      SDW2          0808  64C3  17  00BC          LBSR    GETDAT      0809  64C6  B6  6007          LDA     RESDAT      0810  64C9  17  011D          LBSR    DSPBIN      disp response0811  64CC  81  00          CMPA    #$00        0812  64CE  26  F3          BNE     SDW2        0813        *1byte skip0814  64D0  86  FF          LDA     #$FF        0815  64D2  17  0091          LBSR    SNDDAT      1byte skip0816  64D5  BD  6612          JSR     CRLF        0817         0818        *send data packet0819  64D8  8E  6E00          LDX     #RWBUF      --temp buf0820  64DB  108E  0200          LDY     #512        0821        *send data token0822  64DF  86  FE          LDA     #$FE        0823  64E1  17  0082          LBSR    SNDDAT      data token0824  64E4  A6  80  SNDDT1  LDA     ,X+         0825  64E6  8D  7E          BSR     SNDDAT      0826  64E8  31  3F          LEAY    -1,Y        0827  64EA  26  F8          BNE     SNDDT1      0828         0829  64EC  86  FF          LDA     #$FF        0830  64EE  8D  76          BSR     SNDDAT      crcH0831  64F0  8D  74          BSR     SNDDAT      crcL0832        *get data response0833  64F2      CKRS          0834  64F2  17  008D          LBSR    GETDAT      0835  64F5  B6  6007          LDA     RESDAT      0836  64F8  17  00EE          LBSR    DSPBIN      disp response0837  64FB  81  E5          CMPA    #$E5        data response?0838  64FD  26  F3          BNE     CKRS        0839        *wait until busy0840  64FF      BUSY          0841  64FF  17  0080          LBSR    GETDAT      0842  6502  B6  6007          LDA     RESDAT      0843  6505  17  00E1          LBSR    DSPBIN      disp response0844  6508  81  FF          CMPA    #$FF        0845  650A  26  F3          BNE     BUSY        0846  650C  39            RTS           0847        0848        *------------------------------0849        *read 1 sct0850        *------------------------------0851  650D      RD1SCT  EQU     *           0852        *copy sct no to cmd param0853  650D  8E  6003          LDX     #SCTN0      0854  6510  108E  67C0          LDY     #CMD17+1    0855  6514  C6  04          LDB     #4          0856  6516  A6  80  CPY1    LDA     ,X+         0857  6518  A7  A0          STA     ,Y+         0858  651A  5A            DECB          0859  651B  26  F9          BNE     CPY1        0860        *send cmd0861  651D  17  00B7          LBSR    SETCKL      0862  6520  C6  06          LDB     #6          0863  6522  8E  67BF          LDX     #CMD17      0864  6525  A6  80  RD1     LDA     ,X+         0865  6527  8D  3D          BSR     SNDDAT      0866  6529  5A            DECB          0867  652A  26  F9          BNE     RD1         0868        *get response0869  652C      RD2           0870  652C  8D  54          BSR     GETDAT      0871  652E  B6  6007          LDA     RESDAT      0872  6531  81  FE          CMPA    #$FE        token?0873  6533  26  F7          BNE     RD2         0874        0875        *get data0876        * JSR CRLF0877  6535  8E  6E00          LDX     #RWBUF      --temp buf0878  6538  108E  0200          LDY     #512        0879  653C      RD3           0880  653C  8D  44          BSR     GETDAT      0881  653E  B6  6007          LDA     RESDAT      0882  6541  A7  80          STA     ,X+         save buf0883  6543  31  3F          LEAY    -1,Y        0884  6545  26  F5          BNE     RD3         0885  6547  39            RTS           0886        0887        *------------------------------0888        *disp data0889  6548      DSPBUF  EQU     *           0890  6548  BD  6612          JSR     CRLF        0891  654B  8E  6E00          LDX     #RWBUF      --temp buf0892  654E  108E  0200          LDY     #512        0893  6552  C6  20  DSPB1   LDB     #32         0894  6554      DSPB2         0895  6554  A6  80          LDA     ,X+         save buf0896  6556  17  0090          LBSR    DSPBIN      disp data0897  6559  31  3F          LEAY    -1,Y        0898  655B  27  08          BEQ     DSPB3       0899  655D  5A            DECB          0900  655E  26  F4          BNE     DSPB2       0901  6560  BD  6612          JSR     CRLF        0902  6563  20  ED          BRA     DSPB1       0903  6565  39    DSPB3   RTS           0904        0905        *------------------------------0906        *send data0907  6566      SNDDAT  EQU     *           0908  6566  34  06          PSHS    A,B         0909  6568  7F  6007          CLR     RESDAT      0910  656B  C6  08          LDB     #8          0911  656D  34  02  SNDD1   PSHS    A           0912  656F  84  FC          ANDA    #$FC        0913  6571  8A  02          ORA     #$02        miso:b1=H(for PIA),cs:b0=L0914  6573  B7  FD9E          STA     PBDAT       send data0915  6576  8D  5F          BSR     SETCKL      0916  6578  35  02          PULS    A           0917  657A  48            LSLA          0918  657B  8D  63          BSR     SETCKH      0919  657D  5A            DECB          0920  657E  26  ED          BNE     SNDD1       0921  6580  35  86          PULS    A,B,PC      0922        0923        *get data0924  6582      GETDAT  EQU     *           0925  6582  34  06          PSHS    A,B         0926  6584  C6  08          LDB     #8          0927  6586  8D  4F  GETD1   BSR     SETCKL      0928  6588  12            NOP           0929  6589  12            NOP           0930  658A  12            NOP           0931  658B  8D  53          BSR     SETCKH      0932  658D  B6  FD9E          LDA     PBDAT       get response0933  6590  44            LSRA          0934  6591  44            LSRA          b1--C0935  6592  79  6007          ROL     RESDAT      C--b00936  6595  5A            DECB          0937  6596  26  EE          BNE     GETD1       0938  6598  8D  3D          BSR     SETCKL      0939  659A  35  86          PULS    A,B,PC      0940        *0941        *------------------------------0942        *input SCT No0943  659C      INSCT   EQU     *           0944  659C  8E  6895          LDX     #MSSCT      0945  659F  17  0125          LBSR    PSTRNG      0946  65A2  8D  79          BSR     GET8CH      get 8chr, convert 4bin0947         0948  65A4      SETSCT  EQU     *           0949  65A4  7D  6008          TST     SDHC        0950  65A7  26  1D          BNE     CALCHC      0951        *SD card0952  65A9  C6  03          LDB     #3          0953  65AB  8E  6004          LDX     #SCTN1      0954  65AE  108E  6003          LDY     #SCTN0      0955  65B2  A6  80  SFT1    LDA     ,X+         0956  65B4  A7  A0          STA     ,Y+         0957  65B6  5A            DECB          0958  65B7  26  F9          BNE     SFT1        0959  65B9  7F  6006          CLR     SCTN3       0960        *calc top adrs of sct0961  65BC      CALCSD  EQU     *           0962  65BC  78  6006          LSL     SCTN3       0963  65BF  79  6005          ROL     SCTN2       0964  65C2  79  6004          ROL     SCTN1       0965  65C5  39            RTS           0966        0967        *SDHC card0968        *calc top adrs of sct0969  65C6      CALCHC  EQU     *           0970  65C6  8E  6003          LDX     #SCTN0      0971  65C9  108E  67C0          LDY     #CMD17+1    0972  65CD  C6  04          LDB     #4          0973  65CF  A6  80  CALCH1  LDA     ,X+         0974  65D1  A7  A0          STA     ,Y+         0975  65D3  5A            DECB          0976  65D4  26  F9          BNE     CALCH1      0977  65D6  39            RTS           0978        0979        *0980        *set sck:L0981  65D7      SETCKL  EQU     *           0982  65D7  34  02          PSHS    A           0983  65D9  86  34          LDA     #$34        ca2=L0984  65DB  B7  FD9F          STA     PBCTL       0985  65DE  35  82          PULS    A,PC        0986        0987        *set sck:H0988  65E0      SETCKH  EQU     *           0989  65E0  34  02          PSHS    A           0990  65E2  86  3C          LDA     #$3C        ca2=H0991  65E4  B7  FD9F          STA     PBCTL       0992  65E7  35  82          PULS    A,PC        0993        0994        *binary(A)--ascii(A)(B)0995  65E9      DSPBIN  EQU     *           0996  65E9  34  06          PSHS    A,B         0997  65EB  1F  89          TFR     A,B         0998  65ED  44            LSRA          0999  65EE  44            LSRA          1000  65EF  44            LSRA          1001  65F0  44            LSRA          1002  65F1  8A  30          ORA     #$30        1003  65F3  C4  0F          ANDB    #$0F        1004  65F5  CA  30          ORB     #$30        1005  65F7  81  39          CMPA    #$39        1006  65F9  23  02          BLS     BI21        1007  65FB  8B  07          ADDA    #$07        1008  65FD  C1  39  BI21    CMPB    #$39        1009  65FF  23  02          BLS     BI22        1010  6601  CB  07          ADDB    #$07        1011  6603  BD  FBBB  BI22    JSR     OUTCHA      1012  6606  1F  98          TFR     B,A         1013  6608  BD  FBBB          JSR     OUTCHA      1014  660B  86  20          LDA     #$20        1015  660D  BD  FBBB          JSR     OUTCHA      1016  6610  35  86          PULS    A,B,PC      1017        1018        *crlf1019  6612      CRLF    EQU     *           1020  6612  86  0D          LDA     #$0D        1021  6614  BD  FBBB          JSR     OUTCHA      1022  6617  86  0A          LDA     #$0A        1023  6619  BD  FBBB          JSR     OUTCHA      1024  661C  39            RTS           1025        1026        *1027  661D      GET8CH  EQU     *           1028        *input chr1029  661D  8E  6956          LDX     #INPBUF     1030  6620  5F            CLRB          1031  6621  BD  FBB8  CLOP    JSR     INCHA       1032  6624  81  0D          CMPA    #$0D        1033  6626  27  07          BEQ     INEND       1034  6628  A7  85          STA     B,X         1035  662A  5C            INCB          1036  662B  C1  08          CMPB    #8          1037  662D  25  F2          BLO     CLOP        1038        1039  662F      INEND          1040        *shift1041  662F  5D            TSTB          1042  6630  27  11          BEQ     CL1         1043  6632  8E  6956          LDX     #INPBUF     1044  6635  3A            ABX           1045  6636  108E  695E          LDY     #INPBUF+8   1046  663A  34  04          PSHS    B           1047  663C  A6  82  SFLOP   LDA     ,-X         1048  663E  A7  A2          STA     ,-Y         1049  6640  5A            DECB          1050  6641  26  F9          BNE     SFLOP       1051        *clr1052  6643  C6  08  CL1     LDB     #8          1053  6645  E0  E0          SUBB    ,S+         1054  6647  27  0A          BEQ     CLEND       1055  6649  8E  6956          LDX     #INPBUF     1056  664C  86  30          LDA     #'0         1057  664E  A7  80  CLLOP   STA     ,X+         1058  6650  5A            DECB          1059  6651  26  FB          BNE     CLLOP       1060  6653      CLEND         1061        1062        *convert to bin1063  6653  C6  04          LDB     #4          1064  6655  8E  6956          LDX     #INPBUF     1065  6658  108E  6003          LDY     #SCTN0      1066  665C      CVT1          1067  665C  A6  80          LDA     ,X+         1068  665E  8D  1E          BSR     CVBIN       1069  6660  25  16          BCS     EREND1      1070  6662  48            LSLA          1071  6663  48            LSLA          1072  6664  48            LSLA          1073  6665  48            LSLA          1074  6666  34  02          PSHS    A           1075  6668  A6  80          LDA     ,X+         1076  666A  8D  12          BSR     CVBIN       1077  666C  25  08          BCS     EREND0      1078  666E  AB  E0          ADDA    ,S+         1079  6670  A7  A0          STA     ,Y+         1080  6672  5A            DECB          1081  6673  26  E7          BNE     CVT1        1082  6675  39            RTS           1083         1084  6676  35  02  EREND0  PULS    A           1085  6678  8E  68F6  EREND1  LDX     #MSERR      1086  667B  8D  4A          BSR     PSTRNG      1087  667D  39    EEND    RTS           1088        1089        *--------------------1090        *ascii -- bin1091  667E      CVBIN   EQU     *           1092  667E  80  30          SUBA    #'0         1093  6680  2B  11          BMI     CVERR       1094  6682  81  09          CMPA    #9          1095  6684  23  0A          BLS     CVBEND      1096  6686  81  11          CMPA    #$11        1097  6688  25  09          BLO     CVERR       1098  668A  81  16          CMPA    #$16        1099  668C  22  05          BHI     CVERR       1100  668E  80  07          SUBA    #7          1101  6690      CVBEND        1102  6690  1C  FE          ANDCC   #$FE        reset C1103  6692  39            RTS           1104  6693  1A  01  CVERR   ORCC    #$01        set C1105  6695  39            RTS           1106        1107        *--------------------1108        *add 2bytes to 4bytes1109        * X,X+1,X+2,X+3 + Y,Y+11110        * data X is big endian1111        * data Y is little endian1112  6696      ADD42   EQU     *           1113  6696  34  36          PSHS    A,B,X,Y     1114  6698  32  7C          LEAS    -4,S        1115  669A  C6  04          LDB     #4          1116  669C  A6  80  AD1     LDA     ,X+         1117  669E  A7  E0          STA     ,S+         1118  66A0  5A            DECB          1119  66A1  26  F9          BNE     AD1         1120         1121        *add (lower)1122  66A3  A6  A0          LDA     ,Y+         1123  66A5  AB  E2          ADDA    ,-S         1124  66A7  A7  E4          STA     ,S          1125  66A9  24  02          BCC     AD2         1126  66AB  6C  7F          INC     -1,S        1127        *add (upper)1128  66AD  A6  A4  AD2     LDA     ,Y          1129  66AF  AB  E2          ADDA    ,-S         1130  66B1  A7  E4          STA     ,S          1131  66B3  24  02          BCC     AD3         1132  66B5  6C  7F          INC     -1,S        1133  66B7  30  1C  AD3     LEAX    -4,X        1134  66B9  32  7E          LEAS    -2,S        1135  66BB  C6  04          LDB     #4          1136  66BD  A6  E0  AD4     LDA     ,S+         1137  66BF  A7  80          STA     ,X+         1138  66C1  5A            DECB          1139  66C2  26  F9          BNE     AD4         1140  66C4  35  36          PULS    A,B,X,Y     1141  66C6  39            RTS           1142        1143        *--------------------1144        * pstring1145  66C7      PSTRNG  EQU     *           1146  66C7  34  02          PSHS    A           1147  66C9  A6  80  PSLOP   LDA     ,X+         1148  66CB  81  04          CMPA    #4          1149  66CD  27  05          BEQ     PSEND       1150  66CF  BD  FBBB          JSR     OUTCHA      1151  66D2  20  F5          BRA     PSLOP       1152  66D4  35  02  PSEND   PULS    A           1153  66D6  39            RTS           1154        1155        *--------------------1156        *disp MM-DD-YY1157        *indata A(Low),B(High)1158  66D7      DSPYMD  EQU     *           1159  66D7  1E  89          EXG     A,B         1160  66D9  34  10          PSHS    X           1161  66DB  34  06          PSHS    A,B         1162  66DD  C4  E0          ANDB    #$E0        1163  66DF  54            LSRB          1164  66E0  54            LSRB          1165  66E1  54            LSRB          1166  66E2  54            LSRB          1167  66E3  54            LSRB          1168  66E4  47            ASRA          1169  66E5  24  02          BCC     DYMD1       1170  66E7  CB  08          ADDB    #8          1171  66E9  F7  601A  DYMD1   STB     WMDY        MM1172  66EC  35  06          PULS    A,B         1173  66EE  34  04          PSHS    B           1174  66F0  C4  1F          ANDB    #$1F        1175  66F2  F7  601B          STB     WMDY+1      DD1176  66F5  35  04          PULS    B           1177         1178  66F7  44            LSRA          1179        * ASLB1180        * BCC DYMD21181        * INCA1182  66F8      DYMD2         1183  66F8  80  14          SUBA    #20         A+1980-20001184  66FA  B7  601C          STA     WMDY+2      YY1185         1186        *disp MM-DD-YY1187  66FD  86  20          LDA     #'          1188  66FF  BD  FBBB          JSR     OUTCHA      1189  6702  8E  601A          LDX     #WMDY       1190  6705  A6  80          LDA     ,X+         1191  6707  8D  14          BSR     DB2ASC      MM1192  6709  86  2D          LDA     #'-         1193  670B  BD  FBBB          JSR     OUTCHA      1194  670E  A6  80          LDA     ,X+         1195  6710  8D  0B          BSR     DB2ASC      DD1196  6712  86  2D          LDA     #'-         1197  6714  BD  FBBB          JSR     OUTCHA      1198  6717  A6  80          LDA     ,X+         1199  6719  8D  02          BSR     DB2ASC      YY1200  671B  35  90          PULS    X,PC        1201        1202        *1203        *----------1204        *(A:BIN)--ASCII1205  671D      DB2ASC  EQU     *           1206  671D  34  06          PSHS    A,B         1207  671F  1F  89          TFR     A,B         1208  6721  86  30          LDA     #$30        1209  6723  C1  0A  DBLOP   CMPB    #10         1210  6725  25  05          BLO     DB2         1211  6727  C0  0A          SUBB    #10         1212  6729  4C            INCA          1213  672A  20  F7          BRA     DBLOP       1214  672C  BD  FBBB  DB2     JSR     OUTCHA      1215  672F  1F  98          TFR     B,A         1216  6731  8B  30          ADDA    #$30        1217  6733  BD  FBBB          JSR     OUTCHA      1218  6736  35  86          PULS    A,B,PC      1219        1220        *disp FILE size1221  6738      DSPSIZ  EQU     *           1222  6738  34  10          PSHS    X           1223  673A  BE  601D          LDX     WFSIZ       1224  673D  27  12          BEQ     DSS1        if 64k over?1225  673F  86  2D          LDA     #'-         1226  6741  BD  FBBB          JSR     OUTCHA      1227  6744  BD  FBBB          JSR     OUTCHA      1228  6747  BD  FBBB          JSR     OUTCHA      1229  674A  86  6B          LDA     #'k         1230  674C  BD  FBBB          JSR     OUTCHA      1231  674F  20  3B          BRA     DSEND       1232  6751      DSS1           1233  6751  B6  601F          LDA     WFSIZ+2     1234  6754  81  64          CMPA    #100        1235  6756  23  12          BLS     DSS13       1236  6758  1F  89          TFR     A,B         1237  675A  86  30          LDA     #$30        1238  675C  C1  64  DSLOP1  CMPB    #100        1239  675E  25  05          BLO     DSS12       1240  6760  C0  64          SUBB    #100        1241  6762  4C            INCA          1242  6763  20  F7          BRA     DSLOP1      1243  6765  BD  FBBB  DSS12   JSR     OUTCHA      1244  6768  20  05          BRA     DSS14       1245        1246  676A  86  20  DSS13   LDA     #'          1247  676C  BD  FBBB          JSR     OUTCHA      1248  676F  86  30  DSS14   LDA     #$30        1249  6771  C1  0A  DSLOP2  CMPB    #10         1250  6773  25  05          BLO     DSS2        1251  6775  C0  0A          SUBB    #10         1252  6777  4C            INCA          1253  6778  20  F7          BRA     DSLOP2      1254  677A  81  30  DSS2    CMPA    #$30        1255  677C  26  01          BNE     DSS3        1256  677E  4C            INCA          1257  677F  BD  FBBB  DSS3    JSR     OUTCHA      1258  6782  86  6B          LDA     #'k         1259  6784  BD  FBBB          JSR     OUTCHA      1260  6787  86  20          LDA     #'          1261  6789  BD  FBBB          JSR     OUTCHA      1262  678C  35  90  DSEND   PULS    X,PC        1263        1264        *----------1265  678E      DSPCLS  EQU     *           1266  678E  34  10          PSHS    X           1267  6790  86  20          LDA     #'          1268  6792  BD  FBBB          JSR     OUTCHA      1269  6795  8E  6021          LDX     #CLSTH      1270  6798  C6  02          LDB     #2          1271  679A  A6  80  DCLOP1  LDA     ,X+         1272  679C  17  FF7E          LBSR    DB2ASC      1273  679F  5A            DECB          1274  67A0  26  F8          BNE     DCLOP1      1275  67A2  86  20          LDA     #'          1276  67A4  BD  FBBB          JSR     OUTCHA      1277  67A7  C6  02          LDB     #2          1278  67A9  A6  80  DCLOP2  LDA     ,X+         1279  67AB  17  FF6F          LBSR    DB2ASC      1280  67AE  5A            DECB          1281  67AF  26  F8          BNE     DCLOP2      1282  67B1  35  90          PULS    X,PC        1283        1284        **************************************************1285        *========== parameter ==========1286  67B3  40    CMD0    FCB     $40,$00,$00,$00,$00,$95 '@    1287  67B9  41    CMD1    FCB     $41,$00,$00,$00,$00,$FF 'A    1288  67BF  51    CMD17   FCB     $51,$00,$00,$00,$00,$FF 'Q    1289  67C5  58    CMD24   FCB     $58,$00,$00,$00,$00,$FF 'X    1290  67CB  48    CMD8    FCB     $48,$00,$00,$01,$AA,$87 'H    1291  67D1  7A    CMD58   FCB     $7A,$00,$00,$00,$00,$FF 'z    1292  67D7  77    CMD55   FCB     $77,$00,$00,$00,$00,$FF 'w    1293  67DD  69    ACMD41  FCB     $69,$40,$FF,$80,$00,$FF 'i    1294  67E3  49    CMD9    FCB     $49,$00,$00,$00,$00,$FF 'I    1295        *1296  67E9  43      MCMD0   FCC     /CMD0/,$D,$A    1297  67EF  04            FCB     4           1298  67F0  43      MCMD8   FCC     /CMD8/,$D,$A    1299  67F6  04            FCB     4           1300  67F7  43      MCMD58  FCC     /CMD58/,$D,$A   1301  67FE  04            FCB     4           1302  67FF  43      MCMD55  FCC     /CMD55/,$D,$A   1303  6806  04            FCB     4           1304  6807  41      MCMD41  FCC     /ACMD41/,$D,$A    1305  680F  04            FCB     4           1306  6810  43      MCMD9   FCC     /CMD9/,$D,$A    1307  6816  04            FCB     4           1308        *1309  6817  0D      MSMENU1 FCC     $0D,$0A,/1:Read Sct, 2:Write Sct, 3:Get SD data, 4:SD Init, 5:Disp MBR, /   1310  6858  04            FCB     4           1311  6859  0D      MSMENU2 FCC     $0D,$0A,/6:Disp BPB, 7:Disp FAT, 8:Disp DIR, 9:Load FILE, 0:End : /   1312  6894  04            FCB     4           1313  6895  53      MSSCT   FCC     /SctNo: /   1314  689C  04            FCB     4           1315  689D  57      MSWROK  FCC     /Write OK?: /   1316  68A8  04            FCB     4           1317  68A9  0D      MSSD0   FCC     $0D,$0A,/SD Card/,$0D,$0A   1318  68B4  04            FCB     4           1319  68B5  0D      MSSD1   FCC     $0D,$0A,/SDHC Card/,$0D,$0A   1320  68C2  04            FCB     4           1321  68C3  0D      MSINIT  FCC     $0D,$0A,$0D,$0A,/SD Card initializing.../   1322  68DE  04            FCB     4           1323  68DF  53      MERR    FCC     /SD Initialize error!/,$0D,$0A    1324  68F5  04            FCB     4           1325  68F6  49      MSERR   FCC     /Input error!/,$0D,$0A    1326  6904  04            FCB     4           1327  6905  0D      MSOFS   FCC     $0D,$0A,/Sector no is:/,$0D,$0A   1328  6916  04            FCB     4           1329  6917  0D      MSBPB   FCC     $0D,$0A,/ BPB: /    1330  691F  04            FCB     4           1331  6920  0D      MSFAT   FCC     $0D,$0A,/ FAT: /    1332  6928  04            FCB     4           1333  6929  0D      MSDIR   FCC     $0D,$0A,/ DIR: /    1334  6931  04            FCB     4           1335  6932  0D      MSCL2   FCC     $0D,$0A,/ 1stCLUSTER: /   1336  6941  04            FCB     4           1337  6942  0D      MSINFL  FCC     $0D,$0A,/Select File No : /   1338  6955  04            FCB     4           1339        1340        **************************************************1341  6956  FF    INPBUF  RMB     8           1342        1343          END     START        0 error(s),  0 warning(s) is detected. Label addressACMD41  67DD  AD1     669C  AD2     66AD  AD3     66B7  AD4     66BDADD42   6696  ASC411  6169  ASCMD41 615C  BI21    65FD  BI22    6603BUSY    64FF  CALCH1  65CF  CALCHC  65C6  CALCSD  65BC  CKRS    64F2CL1     6643  CLEND   6653  CLLOP   664E  CLOP    6621  CLSTH   6021CLSTL   6023  CMD0    67B3  CMD1    67B9  CMD17   67BF  CMD24   67C5CMD55   67D7  CMD58   67D1  CMD8    67CB  CMD9    67E3  CPY1    6516CPY2    64A9  CRLF    6612  CVBEND  6690  CVBIN   667E  CVERR   6693CVT1    665C  DB2     672C  DB2ASC  671D  DBLOP   6723  DCLOP1  679ADCLOP2  67A9  DSEND   678C  DSLOP1  675C  DSLOP2  6771  DSPB1   6552DSPB2   6554  DSPB3   6565  DSPBIN  65E9  DSPBPB  634A  DSPBUF  6548DSPC1   63D6  DSPCLS  678E  DSPDIR  636E  DSPEND  63F3  DSPFAT  635CDSPFL1  6382  DSPFL2  638F  DSPFL3  639A  DSPFL4  63A9  DSPMBR  62F0DSPSIZ  6738  DSPYMD  66D7  DSS1    6751  DSS12   6765  DSS13   676ADSS14   676F  DSS2    677A  DSS3    677F  DYMD1   66E9  DYMD2   66F8EEND    667D  EREND0  6676  EREND1  6678  GET1    62FB  GET2    62FDGET8CH  661D  GETBPB  6331  GETD1   6586  GETDAT  6582  GETMBR  630EGETSD   624F  GPLOP   6314  GPLOP2  633C  GR00    60D4  GR2580  6196GR2581  61AD  GR2582  61AF  GR410   6171  GR550   6152  GR580   6128GR581   6132  GR582   6134  GR80    60F8  GR81    610A  GR90    6262GR91    6271  ILOP1   61D2  ILOP2   61E5  ILOP3   61FF  ILOP4   622DINCHA   FBB8  INEND   662F  INIT    604D  INPBUF  6956  INSCT   659CISTT    60BA  LD1     6412  LD2     641A  LD3     6432  LD4     643DLD5     6449  LD51    6457  LD52    645F  LD53    6467  LD6     6473LDFILE  63F4  LDLOP   6407  MAIN    6029  MCMD0   67E9  MCMD41  6807MCMD55  67FF  MCMD58  67F7  MCMD8   67F0  MCMD9   6810  MEN1    6066MEN2    606E  MEN3    6076  MEN4    607E  MEN5    6085  MEN6    608DMEN7    6095  MEN8    609D  MEN9    60A5  MENU    604F  MERR    68DFMSBPB   6917  MSCL2   6932  MSDIR   6929  MSERR   68F6  MSFAT   6920MSINFL  6942  MSINIT  68C3  MSMENU1 6817  MSMENU2 6859  MSOFS   6905MSSCT   6895  MSSD0   68A9  MSSD1   68B5  MSWROK  689D  OKEND   62DCOUTCHA  FBBB  PBCTL   FD9F  PBDAT   FD9E  PSEND   66D4  PSLOP   66C9PSTRNG  66C7  RD1     6525  RD1SCT  650D  RD2     652C  RD3     653CRESDAT  6007  RPT41   613D  RWBUF   6E00  SC01    60CB  SC2581  618ESC551   614A  SC581   6120  SC80    60F0  SC91    625A  SCLOP1  6291SCLOP2  62A4  SCLOP3  62B7  SCLOP4  62CA  SCMD0   60C3  SCMD258 6181SCMD55  613D  SCMD58  6113  SCMD8   60E3  SCTBPB  6009  SCTCLT  6015SCTDIR  6011  SCTFAT  600D  SCTN0   6003  SCTN1   6004  SCTN2   6005SCTN3   6006  SCTPCL  6019  SD1     61C3  SDERR   62D6  SDHC    6008SDINIT  60AD  SDRD    62DD  SDW1    64B8  SDW2    64C3  SDWR1   649ASDWRT   648A  SELOP   6326  SETCKH  65E0  SETCKL  65D7  SETSCT  65A4SETSNO  6320  SFLOP   663C  SFT1    65B2  SKP1    6211  SKP2    6246SNDD1   656D  SNDDAT  6566  SNDDT1  64E4  START   6000  STTADR  6000VN      6002  WFSIZ   601D  WK1     6025  WK2     6027  WMDY    601A
SDHC8FM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390


リストが長いので今回は縦スクロール付きにしてみました。「全選択」ボタンがありませんが、リスト中でダブルクリックしておいてCtrl-Cでコピーできます。