home *** CD-ROM | disk | FTP | other *** search
-
- ; Storm C Compiler
- ; Work:Sources/C/Bin2H/Bin2H.c
-
-
- XREF _exit
- XREF _ftell
- XREF _fseek
- XREF _fread
- XREF _fprintf
- XREF _printf
- XREF _ferror
- XREF _fclose
- XREF _fopen
- XREF _fputs
- XREF _std__in
- XREF _std__out
- XREF _std__err
-
- SECTION ":0",CODE
-
-
- ;int StrCmpNC(char *string1, char *string2)
- XDEF _StrCmpNC
- _StrCmpNC
- L55 EQU -2
- link a5,#L55
- movem.l d2/a2,-(a7)
- move.l $C(a5),a0
- move.l $8(a5),a1
- L41
- ;
- L42
- ;
- ; c1 = (((c1 = *string1++) >= 'a' && c1 <= 'z') ? c1 - ' ' : c
- move.b (a1)+,d1
- cmp.b #$61,d1
- blo.b L45
- L43
- cmp.b #$7A,d1
- bhi.b L45
- L44
- moveq #0,d0
- move.b d1,d0
- sub.l #$20,d0
- bra.b L46
- L45
- moveq #0,d0
- move.b d1,d0
- L46
- move.b d0,d1
- ; c2 = (((c2 = *string2++) >= 'a' && c2 <= 'z') ? c2 - ' ' : c
- move.b (a0)+,d0
- cmp.b #$61,d0
- blo.b L49
- L47
- cmp.b #$7A,d0
- bhi.b L49
- L48
- and.l #$FF,d0
- sub.l #$20,d0
- bra.b L50
- L49
- and.l #$FF,d0
- L50
- ; if (c1 != c2)
- cmp.b d0,d1
- beq.b L52
- L51
- ; return(-1);
- moveq #-1,d0
- movem.l (a7)+,d2/a2
- unlk a5
- rts
- L52
- tst.b d1
- beq.b L54
- L53
- tst.b d0
- bne.b L42
- L54
- ; return(0);
- moveq #0,d0
- movem.l (a7)+,d2/a2
- unlk a5
- rts
-
- ;int ConvertBinary()
- XDEF _ConvertBinary
- _ConvertBinary
- L75 EQU -$1C
- link a5,#L75
- movem.l d2-d4,-(a7)
- L60
- ; unsigned long rpos = 0;
- moveq #0,d4
- ; while (rlen = fread(Buffer,1,LINESIZE,infile))
- bra L73
- L61
- ;
- ; if (ferror(infile))
- move.l _infile(a4),-(a7)
- bsr _ferror
- addq.w #4,a7
- tst.l d0
- beq.b L63
- L62
- ; if (ferror(infile)) return CONV_ERROR_RE
- moveq #1,d0
- movem.l (a7)+,d2-d4
- unlk a5
- rts
- L63
- ; fputs("\n\t",outfile);
- move.l _outfile(a4),-(a7)
- move.l #L56,-(a7)
- bsr _fputs
- addq.w #$8,a7
- ; for (i = 0;
- moveq #0,d2
- bra.b L70
- L64
- ;
- ; rpos++;
- addq.l #1,d4
- ; fprintf(outfile,"0x%02x",*(Buffer+i));
- lea -$10(a5),a0
- moveq #0,d0
- move.b 0(a0,d2.l),d0
- move.l d0,-(a7)
- move.l #L57,-(a7)
- move.l _outfile(a4),-(a7)
- bsr _fprintf
- add.w #$C,a7
- ; if ((rpos != len) || i != rlen-1)
- cmp.l _len(a4),d4
- bne.b L66
- L65
- move.l d3,d0
- subq.l #1,d0
- cmp.l d0,d2
- beq.b L67
- L66
- ; fputs(",",outfile);
- move.l _outfile(a4),-(a7)
- move.l #L58,-(a7)
- bsr _fputs
- addq.w #$8,a7
- L67
- ; if (i != rlen-1)
- move.l d3,d0
- subq.l #1,d0
- cmp.l d0,d2
- beq.b L69
- L68
- ; if (i != rlen-1) fputs(" ",outfile);
- move.l _outfile(a4),-(a7)
- move.l #L59,-(a7)
- bsr _fputs
- addq.w #$8,a7
- L69
- addq.l #1,d2
- L70
- cmp.l d3,d2
- blo.b L64
- L71
- ; if (ferror(outfile))
- move.l _outfile(a4),-(a7)
- bsr _ferror
- addq.w #4,a7
- tst.l d0
- beq.b L73
- L72
- ; if (ferror(outfile)) return CONV_ERROR_
- moveq #2,d0
- movem.l (a7)+,d2-d4
- unlk a5
- rts
- L73
- move.l _infile(a4),-(a7)
- pea $10.w
- pea 1.w
- pea -$10(a5)
- bsr _fread
- add.w #$10,a7
- move.l d0,d3
- bne L61
- L74
- ; return(0);
- moveq #0,d0
- movem.l (a7)+,d2-d4
- unlk a5
- rts
-
- ;int ConvertASCII()
- XDEF _ConvertASCII
- _ConvertASCII
- L96 EQU -$1E
- link a5,#L96
- movem.l d2-d4,-(a7)
- L77
- ; unsigned long rpos = 0;
- moveq #0,d4
- ; while (rlen = fread(Buffer,1,LINESIZE,infile))
- bra L94
- L78
- ;
- ; if (ferror(infile))
- move.l _infile(a4),-(a7)
- bsr _ferror
- addq.w #4,a7
- tst.l d0
- beq.b L80
- L79
- ; if (ferror(infile)) return CONV_ERROR_RE
- moveq #1,d0
- movem.l (a7)+,d2-d4
- unlk a5
- rts
- L80
- ; fputs("\n\t",outfile);
- move.l _outfile(a4),-(a7)
- move.l #L56,-(a7)
- bsr _fputs
- addq.w #$8,a7
- ; for (i = 0;
- moveq #0,d2
- bra L91
- L81
- ;
- ; rpos++;
- addq.l #1,d4
- ; cbyte = Buffer[i];
- lea -$10(a5),a0
- move.b 0(a0,d2.l),d0
- ; if ((cbyte > 31) && (cbyte < 128))
- cmp.b #$1F,d0
- bls.b L84
- L82
- cmp.b #$80,d0
- bhs.b L84
- L83
- ; fprintf(outfile,"'%c'",cbyte);
- and.l #$FF,d0
- move.l d0,-(a7)
- move.l #L76,-(a7)
- move.l _outfile(a4),-(a7)
- bsr _fprintf
- add.w #$C,a7
- bra.b L85
- L84
- ; fprintf(outfile,"0x%02x",cbyte);
- and.l #$FF,d0
- move.l d0,-(a7)
- move.l #L57,-(a7)
- move.l _outfile(a4),-(a7)
- bsr _fprintf
- add.w #$C,a7
- L85
- ; if ((rpos != len) || i != rlen-1)
- cmp.l _len(a4),d4
- bne.b L87
- L86
- move.l d3,d0
- subq.l #1,d0
- cmp.l d0,d2
- beq.b L88
- L87
- ; fputs(",",outfile);
- move.l _outfile(a4),-(a7)
- move.l #L58,-(a7)
- bsr _fputs
- addq.w #$8,a7
- L88
- ; if (i != rlen-1)
- move.l d3,d0
- subq.l #1,d0
- cmp.l d0,d2
- beq.b L90
- L89
- ; if (i != rlen-1) fputs(" ",outfile);
- move.l _outfile(a4),-(a7)
- move.l #L59,-(a7)
- bsr _fputs
- addq.w #$8,a7
- L90
- addq.l #1,d2
- L91
- cmp.l d3,d2
- blo L81
- L92
- ; if (ferror(outfile))
- move.l _outfile(a4),-(a7)
- bsr _ferror
- addq.w #4,a7
- tst.l d0
- beq.b L94
- L93
- ; if (ferror(outfile)) return CONV_ERROR_
- moveq #2,d0
- movem.l (a7)+,d2-d4
- unlk a5
- rts
- L94
- move.l _infile(a4),-(a7)
- pea $10.w
- pea 1.w
- pea -$10(a5)
- bsr _fread
- add.w #$10,a7
- move.l d0,d3
- bne L78
- L95
- ; return(0);
- moveq #0,d0
- movem.l (a7)+,d2-d4
- unlk a5
- rts
-
- ;int main(int argc,char **argv)
- XDEF _main
- _main
- L137 EQU -6
- link a5,#L137
- movem.l d2-d4/a2,-(a7)
- movem.l $8(a5),d3/a2
- L110
- ; char Mode = BINARY;
- moveq #0,d4
- ; int conv = 0;
- moveq #0,d2
- ; printf("Bin2H v%d.%02d (c) 1999 by Basty/Seasons (%s, %s).\n\n",
- move.l #L97,-(a7)
- move.l #L98,-(a7)
- clr.l -(a7)
- pea 1.w
- move.l #L99,-(a7)
- bsr _printf
- add.w #$14,a7
- ; if (argc != 3 && argc != 4)
- cmp.l #3,d3
- beq.b L113
- L111
- cmp.l #4,d3
- beq.b L113
- L112
- ; if (argc != 3 && argc != 4) goto
- bra L132
- L113
- ; if (argc == 4)
- cmp.l #4,d3
- bne.b L117
- L114
- ;
- ; if (StrCmpNC(argv[3],"ASCII"))
- move.l #L100,-(a7)
- move.l $C(a2),-(a7)
- bsr _StrCmpNC
- addq.w #$8,a7
- tst.l d0
- beq.b L116
- L115
- ; if (StrCmpNC(argv[3],"ASCII"))
- bra L132
- L116
- ; Mode = ASCII;
- moveq #1,d4
- L117
- ; if (!(infile = fopen(argv[1],"rb")))
- move.l #L101,-(a7)
- move.l 4(a2),-(a7)
- bsr _fopen
- addq.w #$8,a7
- move.l d0,_infile(a4)
- tst.l _infile(a4)
- bne.b L119
- L118
- ; if (!(infile = fopen(argv[1
- bra L133
- L119
- ; fseek(infile,0,SEEK_END);
- pea 1.w
- clr.l -(a7)
- move.l _infile(a4),-(a7)
- bsr _fseek
- add.w #$C,a7
- ; len = ftell(infile);
- move.l _infile(a4),-(a7)
- bsr _ftell
- addq.w #4,a7
- move.l d0,_len(a4)
- ; fseek(infile,0,SEEK_SET);
- move.l #-1,-(a7)
- clr.l -(a7)
- move.l _infile(a4),-(a7)
- bsr _fseek
- add.w #$C,a7
- ; if (ferror(infile))
- move.l _infile(a4),-(a7)
- bsr _ferror
- addq.w #4,a7
- tst.l d0
- beq.b L121
- L120
- ; if (ferror(infile)) goto
- bra L133
- L121
- ; if (!(outfile = fopen(argv[2],"w")))
- move.l #L102,-(a7)
- move.l $8(a2),-(a7)
- bsr _fopen
- addq.w #$8,a7
- move.l d0,_outfile(a4)
- tst.l _outfile(a4)
- bne.b L123
- L122
- ; if (!(outfile = fopen(argv[
- bra L134
- L123
- ; fprintf(outfile,"/* Converted with binary to C-include. (c)
- move.l _len(a4),-(a7)
- move.l 4(a2),-(a7)
- move.l #L103,-(a7)
- move.l _outfile(a4),-(a7)
- bsr _fprintf
- add.w #$10,a7
- ; switch (Mode)
- cmp.b #0,d4
- beq.b L124
- cmp.b #1,d4
- beq.b L125
- bra.b L126
- ;
- ;
- L124
- ;
- ; conv = ConvertBinary();
- bsr _ConvertBinary
- move.l d0,d2
- ;
- bra.b L126
- L125
- ;
- ; conv = ConvertASCII();
- bsr _ConvertASCII
- move.l d0,d2
- ;
- L126
- ; if (conv == CONV_OKAY)
- tst.l d2
- bne.b L128
- L127
- ; if (conv == CONV_OKAY) fputs("\n};\n",out
- move.l _outfile(a4),-(a7)
- move.l #L104,-(a7)
- bsr _fputs
- addq.w #$8,a7
- L128
- ; fclose(outfile);
- move.l _outfile(a4),-(a7)
- bsr _fclose
- addq.w #4,a7
- ; fclose(infile);
- move.l _infile(a4),-(a7)
- bsr _fclose
- addq.w #4,a7
- ; switch (conv)
- cmp.l #1,d2
- beq L135
- cmp.l #2,d2
- beq L136
- bra.b L131
- ;
- ;
- L129
- ; goto
- bra L135
- L130
- ; goto
- bra L136
- L131
- ; exit(0);
- clr.l -(a7)
- bsr _exit
- addq.w #4,a7
- L132
- ; printf("Invalid parameters !\n\nUsage is: %s <infile> <outfile>
- move.l (a2),-(a7)
- move.l #L105,-(a7)
- bsr _printf
- addq.w #$8,a7
- ; exit(20);
- pea $14.w
- bsr _exit
- addq.w #4,a7
- L133
- ; printf("%s: Couldn't open %s.\nProgram terminated !\n",argv[0],a
- move.l 4(a2),-(a7)
- move.l (a2),-(a7)
- move.l #L106,-(a7)
- bsr _printf
- add.w #$C,a7
- ; exit(10);
- pea $A.w
- bsr _exit
- addq.w #4,a7
- L134
- ; fclose(infile);
- move.l _infile(a4),-(a7)
- bsr _fclose
- addq.w #4,a7
- ; printf("%s: Couldn't create %s.\nProgram terminated !\n",argv[0]
- move.l $8(a2),-(a7)
- move.l (a2),-(a7)
- move.l #L107,-(a7)
- bsr _printf
- add.w #$C,a7
- ; exit(10);
- pea $A.w
- bsr _exit
- addq.w #4,a7
- L135
- ; printf("%s: Couldn't read in %s.\nProgram terminated !\n",argv[0
- move.l 4(a2),-(a7)
- move.l (a2),-(a7)
- move.l #L108,-(a7)
- bsr _printf
- add.w #$C,a7
- ; exit(10);
- pea $A.w
- bsr _exit
- addq.w #4,a7
- L136
- ; printf("%s: Couldn't write to %s.\nProgram terminated !\n",argv[
- move.l $8(a2),-(a7)
- move.l (a2),-(a7)
- move.l #L109,-(a7)
- bsr _printf
- add.w #$C,a7
- ; exit(10);
- pea $A.w
- bsr _exit
- addq.w #4,a7
- movem.l (a7)+,d2-d4/a2
- unlk a5
- moveq #0,d0
- rts
-
- L56
- dc.b $A,$9,0
- L104
- dc.b $A,'};',$A,0
- L59
- dc.b ' ',0
- L107
- dc.b '%s: Couldn't create %s.',$A,'Program terminated !',$A,0
- L106
- dc.b '%s: Couldn't open %s.',$A,'Program terminated !',$A,0
- L108
- dc.b '%s: Couldn't read in %s.',$A,'Program terminated !',$A,0
- L109
- dc.b '%s: Couldn't write to %s.',$A,'Program terminated !',$A,0
- L76
- dc.b ''%c'',0
- L58
- dc.b ',',0
- L103
- dc.b '/* Converted with binary to C-include. (c) 1999 by Basty/Season'
- dc.b 's. */',$A,$A,'unsigned char %s[%ld] =',$A,'{',0
- L97
- dc.b '00:05:53',0
- L57
- dc.b '0x%02x',0
- L100
- dc.b 'ASCII',0
- L98
- dc.b 'Aug 06 1999',0
- L99
- dc.b 'Bin2H v%d.%02d (c) 1999 by Basty/Seasons (%s, %s).',$A,$A,0
- L105
- dc.b 'Invalid parameters !',$A,$A,'Usage is: %s <infile> <outfile> [A'
- dc.b 'SCII]',$A,0
- L101
- dc.b 'rb',0
- L102
- dc.b 'w',0
-
- SECTION ":2",BSS
-
- XDEF _infile
- _infile
- ds.l 1
- XDEF _outfile
- _outfile
- ds.l 1
- XDEF _len
- _len
- ds.l 1
-
- END
-