From c95ab1805653e74400852344690237c594a6e433 Mon Sep 17 00:00:00 2001 From: Eliah Rebstock <elireb54@outlook.com> Date: Thu, 26 Jul 2018 22:26:07 +0200 Subject: [PATCH] Clean gate.c --- log/include/gate.h | 15 ++++++++++ log/include/log.h | 38 +++++++++++++++++++++++++ log/include/node.h | 9 ++++++ log/include/page.h | 2 ++ log/include/screen.h | 8 ++++++ log/include/tool.h | 8 ++++++ log/include/wire.h | 4 +++ log/src/gate.c | 12 ++++++-- log/src/log.c | 66 ++++++++++++++++++++++---------------------- 9 files changed, 126 insertions(+), 36 deletions(-) create mode 100644 log/include/log.h diff --git a/log/include/gate.h b/log/include/gate.h index b8754ad..325afb6 100644 --- a/log/include/gate.h +++ b/log/include/gate.h @@ -23,4 +23,19 @@ void newgate(log_grec **g, short gt); void eragate(log_grec *g); +int addgate(short gtype, short sig, log_gattrrec *attrs); +int insidegate(log_grec *g, short x, short y); +int connectgate(log_grec *g); +void linkgate(log_grec **g); +void newgptr(log_grec **g); +void newgate2(log_grec **g, short gt, short sig, log_gattrrec *attrs); +void unlkgate(log_grec **g); +void disposegptr(log_grec **g); +void chggate(log_grec *g, int i, log_nrec *oldnode, log_nrec *n); +void chggatepin(log_grec *g, short i, log_nrec **oldnode, log_nrec **savenode); +void frygate(log_grec *g); +void initpinpos(log_grec *g); +void addgate2(short x, short y, short gtype, short sig, log_gattrrec *attrs); +void movexorgate(short x, short y, short g, short sig, short yy); + #endif diff --git a/log/include/log.h b/log/include/log.h new file mode 100644 index 0000000..bfc85a1 --- /dev/null +++ b/log/include/log.h @@ -0,0 +1,38 @@ +#ifndef LOG_H +#define LOG_H + +#include <p2c/p2c.h> +#include "logdef.h" +#include "wire.h" + +void pen(); +void report(short num, char *s); +void log_setmode(const char *s); +void strwordx(char *buf, char *wrd); +void sortshints(short *x, short *y); +long glowcol(log_nrec *n, long def); +void resetmessages(); +void message(char *msg); +void tracemessage(char *msg); +void pass(); +void newattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr); +void disposeattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr); +void copyattrs(log_gattrrec **gattr, log_gattrrec *oldattr, short numattrs, log_kattrrec *kattr); +log_tool *findsimtype(uchar st); +void garbagecoll(); +short getsignal(int d, char *n_); +void setscale(short s); +char *colorname(char *Result, short c); +void scroll(); +void trykbd(); +void markcolor(log_hwrec **hw, struct LOC_wantsolder *LINK); +void confirmsimtype(log_nrec *n); +void scancn(cnrec *cn, struct LOC_checkcombine *LINK); +void addblobs(blobrec **blbase, short x1, short y1, short x2, short y2); +void doblobs(blobrec *blp); +void dispblobs(blobrec **blbase); +void changekind(short gtype, short sig, log_gattrrec *attrs); +void prealunit(double r, short p, char *u, char *s); +void prealunit2(double r, short p, char *u, char *s); + +#endif diff --git a/log/include/node.h b/log/include/node.h index e15bcfc..b72143c 100644 --- a/log/include/node.h +++ b/log/include/node.h @@ -13,6 +13,10 @@ void copynode(log_nrec *old, log_nrec **n); void newnode(log_nrec **n, uchar st); +log_nrec *refnode(log_nrec *n); + +void unrefnode(log_nrec **n); + /* Local variables for checkcombine: */ struct LOC_checkcombine { cnrec **cnbase; @@ -21,4 +25,9 @@ struct LOC_checkcombine { log_tool *cursimtype; }; +int checkcombine(cnrec **cnbase_); +void queuecombine(cnrec **cnbase, log_nrec **n, log_nrec **n2); +void newnoderef(log_nrec **n, uchar st, long ref); +void delgetnode(log_nrec **save, log_nrec **old, log_nrec **n); + #endif diff --git a/log/include/page.h b/log/include/page.h index 0e47e94..9fd6286 100644 --- a/log/include/page.h +++ b/log/include/page.h @@ -3,4 +3,6 @@ void chpage(short pg); +void chpageplace(short pg, short x1, short y1, short x2, short y2); + #endif diff --git a/log/include/screen.h b/log/include/screen.h index 2f447d9..9c72e5b 100644 --- a/log/include/screen.h +++ b/log/include/screen.h @@ -57,4 +57,12 @@ void unhidecursor_hook(); void hidecursor_hook(); +void signallabel(short x, short y, short gtype, short sig, short c); + +void gsignallabel(short x, short y, log_grec *g, short c); + +void drawpnums(log_grec *g, short c); + +void drawgatedotsc(short x, short y, short g, short c); + #endif diff --git a/log/include/tool.h b/log/include/tool.h index e69de29..abf0199 100644 --- a/log/include/tool.h +++ b/log/include/tool.h @@ -0,0 +1,8 @@ +#ifndef LOG_TOOL_H +#define LOG_TOOL_H + +#include "logdef.h" + +void calltoolgate(log_grec *g, log_actionkinds act); + +#endif diff --git a/log/include/wire.h b/log/include/wire.h index 370fc06..7b73ed5 100644 --- a/log/include/wire.h +++ b/log/include/wire.h @@ -19,4 +19,8 @@ struct LOC_wantsolder int hasred, hasgreen, hasyellow, hasblue; }; +void chghw(log_hwrec *hw, log_nrec *oldnode, log_nrec *n); + +void chgvw(log_vwrec *vw, log_nrec *oldnode, log_nrec *n); + #endif diff --git a/log/src/gate.c b/log/src/gate.c index 1391f92..e75d3d6 100644 --- a/log/src/gate.c +++ b/log/src/gate.c @@ -1,10 +1,19 @@ #include <p2c/p2c.h> +#include <p2c/newci.h> #include <p2c/newkbd.h> #include "logfont.h" #include "logglobals.h" +#include "logstructs.h" +#include "screen.h" #include "utils.h" +#include "node.h" +#include "log.h" #include "gate.h" +#include "wire.h" +#include "label.h" +#include "page.h" +#include "tool.h" /*================ INSIDEGATE ==================*/ /*= =*/ @@ -485,7 +494,6 @@ void disconnectgate(log_grec *g) log_nrec **oldnode; long done[log_maxpins / 32 + 2]; short FORLIM; - long SET[9]; if (gg.traceflag) fprintf(tracefile, "Disconnect gate %ld\n", (long)g); @@ -859,5 +867,3 @@ int addgate(short gtype, short sig, log_gattrrec *attrs) gg.startpoint = false; return Result; } - - diff --git a/log/src/log.c b/log/src/log.c index 2a98def..b24ac89 100644 --- a/log/src/log.c +++ b/log/src/log.c @@ -408,10 +408,10 @@ static void clearshowalpha (); /*= =*/ /*================================================*/ -extern void message (char *msg); +void message (char *msg); -extern void report(short num, char *s) +void report(short num, char *s) { char ch; char STR2[256]; @@ -446,7 +446,7 @@ extern void report(short num, char *s) static void refreditmode (); -extern void log_setmode(const char *s) +void log_setmode(const char *s) { time_t h; char *cp; @@ -487,7 +487,7 @@ extern void log_setmode(const char *s) drawstr2(across + menux3, line2, modename); } -extern void strwordx(char *buf, char *wrd) +void strwordx(char *buf, char *wrd) { size_t i; char STR1[256]; @@ -602,7 +602,7 @@ static void getbool(char *buf, int *b) /*= =*/ /*================================================*/ -extern void sortshints(short *x, short *y) +void sortshints(short *x, short *y) { short temp; @@ -888,7 +888,7 @@ static void send_allgates(char *act) } -extern long glowcol(log_nrec *n, long def) +long glowcol(log_nrec *n, long def) { gg.actx = def; calltoolnode(n, act_glowcol); @@ -896,7 +896,7 @@ extern long glowcol(log_nrec *n, long def) } -extern void resetmessages() +void resetmessages() { short opos; @@ -932,7 +932,7 @@ static void show_events() { /*zEMBED char buf[30]; - extern int m_events_received; + int m_events_received; static int old_events, old_serial, old_time; int serial, time = timers_sysclock() / 200; sprintf(buf, "%d", m_events_received); @@ -962,7 +962,7 @@ static int pollkbd2() } -extern void pen() +void pen() { #define ALERTNESS 2 /* Time to get bored (in cs) */ @@ -1277,7 +1277,7 @@ static int inbox(short x, short y, short x1, short y1) #define spacing 10 -extern void message(char *msg) +void message(char *msg) { na_strlist_t *l1; @@ -1342,7 +1342,7 @@ static void vmessageflag(char *msg, int b) } } -extern void tracemessage(char *msg) +void tracemessage(char *msg) { if (!gg.traceflag) return; @@ -1592,7 +1592,7 @@ static void getnodeval(log_nrec *n, double *val, char *opts) /*= =*/ /*================================================*/ -extern void pass() +void pass() { log_grec *g, *g1, *g2; log_nrec *n, *n1, *n2; @@ -2097,10 +2097,10 @@ static void clearconflicts(log_tool *tool) } -extern short getsignal (int d, char *n); +short getsignal (int d, char *n); -extern void newattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr) +void newattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr) { short i; @@ -2145,7 +2145,7 @@ extern void newattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr) } -extern void disposeattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr) +void disposeattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kattr) { short i; @@ -2167,7 +2167,7 @@ extern void disposeattrs(log_gattrrec **gattr, short numattrs, log_kattrrec *kat } -extern void copyattrs(log_gattrrec **gattr, log_gattrrec *oldattr, short numattrs, log_kattrrec *kattr) +void copyattrs(log_gattrrec **gattr, log_gattrrec *oldattr, short numattrs, log_kattrrec *kattr) { short i; @@ -2256,7 +2256,7 @@ static void defsimulator(log_action_t *act) } -extern log_tool *findsimtype(uchar st) +log_tool *findsimtype(uchar st) { char simname[17]; log_tool *stp; @@ -2419,7 +2419,7 @@ static void purgesignaltab() /*= =*/ /*================================================*/ -extern void garbagecoll() +void garbagecoll() { log_nrec *n, *n1; log_grec *g; @@ -2488,7 +2488,7 @@ extern void garbagecoll() /*= =*/ /*================================================*/ -extern short getsignal(int d, char *n_) +short getsignal(int d, char *n_) { char n[256]; short i; @@ -2562,7 +2562,7 @@ static void getsigname(char *name, log_sigrec **sig) /*= =*/ /*================================================*/ -extern void setscale(short s) +void setscale(short s) { zoom = s; gg.scale = zoomscales[s + 2]; @@ -2614,7 +2614,7 @@ static void setupregion(log_regrec **r, short pagenum) /*= =*/ /*================================================*/ -extern char *colorname(char *Result, short c) +char *colorname(char *Result, short c) { if (c == log_wcol_normal) return strcpy(Result, "U"); @@ -2802,7 +2802,7 @@ static void zoomto(short z) } -extern void scroll() +void scroll() { char ch, TEMP; @@ -3208,7 +3208,7 @@ static void assertfunc(char *name_) /*= =*/ /*================================================*/ -extern void trykbd() +void trykbd() { long t; int moving; @@ -3325,7 +3325,7 @@ static void trykbdscroll() } -extern void markcolor(log_hwrec **hw, struct LOC_wantsolder *LINK) +void markcolor(log_hwrec **hw, struct LOC_wantsolder *LINK) { if (*hw == NULL) return; @@ -3351,7 +3351,7 @@ extern void markcolor(log_hwrec **hw, struct LOC_wantsolder *LINK) } -extern void confirmsimtype(log_nrec *n) +void confirmsimtype(log_nrec *n) { log_grec *g; short i, pg; @@ -3401,7 +3401,7 @@ extern void confirmsimtype(log_nrec *n) } -extern void scancn (cnrec *cn, struct LOC_checkcombine *LINK); +void scancn (cnrec *cn, struct LOC_checkcombine *LINK); /* Local variables for scancn: */ struct LOC_scancn { @@ -3425,7 +3425,7 @@ static void scan(log_nrec **n, struct LOC_scancn *LINK) } } -extern void scancn(cnrec *cn, struct LOC_checkcombine *LINK) +void scancn(cnrec *cn, struct LOC_checkcombine *LINK) { struct LOC_scancn V; @@ -3454,7 +3454,7 @@ static void frysolder(short x, short y) } -extern void addblobs(blobrec **blbase, short x1, short y1, short x2, short y2) +void addblobs(blobrec **blbase, short x1, short y1, short x2, short y2) { blobrec *blp; log_srec *s; @@ -3476,7 +3476,7 @@ extern void addblobs(blobrec **blbase, short x1, short y1, short x2, short y2) } -extern void doblobs(blobrec *blp) +void doblobs(blobrec *blp) { log_hwrec *hw; log_vwrec *vw; @@ -3508,7 +3508,7 @@ extern void doblobs(blobrec *blp) } -extern void dispblobs(blobrec **blbase) +void dispblobs(blobrec **blbase) { blobrec *blp; @@ -4110,7 +4110,7 @@ static void changekind2(short i, short gtype, short sig, log_gattrrec *attrs) } -extern void changekind(short gtype, short sig, log_gattrrec *attrs) +void changekind(short gtype, short sig, log_gattrrec *attrs) { short i; @@ -7973,13 +7973,13 @@ static char *realunit(char *Result, double r, short p, char *u, int mu) } /* was static void, cause gcc problems in some releases */ -extern void prealunit(double r, short p, char *u, char *s) +void prealunit(double r, short p, char *u, char *s) { realunit(s, r, p, u, false); } /* was static void, cause gcc problems in some releases */ -extern void prealunit2(double r, short p, char *u, char *s) +void prealunit2(double r, short p, char *u, char *s) { realunit(s, r, p, u, true); } -- GitLab