Changeset 4 in HXC_thomson_filesel for loader.c


Ignore:
Timestamp:
02/02/19 18:28:29 (3 years ago)
Author:
svn
Message:

Ajout TO9

File:
1 edited

Legend:

Unmodified
Added
Removed
  • loader.c

    r3 r4  
    9595        ret=go_trk255();
    9696        border(1);
    97 /*      dump16b(1,16,ret); */
    9897        border(2);
     98
     99        ret=string(0,0,"Checking Host mode...",21);
     100        ret=rd_sec(0);
     101        ret=dump16b(22,0,ret);
     102       
     103        if (buf[0]!='H') {
     104                string(0,2,"Fatal cannot setup Host mode...",31);
     105                while (1==1) ;
     106        }
     107
     108        string(0,1,buf,8);
     109        string(8,1,buf+8,12);
     110
    99111        ret=rd_lba(0,0);
    100112        lbaBeg_l=mk_16(buf[446+9],buf[446+8]);
     
    245257        hi_line(select+4,0xC7);
    246258
    247         irq();
    248259        while (1) {
    249260                i=getc();
     
    296307                        if (cfgnum==-1) {
    297308                                cls();
    298                                 string(0,2,"Sorry, no HXCSDFE.CFG found. read only..",40);
     309                                string(0,2,"fatal missing CFG",17);
    299310                                k=getc();
    300311                                cls();
     
    306317                        if (f_clusz<2) {
    307318                                cls();
    308                                 string(0,2,"Sorry, cluster size 1 is unsupported..",38);
     319                                string(0,2,"cluster size 1 is unsupported..",33);
    309320                                k=getc();
    310321                                cls();
     
    413424                                dump16b(0,24,ret);
    414425
    415                                 string(0,13,"Press a key...",14);
     426/*                              string(0,13,"Press a key...",14);
    416427
    417428                                k=getc();
    418 
     429*/
     430                                string(0,14,"Leaving host...",15);
    419431                               
    420                                 /* leave LBA (need 3 times) */
     432                                leave_lba();
     433                                /* also seek just in case... () */
    421434                                go_track(0);
    422                                 go_track(0);
    423                                 go_track(0);
    424 
    425                                 string(0,14,"... REBOOT ...",10);
     435
     436
     437                                string(0,15,"... REBOOT ...",10);
    426438                                /* and reset */
    427439                                {
     
    456468banner()
    457469{
    458         string(0,0,"HxC TO8 File selector by VitalMotion",38);
     470        string(0,0,"HxC TO File selector by VitalMotion",37);
    459471        string(0,2,"Select your File:\0",17);
    460472        return 0;
     
    641653{
    642654#asm
     655                LDA     $E000
     656                CMPA    #$44            | for WD floppy (ie TO9)
     657                BNE     go_norm
     658
     659                LDA     #$FF
     660                STA     $6051
     661                LDA    #127      | try to go -128 tracks...
     662                STA    _DKVAL
     663                CLR    _DKTRK
     664                LDA    #$40
     665                JSR    $E004
     666               
     667go_norm
    643668                LDA    #$20     | rech piste 0
    644669                STA    _DKOPC
     
    684709        p[13]=0xA5;
    685710        p[14]=0x08;
     711
     712        /* init fields with a read */
     713        wt_sec(0);
     714        i=rd_sec(1);
     715        return i;
     716}
     717
     718leave_lba(v)
     719int v;
     720{
     721        int i;
     722        char *p;
     723
     724        for (i=0x6300;i<0x6500;i++) {
     725                p=i;
     726                *p=0x00;
     727        }
     728        i=0x6300;p=i;
     729        p[0]='H';
     730        p[1]='x';
     731        p[2]='C';
     732        p[3]='F';
     733        p[4]='E';
     734        p[5]='D';
     735        p[6]='A';
     736        p[7]=0;
     737
     738        p[8]=0x02;
     739        p[9]=0x00;
     740        p[10]=0x00;
    686741
    687742        /* init fields with a read */
     
    833888}
    834889
     890/*
     891 * Physical read/write in 9sect/512byte
     892 */
     893
    835894rd_sec(sect)
    836895char sect;
     
    844903                PSHS   U,DP
    845904                LDX    #$6300
    846                 STX    $604F           | sector buffer 
     905                STX    $604F           | sector buffer
     906
     907                LDA     $E000
     908                CMPA    #$44            | for WD floppy (ie TO9)
     909                BNE     rd_TO8
     910                CLR     $6051
     911                LDA    #$FF
     912                STA    $E7D1
     913                LDA    #$02
     914                STA    _DKOPC
     915                JSR    $E004
     916                BRA    rd_sect_end
     917
     918rd_TO8
     919                LDA    #$02            | read sector (monitor)
    847920                JSR    $789D
    848921                JSR    $78A7
     
    856929                PULS   A               | E0EE
    857930                JSR    $78B9           | motor off
     931rd_sect_end
    858932                PULS   DP,U             
    859933                LDA    #$00
    860934                LDB    _DKERR
     935
    861936                TFR    D,X             | return in X           
    862937#endasm
     
    876951                LDX    #$6300
    877952                STX    $604F           | sector buffer 
     953
     954                LDA     $E000
     955                CMPA    #$44            | for WD floppy (ie TO9)
     956                BNE     wt_TO8
     957                CLR     $6051
     958                LDA    #$FF
     959                STA    $E7D1
     960                LDA    #$08
     961                STA    _DKOPC
     962                JSR    $E004
     963                BRA    wt_sect_end
     964
     965wt_TO8
     966
     967                LDA    #$08            | read sector (monitor)
    878968                JSR    $789D
    879969                JSR    $78A7
     
    887977                PULS   A               | E0EE
    888978                JSR    $78B9           | motor off
     979wt_sect_end
    889980                PULS   DP,U             
    890981                LDA    #$00
     
    895986}
    896987
    897 irq()
    898 {
    899 {
    900 #asm
    901 
    902 #endasm
    903 }
    904 }
    905 
    906 noirq()
    907 {
    908 {
    909 #asm
    910 
    911 #endasm
    912 }
    913 }
    914988
    915989getc()
     
    10851159    PULS U,PC   ; retour de fonction compatible mini C               
    10861160
     1161* MC09 internal functions/lib
     1162       
     1163_00001  PSHS    D,X,Y           multiply
     1164       
     1165        LDA     ,S
     1166        LDB     3,S
     1167        MUL
     1168        STB     4,S
     1169       
     1170        LDD     1,S
     1171        MUL
     1172        STB     5,S
     1173       
     1174        LDA     1,S
     1175        LDB     3,S
     1176        MUL
     1177        ADDA    4,S
     1178        ADDA    5,S
     1179       
     1180        LEAS    6,S
     1181        RTS
     1182       
     1183_00006  CMPX    #0              signed left shift
     1184        BMI     _06001
     1185 
     1186_06000  BEQ     _06009
     1187        LSLB
     1188        ROLA
     1189        LEAX    -1,X
     1190        BRA     _06000
     1191       
     1192_06001  BEQ     _06009
     1193        ASRA
     1194        RORB
     1195        LEAX    1,X
     1196        BRA     _06001
     1197       
     1198_06009  RTS
     1199_00008  CMPX    #0              sined right shift
     1200        BMI     _08001
     1201       
     1202_08000  BEQ     _08009
     1203        ASRA
     1204        RORB
     1205        LEAX    -1,X
     1206        BRA     _08000
     1207       
     1208_08001  BEQ     _08009
     1209        LSLB
     1210        ROLA
     1211        LEAX    1,X
     1212        BRA     _08001
     1213       
     1214_08009  RTS     
     1215_00009  CMPX    #0              unsined right shift
     1216        BMI     _09001
     1217       
     1218_09000  BEQ     _09009
     1219        LSRA
     1220        RORB
     1221        LEAX    -1,X
     1222        BRA     _09000
     1223       
     1224_09001  BEQ     _09009
     1225        LSLB
     1226        ROLA
     1227        LEAX    1,X
     1228        BRA     _09001
     1229       
     1230_09009  RTS     
    10871231       
    10881232BASE_TXT_ADR
     
    12431387        FCB     $0,$8,$14,$22,$41,$41,$7F,$0
    12441388
    1245 * MC09 internal functions/lib
    1246        
    1247 _00001  PSHS    D,X,Y           multiply
    1248        
    1249         LDA     ,S
    1250         LDB     3,S
    1251         MUL
    1252         STB     4,S
    1253        
    1254         LDD     1,S
    1255         MUL
    1256         STB     5,S
    1257        
    1258         LDA     1,S
    1259         LDB     3,S
    1260         MUL
    1261         ADDA    4,S
    1262         ADDA    5,S
    1263        
    1264         LEAS    6,S
    1265         RTS
    1266        
    1267 _00006  CMPX    #0              signed left shift
    1268         BMI     _06001
    1269  
    1270 _06000  BEQ     _06009
    1271         LSLB
    1272         ROLA
    1273         LEAX    -1,X
    1274         BRA     _06000
    1275        
    1276 _06001  BEQ     _06009
    1277         ASRA
    1278         RORB
    1279         LEAX    1,X
    1280         BRA     _06001
    1281        
    1282 _06009  RTS
    1283 _00008  CMPX    #0              sined right shift
    1284         BMI     _08001
    1285        
    1286 _08000  BEQ     _08009
    1287         ASRA
    1288         RORB
    1289         LEAX    -1,X
    1290         BRA     _08000
    1291        
    1292 _08001  BEQ     _08009
    1293         LSLB
    1294         ROLA
    1295         LEAX    1,X
    1296         BRA     _08001
    1297        
    1298 _08009  RTS     
    1299 _00009  CMPX    #0              unsined right shift
    1300         BMI     _09001
    1301        
    1302 _09000  BEQ     _09009
    1303         LSRA
    1304         RORB
    1305         LEAX    -1,X
    1306         BRA     _09000
    1307        
    1308 _09001  BEQ     _09009
    1309         LSLB
    1310         ROLA
    1311         LEAX    1,X
    1312         BRA     _09001
    1313        
    1314 _09009  RTS     
     1389
    13151390#endasm
    13161391}
Note: See TracChangeset for help on using the changeset viewer.