Subversion Repositories pentevo

Rev

Rev 551 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 551 Rev 636
Line 60... Line 60...
60
        .DB     "    ????   ",0
60
        .DB     "    ????   ",0
61
FL_EMPTY:
61
FL_EMPTY:
62
        .DB     "   empty   ",0
62
        .DB     "   empty   ",0
63
FL_ZXBAS48:
63
FL_ZXBAS48:
64
        .DB     $A8,$02,$99,$0C ;0C9902A8
64
        .DB     $A8,$02,$99,$0C ;0C9902A8
65
        .DB     "zx basic48 ",0
65
        .DB     "ZX Basic48 ",0
66
FL_ZXBAS128:
66
FL_ZXBAS128:
67
        .DB     $C8,$59,$C0,$83 ;83C059C8
67
        .DB     $C8,$59,$C0,$83 ;83C059C8
68
        .DB     "zx basic128",0
68
        .DB     "ZX Basic128",0
69
FL_TRDOS:
69
FL_TRDOS:
70
        .DB     $71,$06,$7A,$7A ;7A7A0671
70
        .DB     $71,$06,$7A,$7A ;7A7A0671
71
        .DB     "tr-dos     ",0
71
        .DB     "TR-DOS     ",0
72
FL_ALCOGLUKPEN:
72
FL_ALCOGLUKPEN:
73
        .DB     $44,$6F,$D7,$87 ;87D76F44
73
        .DB     $44,$6F,$D7,$87 ;87D76F44
74
        .DB     "alcoglukpen",0
74
        .DB     "AlCoGLUKpen",0
75
FL_HEGLUK:
-
 
76
        .DB     "HEGL"
-
 
77
        .DB     "hegluk     ",0
-
 
78
FL_EVODOS:
75
FL_EMPT2:
79
        .DB     "EVOD"
-
 
80
        .DB     "evodos     ",0
-
 
81
FL_ADDONS:
-
 
82
        .DB     "ADDO"
-
 
83
        .DB     "addons     ",0
-
 
84
FL_RST08:
-
 
85
        .DB     "RST_"
-
 
86
        .DB     "rst_08     ",0
76
        .DB     $AD,$33,$52,$BE ;BE5233AD
87
FL_PROF13:
-
 
88
        .DB     "PROF"
-
 
89
        .DB     "prof-rom   ",0
77
        .DB     " * empty*  ",0
90
FL_QC3:
78
FL_QC3:
91
        .DB     "QC 3"
79
        .DB     "QC 3"
92
        .DB     "qc3.xx     ",0
80
        .DB     "QC3.xx     ",0
93
FL_ATM2CPM:
81
FL_ATM2CPM:
94
        .DB     $1E,$65,$1E,$B3 ;B31E651E
82
        .DB     $1E,$65,$1E,$B3 ;B31E651E
95
        .DB     "atm2_cpm   ",0
83
        .DB     "ATM2_CPM   ",0
96
FL_XBIOSMENU:
84
FL_XBIOSMENU:
97
        .DB     $BC,$A4,$2C,$29 ;292CA4BC
85
        .DB     $BC,$A4,$2C,$29 ;292CA4BC
98
        .DB     "xbios stmnu",0
86
        .DB     "xBIOS stmnu",0
99
FL_VTRDOS:
87
FL_VTRDOS:
100
        .DB     $27,$2E,$23,$68 ;68232E27
88
        .DB     $27,$2E,$23,$68 ;68232E27
101
        .DB     "vtr-dos    ",0
89
        .DB     "vTR-dos    ",0
-
 
90
FL_TSBIOS:
-
 
91
        .DB     $FF,$63,$9B,$15 ;159B63FF
-
 
92
        .DB     "TS-BIOS    ",0
-
 
93
FL_PROFKA:
-
 
94
        .DB     "PROFKA     ",0
102
;
95
;
103
MSG_FP_DIR:
96
MSG_FP_DIR:
104
        .DB     " <DIR>",$B3,0
97
        .DB     " <DIR>",$B3,0
105
;
98
;
106
;
99
;
Line 404... Line 397...
404
 
397
 
405
        RCALL   CRC32_INIT
398
        RCALL   CRC32_INIT
406
        CLR     COUNT
399
        CLR     COUNT
407
        CLR     WH
400
        CLR     WH
408
        CLR     TMP2
401
        CLR     TMP2
409
FL_DET_ROM_6:
402
FL_DET_ROM_00:
410
        STH     FLSH_COUNT,COUNT
403
        STH     FLSH_COUNT,COUNT
411
        STH     FLSH_ADR1,WH
404
        STH     FLSH_ADR1,WH
412
        STH     FLSH_ADR2,TMP2
405
        STH     FLSH_ADR2,TMP2
413
        LDIZ    FL_UNKNOWN*2
406
        LDIZ    FL_UNKNOWN*2
414
        STSZ    FL_TMP0
407
        STSZ    FL_TMP0
-
 
408
        SER     COUNT
415
 
409
 
416
        LDIZ    FL_BUFFER
410
        LDIZ    FL_BUFFER
417
        LDIX    $0400
411
        LDIX    $0400
418
        SER     COUNT
-
 
419
        RCALL   F_READFLASH
412
        RCALL   F_READFLASH
420
        STS     FL_TMP2,COUNT
413
        STS     FL_TMP2,COUNT
421
 
414
 
422
        GETMEM  4
415
        GETMEM  4
-
 
416
        LDIZ    FL_BUFFER+$00FF
-
 
417
        LD      DATA,Z+
-
 
418
        CPI     DATA,$02
-
 
419
        BRNE    FL_DET_ROM_10
-
 
420
        LD      DATA,Z+
-
 
421
        CPI     DATA,$01
-
 
422
        BRNE    FL_DET_ROM_11
-
 
423
        ADIW    ZL,1
-
 
424
        LD      DATA,Z+
-
 
425
        CPI     DATA,$C9
-
 
426
        BRNE    FL_DET_ROM_11
-
 
427
        LDIZ    FL_PROFKA*2
-
 
428
        RJMP    FL_DET_ROM_12
-
 
429
 
-
 
430
FL_DET_ROM_10:
-
 
431
        CPI     DATA,$14
-
 
432
        BRNE    FL_DET_ROM_11
-
 
433
        LD      DATA,Z+
-
 
434
        CPI     DATA,$01
-
 
435
        BRNE    FL_DET_ROM_11
-
 
436
        LD      DATA,Z+
-
 
437
        CPI     DATA,$06
-
 
438
        BRNE    FL_DET_ROM_11
-
 
439
        LDIZ    FL_PROFKA*2
-
 
440
        RJMP    FL_DET_ROM_12
-
 
441
 
-
 
442
FL_DET_ROM_11:
423
        LDIZ    FL_BUFFER+$0096
443
        LDIZ    FL_BUFFER+$0096
424
        LDIX    $016F
444
        LDIX    $016F
425
        RCALL   RAM_CRC32
445
        RCALL   RAM_CRC32
426
        LDIZ    FL_ZXBAS48*2
446
        LDIZ    FL_ZXBAS48*2
427
        RCALL   FL_CRC_CMP
447
        RCALL   FL_CRC_CMP
428
        BREQ    FL_DET_ROM_1
448
        BREQ    FL_DET_ROM_12
429
 
449
 
430
        LDIZ    FL_BUFFER+$0080
450
        LDIZ    FL_BUFFER+$0080
431
        LDIX    $0080
451
        LDIX    $0080
432
        RCALL   RAM_CRC32
452
        RCALL   RAM_CRC32
433
        LDIZ    FL_ZXBAS128*2
453
        LDIZ    FL_ZXBAS128*2
434
        RCALL   FL_CRC_CMP
454
        RCALL   FL_CRC_CMP
435
        BREQ    FL_DET_ROM_1
455
        BREQ    FL_DET_ROM_12
436
 
456
 
437
        LDIZ    FL_BUFFER+$0363
457
        LDIZ    FL_BUFFER+$0363
438
        LDIX    $0008
458
        LDIX    $0008
439
        RCALL   RAM_CRC32
459
        RCALL   RAM_CRC32
440
        LDIZ    FL_VTRDOS*2
460
        LDIZ    FL_VTRDOS*2
441
        RCALL   FL_CRC_CMP
461
        RCALL   FL_CRC_CMP
442
        BREQ    FL_DET_ROM_1
462
        BREQ    FL_DET_ROM_12
443
 
463
 
444
        LDIZ    FL_BUFFER+$0000
464
        LDIZ    FL_BUFFER+$0000
445
        LDIX    $0007
465
        LDIX    $0007
446
        RCALL   RAM_CRC32
466
        RCALL   RAM_CRC32
447
        LDIZ    FL_XBIOSMENU*2
467
        LDIZ    FL_XBIOSMENU*2
448
        RCALL   FL_CRC_CMP
468
        RCALL   FL_CRC_CMP
449
        BREQ    FL_DET_ROM_1
469
        BREQ    FL_DET_ROM_12
-
 
470
 
-
 
471
        LDIZ    FL_BUFFER+$0000
-
 
472
        LDIX    $0010
-
 
473
        RCALL   RAM_CRC32
-
 
474
        LDIZ    FL_TSBIOS*2
-
 
475
        RCALL   FL_CRC_CMP
-
 
476
        BREQ    FL_DET_ROM_12
450
 
477
 
451
        LDIZ    FL_BUFFER+$0000
478
        LDIZ    FL_BUFFER+$0000
452
        LDIX    $0038
479
        LDIX    $0038
453
        RCALL   RAM_CRC32
480
        RCALL   RAM_CRC32
454
        LDIZ    FL_ATM2CPM*2
481
        LDIZ    FL_ATM2CPM*2
455
        RCALL   FL_CRC_CMP
482
        RCALL   FL_CRC_CMP
456
        BRNE    FL_DET_ROM_2
483
        BRNE    FL_DET_ROM_13
457
FL_DET_ROM_1:
484
FL_DET_ROM_12:
458
        STSZ    FL_TMP0
485
        STSZ    FL_TMP0
459
FL_DET_ROM_2:
486
FL_DET_ROM_13:
460
        FREEMEM 4
487
        FREEMEM 4
461
 
488
 
462
        CLR     WL
489
        CLR     WL
463
        LDH     WH,FLSH_ADR1
490
        LDH     WH,FLSH_ADR1
464
        ADDI    WH,$04
491
        ADDI    WH,$04
Line 467... Line 494...
467
        LDI     TEMP,FLASH_CTRL
494
        LDI     TEMP,FLASH_CTRL
468
        LDI     DATA,0B00001011
495
        LDI     DATA,0B00001011
469
        RCALL   FPGA_REG
496
        RCALL   FPGA_REG
470
        LDS     COUNT,FL_TMP2
497
        LDS     COUNT,FL_TMP2
471
        RCALL   F_IN
498
        RCALL   F_IN
472
        RJMP    FL_CHKEMPT2
499
        RJMP    FL_DET_ROM_21
473
FL_CHKEMPT1:
500
FL_DET_ROM_20:
474
        RCALL   FPGA_SAME_REG
501
        RCALL   FPGA_SAME_REG
475
FL_CHKEMPT2:
502
FL_DET_ROM_21:
476
        AND     COUNT,DATA
503
        AND     COUNT,DATA
477
        RCALL   CRC32_UPDATE
504
        RCALL   CRC32_UPDATE
478
        ADIW    WL,1
505
        ADIW    WL,1
479
        SBIW    XL,1
506
        SBIW    XL,1
480
        BRNE    FL_CHKEMPT1
507
        BRNE    FL_DET_ROM_20
481
        STS     FL_TMP2,COUNT
508
        STS     FL_TMP2,COUNT
482
 
509
 
483
        LDH     WH,FLSH_ADR1
510
        LDH     WH,FLSH_ADR1
484
        ADDI    WH,$3C
511
        ADDI    WH,$3C
485
        LDH     TMP2,FLSH_ADR2
512
        LDH     TMP2,FLSH_ADR2
486
        LDIZ    FL_BUFFER
513
        LDIZ    FL_BUFFER
487
        LDIX    $0400
514
        LDIX    $0400
488
        RCALL   F_READFLASH
515
        RCALL   F_READFLASH
489
        LDIZ    FL_EMPTY*2
516
        LDIZ    FL_EMPTY*2
490
        INC     COUNT
517
        INC     COUNT
491
        BRNE    FL_DET_ROM_3
518
        BRNE    FL_DET_ROM_30
492
        STSZ    FL_TMP0
519
        STSZ    FL_TMP0
493
FL_DET_ROM_3:
520
FL_DET_ROM_30:
494
 
521
 
495
        GETMEM  4
522
        GETMEM  4
496
        LDIZ    FL_BUFFER+$03F8
-
 
497
        LDD     R0,Z+0
-
 
498
        LDD     R1,Z+1
-
 
499
        LDD     R2,Z+2
-
 
500
        LDD     R3,Z+3
-
 
501
        LDIZ    FL_HEGLUK*2
-
 
502
        RCALL   FL_CRC_CMP
-
 
503
        BREQ    FL_DET_ROM_4
-
 
504
        LDIZ    FL_EVODOS*2
-
 
505
        RCALL   FL_CRC_CMP
-
 
506
        BREQ    FL_DET_ROM_4
-
 
507
        LDIZ    FL_ADDONS*2
-
 
508
        RCALL   FL_CRC_CMP
-
 
509
        BREQ    FL_DET_ROM_4
-
 
510
        LDIZ    FL_RST08*2
-
 
511
        RCALL   FL_CRC_CMP
-
 
512
        BREQ    FL_DET_ROM_4
-
 
513
        LDIZ    FL_PROF13*2
-
 
514
        RCALL   FL_CRC_CMP
-
 
515
        BREQ    FL_DET_ROM_4
-
 
516
 
523
 
517
        LDIZ    FL_BUFFER+$019B
524
        LDIZ    FL_BUFFER+$019B
518
        LDD     R0,Z+0
525
        LDD     R0,Z+0
519
        LDD     R1,Z+1
526
        LDD     R1,Z+1
520
        LDD     R2,Z+2
527
        LDD     R2,Z+2
521
        LDD     R3,Z+3
528
        LDD     R3,Z+3
522
        LDIZ    FL_QC3*2
529
        LDIZ    FL_QC3*2
523
        RCALL   FL_CRC_CMP
530
        RCALL   FL_CRC_CMP
524
        BREQ    FL_DET_ROM_4
531
        BREQ    FL_DET_ROM_32
525
 
532
 
526
        LDIZ    FL_BUFFER+$012F
533
        LDIZ    FL_BUFFER+$012F
527
        LDIX    $0209
534
        LDIX    $0209
528
        RCALL   RAM_CRC32
535
        RCALL   RAM_CRC32
529
        LDIZ    FL_ALCOGLUKPEN*2
536
        LDIZ    FL_ALCOGLUKPEN*2
530
        RCALL   FL_CRC_CMP
537
        RCALL   FL_CRC_CMP
531
        BREQ    FL_DET_ROM_4
538
        BREQ    FL_DET_ROM_32
-
 
539
        LDIZ    FL_EMPT2*2
-
 
540
        RCALL   FL_CRC_CMP
-
 
541
        BRNE    FL_DET_ROM_31
-
 
542
        LDS     DATA,FL_TMP2
-
 
543
        INC     DATA
-
 
544
        BREQ    FL_DET_ROM_32
532
 
545
 
-
 
546
FL_DET_ROM_31:
533
        LDIZ    FL_BUFFER+$03B0
547
        LDIZ    FL_BUFFER+$03B0
534
        LDIX    $0040
548
        LDIX    $0040
535
        RCALL   RAM_CRC32
549
        RCALL   RAM_CRC32
536
        LDIZ    FL_TRDOS*2
550
        LDIZ    FL_TRDOS*2
537
        RCALL   FL_CRC_CMP
551
        RCALL   FL_CRC_CMP
538
        BRNE    FL_DET_ROM_5
552
        BRNE    FL_DET_ROM_33
539
FL_DET_ROM_4:
553
FL_DET_ROM_32:
540
        STSZ    FL_TMP0
554
        STSZ    FL_TMP0
541
FL_DET_ROM_5:
555
FL_DET_ROM_33:
-
 
556
 
542
        FREEMEM 4
557
        FREEMEM 4
543
 
558
 
-
 
559
        LDIZ    FL_BUFFER+$03F8
-
 
560
        LDI     COUNT,6
-
 
561
FL_DET_ROM_34:
-
 
562
        LD      DATA,Z+
-
 
563
        CPI     DATA,$20
-
 
564
        BRCS    FL_DET_ROM_37
-
 
565
        CPI     DATA,$7F
-
 
566
        BRCC    FL_DET_ROM_37
-
 
567
        DEC     COUNT
-
 
568
        BRNE    FL_DET_ROM_34
-
 
569
 
-
 
570
        LDIZ    FL_BUFFER+$03F8
-
 
571
        LDIX    FL_CONTENT+5
-
 
572
        LDH     DATA,FLSH_COUNT
-
 
573
        LDI     TEMP,16
-
 
574
        MUL     DATA,TEMP
-
 
575
        ADD     XL,R0
-
 
576
        ADC     XH,R1
-
 
577
        LDI     COUNT,6
-
 
578
FL_DET_ROM_35:
-
 
579
        LD      DATA,Z+
-
 
580
        ST      X+,DATA
-
 
581
        DEC     COUNT
-
 
582
        BRNE    FL_DET_ROM_35
-
 
583
        LDI     COUNT,5
-
 
584
FL_DET_ROM_36:
-
 
585
        ST      X+,NULL
-
 
586
        DEC     COUNT
-
 
587
        BRNE    FL_DET_ROM_36
-
 
588
        RJMP    FL_DET_ROM_40
-
 
589
 
-
 
590
FL_DET_ROM_37:
544
        LDSZ    FL_TMP0
591
        LDSZ    FL_TMP0
545
        LDIX    FL_CONTENT+5
592
        LDIX    FL_CONTENT+5
546
        LDH     DATA,FLSH_COUNT
593
        LDH     DATA,FLSH_COUNT
547
        LDI     TEMP,16
594
        LDI     TEMP,16
548
        MUL     DATA,TEMP
595
        MUL     DATA,TEMP
549
        ADD     XL,R0
596
        ADD     XL,R0
550
        ADC     XH,R1
597
        ADC     XH,R1
551
        LDI     COUNT,11
598
        LDI     COUNT,11
552
FL_DET_ROM_8:
599
FL_DET_ROM_38:
553
        LPM     DATA,Z+
600
        LPM     DATA,Z+
554
        ST      X+,DATA
601
        ST      X+,DATA
555
        DEC     COUNT
602
        DEC     COUNT
556
        BRNE    FL_DET_ROM_8
603
        BRNE    FL_DET_ROM_38
-
 
604
 
-
 
605
FL_DET_ROM_40:
557
        RCALL   FL_SHOWCONTENT
606
        RCALL   FL_SHOWCONTENT
558
 
607
 
559
        CALL    INKEY
608
        CALL    INKEY
560
        BREQ    FL_DET_ROM_7
609
        BREQ    FL_DET_ROM_41
561
        SBRC    TEMP,PS2K_BIT_EXTKEY
610
        SBRC    TEMP,PS2K_BIT_EXTKEY
562
        RJMP    FL_DET_ROM_7
611
        RJMP    FL_DET_ROM_41
563
        CPI     DATA,KEY_ESC
612
        CPI     DATA,KEY_ESC
564
        BRNE    FL_DET_ROM_7
613
        BRNE    FL_DET_ROM_41
565
        RJMP    FLSH_EXIT
614
        RJMP    FLSH_EXIT
566
FL_DET_ROM_7:
615
FL_DET_ROM_41:
567
        LDH     WH,FLSH_ADR1
616
        LDH     WH,FLSH_ADR1
568
        LDH     TMP2,FLSH_ADR2
617
        LDH     TMP2,FLSH_ADR2
569
        LDI     TEMP,$40
618
        LDI     TEMP,$40
570
        ADD     WH,TEMP
619
        ADD     WH,TEMP
571
        ADC     TMP2,NULL
620
        ADC     TMP2,NULL
572
        LDH     COUNT,FLSH_COUNT
621
        LDH     COUNT,FLSH_COUNT
573
        INC     COUNT
622
        INC     COUNT
574
        SBRS    COUNT,5 ; COUNT==32 ?
623
        SBRS    COUNT,5 ; COUNT==32 ?
575
        RJMP    FL_DET_ROM_6
624
        RJMP    FL_DET_ROM_00
576
 
625
 
577
        RCALL   CRC32_RELEASE
626
        RCALL   CRC32_RELEASE
578
        LDIZ    MSG_FL_CRC*2
627
        LDIZ    MSG_FL_CRC*2
579
        CALL    SCR_PRINTSTRZ
628
        CALL    SCR_PRINTSTRZ
580
        LDH     DATA,CRC32_3
629
        LDH     DATA,CRC32_3
Line 910... Line 959...
910
        CALL    FPGA_REG
959
        CALL    FPGA_REG
911
 
960
 
912
        LDIZ    MLMSG_FL_VERIFY*2
961
        LDIZ    MLMSG_FL_VERIFY*2
913
        CALL    SCR_PRINTMLSTR
962
        CALL    SCR_PRINTMLSTR
914
 
963
 
-
 
964
        STH     FLSH_TEMP3,NULL
915
        LDI     COUNT,0
965
        LDI     COUNT,0
916
FL_EX40:STH     FLSH_COUNT,COUNT
966
FL_EX40:STH     FLSH_COUNT,COUNT
917
        LDIZ    FL_CONTENT
967
        LDIZ    FL_CONTENT
918
        LDI     TEMP,16
968
        LDI     TEMP,16
919
        MUL     TEMP,COUNT
969
        MUL     TEMP,COUNT
Line 970... Line 1020...
970
        ROR     WH
1020
        ROR     WH
971
        LDI     TEMP,FLASH_HIADDR
1021
        LDI     TEMP,FLASH_HIADDR
972
        MOV     DATA,TMP2
1022
        MOV     DATA,TMP2
973
        CALL    FPGA_REG
1023
        CALL    FPGA_REG
974
        STH     FLSH_TEMP2,NULL
1024
        STH     FLSH_TEMP2,NULL
975
        STH     FLSH_TEMP3,NULL
-
 
976
        LDIX    1365 ;16384/12
1025
        LDIX    1365 ;16384/12
977
FL_EX45:STH     FLSH_TEMP0,XL
1026
FL_EX45:STH     FLSH_TEMP0,XL
978
        STH     FLSH_TEMP1,XH
1027
        STH     FLSH_TEMP1,XH
979
        PUSH    WH
1028
        PUSH    WH
980
        RCALL   NEXTSEC
1029
        RCALL   NEXTSEC
Line 1036... Line 1085...
1036
        LDIZ    MLMSG_FLRES0*2
1085
        LDIZ    MLMSG_FLRES0*2
1037
        CALL    SCR_PRINTMLSTR
1086
        CALL    SCR_PRINTMLSTR
1038
 
1087
 
1039
        LDIZ    MLMSG_FLRES1*2
1088
        LDIZ    MLMSG_FLRES1*2
1040
        LDH     DATA,FLSH_TEMP3
1089
        LDH     DATA,FLSH_TEMP3
-
 
1090
        TST     DATA
1041
        BREQ    FL_EX92
1091
        BREQ    FL_EX92
1042
        LDIZ    MLMSG_FLRES2*2
1092
        LDIZ    MLMSG_FLRES2*2
1043
FL_EX92:CALL    SCR_PRINTMLSTR
1093
FL_EX92:CALL    SCR_PRINTMLSTR
1044
 
1094
 
1045
        CALL    WAITKEY
1095
        CALL    WAITKEY