Nuovo Compilatore Z80...
Sono passati mesi dall'ultima volta che ho inserito qualche notizia o novità. Per pigrizia o forse perchè non mi è mai piaciuto tenere un diario :-O Comunque sia ad un certo punto guardando il sorgente in LiveCode del compilatore Z80 questo era diventato un coacervo di codice ridondante con funzioni duplicate e in alcuni casi dissonanti tra loro. A quel punto la decisione di ripartire da zero per la terza volta ma ora con le idee più chiare (forse) e una lista di funzioni base per riconoscere i vari dati, d'altronde non ha senso inventare ogni volta la ruota. Ad aprile è nato il SAM ovvero Strange And Messy Compiler hahahaha. Il codice assembler generato non è proprio ottimizzato e spesso è arzigogolato ma funziona alla grande, per lo meno sul mio 6128 plus. Questi i comandi e funzioni implementate finora:
ASM,BORDER,CALL,CLS,COLORFG,COLORBG,COLORINV,CURSOR,DIM,ELSE,END,ENDIF,FOR,GET,GOTO,IF,IFG,IFP,INPUT,INK,NEXT,LABEL,LOCATE,MODE,PEEK,POKE,PRINT,RANDOMIZE,READGET,REM,RND,SAY,TAB,THEN,TO,STEP,VAR,WAITKEY,WEND,WHILE
CPCVER,FREEMEM,LEN,MID,MIN,MAX,REVERSE,RND,TIME,VAL
Si lo so SAY e GET hanno il sapore del buon vecchio Clipper Summer 87 e i comandi IFG e IFP sono degli if mirati per i salti e la stampa a video, per evitare di scrivere IF nidificate :-) Diciamolo nella mia generazione di programmatori molti sono pigri e per non scrivere un else o un endif in più si crea un comando specifico hahahaha
Ecco un esempio:
IFP temp = 0 print "Amstrad CPC 464"
IFP temp = 1 print "Amstrad CPC 664"
IFP temp = 2 print "Amstrad CPC 6128"
IFP temp = 3 print "Amstrad CPC 464 plus"
IFP temp = 4 print "Amstrad CPC 6128 plus"
IFP temp > 4 print "Unrecognized
IFG scelta = 2 goto ModArt
IFG scelta = 3 goto StaArt
IFG scelta = 4 goto CanArt
IFG scelta = 5 goto RicArt
IFG scelta = 0 goto Uscita
IF temp = 1 then
IF temp = 2 then
IF temp = 3 then
IF temp = 4 then
print "Unrecognized
Commenti
Posta un commento