%& Filen CTOOL1.BNT {r skapad med BUNT.BAS %&UNPACK.CSF * * unpack.csf * Program f|r uppackning av div filer till smallc * load smallc.806 save smallc save tmp run bunt 9 clib1.bnt 1 9 cio1.bnt 1 9 ctool1.bnt 1 0 load printtmp unsave printtmp save printtmp load makeasm unsave makeasm save makeasm $. OK $IF XXX %&C.CSF * * c.csf * * anv{nds s} h{r: * run css * CSS filname ?: c * CSS parameters ?: c= * * run smallc * utfil tmp.asm * labelnummer 1 * paus on error y * optimize y * include C-source n * input file =C=.C run asm * infil tmp.asm * objektkod utfil J tmp.ith * endast felen+listfil ftmp.lst run ithabs tmp.ith tmp.abs * skriv ut felen run printtmp * testa programmet run tmp %&LIB.CSF * * lib.csf * * anv{nds s} h{r: * run css * CSS filname ?:lib * CSS parameters ?: * run smallc * utfil tmp.asm * labelnummer 5000 * paus on error y * optimize y * include C-source n * input file lib.c run makeasm * infil tmp.asm * utfil lib.asm %&PRINTTMP.BAS 10 ! save printtmp 20 DIM A$=200 30 OPEN 'tmp.lst' AS FILE 1 40 INPUT LINE #1 A$ 50 PRINT A$; 60 GOTO 40 %&MAKEASM.BAS 10 DATA save MAKEASM.BAC/BAS 20 EXTEND : INTEGER 30 DIM Rad$=200 40 Cmd$=FNCmdline$ 50 ; 60 ; 'MAKEASM' 70 ; 'G|r #asm - #endasm p} en fil' 80 ; 90 ; 'Ange ASM - infil ? '; 100 Basicnamn$=FNInput$ 110 Infil$=LEFT$(Basicnamn$,LEN(Basicnamn$)-2) 120 IF Infil$='' THEN GOTO 370 130 ; 140 ; "Ange 'C' - utfil ? "; 150 Basicnamn$=FNInput$ 160 Utfil$=LEFT$(Basicnamn$,LEN(Basicnamn$)-2) 170 IF Utfil$='' THEN GOTO 370 180 ; 190 ON ERROR GOTO 320 200 OPEN Infil$ AS FILE 1 210 PREPARE Utfil$ AS FILE 2 220 PRINT #2 '/* */' 230 PRINT #2 '#asm' 240 ! 250 INPUT LINE #1 Rad$ 260 Rad$=LEFT$(Rad$,LEN(Rad$)-2) 270 P=INSTR(1,Rad$,';') : IF P THEN Rad$=LEFT$(Rad$,P-1) 280 IF Rad$=SPACE$(LEN(Rad$)) THEN GOTO 250 290 PRINT #2 Rad$ 300 GOTO 250 310 ! 320 IF ERRCODE<>34 THEN ; 'Fel ' ERRCODE : STOP 330 PRINT #2 '#endasm' 340 PRINT #2 '/* */' 350 PRINT #2 ' ' 360 CLOSE 370 ; 'OK' 380 END 390 DEF FNCmdline$ LOCAL S$=0,P 400 P=CALL(81) 410 POKE VAROOT(S$),160,0,P,SWAP%(P),160,0 420 P=INSTR(1,S$,CHR$(13)) 430 IF P THEN S$=LEFT$(S$,P-1) ELSE S$='' 440 P=INSTR(1,S$,',') 450 IF P THEN RETURN RIGHT$(S$,P+1) ELSE RETURN '' 460 FNEND 470 DEF FNInput$ LOCAL La$=160,P 480 ON ERROR GOTO 490 P=INSTR(1,Cmd$,',') 500 IF P THEN La$=LEFT$(Cmd$,P-1) : PRINT La$; : Cmd$=RIGHT$(Cmd$,P+1) : RETURN La$+CHR$(13,10) 510 IF Cmd$<>'' THEN La$=Cmd$ : PRINT La$; : Cmd$='' : RETURN La$+CHR$(13,10) 520 INPUT LINE La$ 530 RETURN La$ 540 FNEND