Created
October 24, 2023 08:38
-
-
Save Alikberov/c297bdd8a37635ca7293d567a1a3f351 to your computer and use it in GitHub Desktop.
ASCII circuits
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<title>ASCII-circuits</title> | |
</head> | |
<body> | |
<canvas id=Circuit width=800 height=600></canvas> | |
<pre id=logo></pre> | |
<textarea id=circuit row=3 cols=80 style=display:none> | |
= +--------------------*---*----- | |
!/ ! = = ! ! ! | |
# \!/ \ !/ !/ ! \ # | |
! ! \ # # # \ -!- | |
> ! ! ! ! ! | |
<-#--> +-\\-*-+ < > ! +-\\-*-#-*-+ | |
> ! ! ! <-#-> ! ! ! ! > +- | |
>-#-*---/> +-#-< >-#-*-*---/> # >#! | |
> ! < > ! ! ! >#< | |
! ! < > # ! ! >#< | |
! ! ! ! ! ! ! > < | |
+--------*-----*---*-----*----*---*-*-*- | |
C1:2,2 C2:4…15 C3:82 C4:82 C5:4…15 C6:5,1 C7:4…15 C9:10 C8:3,9 C10:15 C11:22 C13:82 C12:0,068 | |
T1:GT329A T2:GT329B | |
L1 L2 L3 L4 L5 | |
R1:15K R2:2,2K R3:75K R4:2,2K | |
</textarea> | |
<!-- | |
@--################################### | |
@--# ! ### | |
@--#-----+----vvv--*-^^^-+ ! | |
! ! ! ! < | |
*--//-+ #< >#<- | |
! #<--#-->#< | |
# #< >#< | |
-!- ! ! ! | |
+-vvv-*-*- | |
### | |
c@C1:1nf | |
l@L1:99,L2:88,L3:56,L4:91 | |
r@R1:5k | |
w#Clk,res,input,rdy,Vcc,irq | |
</textarea> | |
<!-- | |
######################################## | |
# ! ! ! ! ! ! # | |
#----*---*-----*---*-------*---*----+ # | |
# ! ! ! ! ! ! ! # | |
\ / \ / / ! -+--# | |
\ / \ / / # ! # | |
! ! ! ! +v ! ! | |
--\\-*-#-*-- --*-#-*--///--* --+ | |
! X ! X | |
<\----- -----/> - - | |
! ! | |
@----*-------------*----------------+ | |
r@R4:10 @R5:33K @R1:390@ @RU1:CN-2 @R9*:47K@ @R13:20K @R2:470 @R7*:100K@ @R8:18K @R10:47K @R17:300 @R11:300 @R12:1K | |
c@C1:1mf C2:5mf | |
t@T1:K315,@T2:K31, | |
w#/UCC,/CLC,/1mHz,/UCC,/IN,/UCC,/BELL,/UCC,/ULINE,/IN-/D0,/D1,/D2,/D3,/D4,/D5,/D6,/D7,/CLC,/UCC,/BUSR,/INT,/UCC,/RES,/M1,/UCC,/A0,/A1,/A2,/A3,/A4,/A5,/A6,/A7,/A8,/A9,/A10,/WR,/RD,/RAMCS,/IN | |
</textarea> | |
<!-- | |
-+ -+ -+ +--+ | |
\ \ \ ! ! | |
->--*-\\--<--\\-#-+ +<--#-+ +-//-+ | |
! ! ! ! | |
/ \ # / | |
/ -/- -\- \ ! +v ! | |
! ! +-\\-#--/// \ | |
!--> | |
<var id=Parts style=display:none> | |
.........................1......................... | |
.........................1......................... | |
.........................1......................... | |
.........................1......................... | |
.........................1......................... | |
.........................1......................... | |
.........................1......................... | |
.........................1......................... | |
3333222222222222222222222X......................... | |
....5....................X......................... | |
....5....................X......................... | |
....5...............XXXXXXXXXXX.................... | |
....5................XXXXXXXXX..................... | |
....5.................XXXXXXX...................... | |
....5..................XXXXX....................... | |
....5...................XXX........................ | |
....5....................X......................... | |
....5....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX......... | |
....5....X...............................X......... | |
....5....X...............................X......... | |
....5....X...............................X......... | |
....5....X........=......................X......... | |
....5....X...............................X......... | |
...656...X...............................X......... | |
..66566..X...............................X......... | |
4444XXXXXX...............................XXXXXXXXXX | |
...666...X...............................X......... | |
.........X...............................X......... | |
.........X.....................r.........X......... | |
.........X...............................X......... | |
.........X...............................X......... | |
.........X...............................X......... | |
.........Z...............................X......... | |
.........XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX......... | |
014 ..!.. | |
..v.. | |
.///. | |
..... | |
0,0 ..... | |
0234 ..... | |
.-v.. | |
.///. | |
..... | |
0,0 ..... | |
02456 ..... | |
... .+v.. | |
-1- -///. | |
... ..... | |
0,0 ..... | |
025 ..... | |
.+v.. | |
.///. | |
..... | |
0,0 ..... | |
........6........ | |
........6........ | |
55......6......44 | |
..555...6...444.. | |
.....55.6.44..... | |
.......564....... | |
........X........ | |
........X........ | |
00000000122222222 | |
........1........ | |
........1........ | |
........1........ | |
........1........ | |
........1........ | |
........1........ | |
........1........ | |
........1........ | |
01456 ..... | |
... ..... | |
.0. .\!/. | |
... ..... | |
1,1 ..... | |
004 ..... | |
... ..... | |
.0. .-^^. | |
... ..... | |
1,1 ..... | |
025 ..... | |
... ..... | |
.0. .^^-. | |
... ..... | |
1,1 ..... | |
0541 ..... | |
... ..... | |
.0. .^^^. | |
... ..!.. | |
1,1 ..... | |
054 ..... | |
... ..... | |
.0. .^^^. | |
... ..... | |
1,1 ..... | |
125 ..... | |
... ..!.. | |
.0. ..<.. | |
... ..<.. | |
1,1 ..... | |
104 ..... ..... | |
... ..<.. ..<.. | |
.0. ..<.. ..<.. | |
... ..!.. ..*.. | |
1,1 ..... ..... | |
1645 ..... | |
... ..<.. | |
.0. .-<.. | |
... ..<.. | |
1,1 ..... | |
1145 ..... | |
... ..<.. | |
.0. ..<-. | |
... ..<.. | |
1,1 ..... | |
145 ..... | |
... ..<.. | |
.0. ..<.. | |
... ..<.. | |
1,1 ..... | |
304 ..... ..... | |
... ..!.. ..+.. | |
.0. ..>.. ..>.. | |
... ..>.. ..>.. | |
1,1 ..... ..... | |
325 ..... ..... | |
... ..>.. ..>.. | |
.0. ..>.. ..>.. | |
... ..!.. ..*.. | |
1,1 ..... ..... | |
3145 ..... | |
... ..>.. | |
.0. .->.. | |
... ..>.. | |
1,1 ..... | |
3456 ..... | |
... ..>.. | |
.0. ..>-. | |
... ..>.. | |
1,1 ..... | |
345 ..... | |
... ..>.. | |
.0. ..>.. | |
... ..>.. | |
1,1 ..... | |
204 ..... | |
... ..... | |
.0. .vv-. | |
... ..... | |
1,1 ..... | |
225 ..... | |
... ..... | |
.0. .-vv. | |
... ..... | |
1,1 ..... | |
2541 ..... | |
... ..!.. | |
.0. .vvv. | |
... ..... | |
1,1 ..... | |
254 ..... | |
... ..... | |
.0. .vvv. | |
... ..... | |
1,1 ..... | |
111111111111111111111111X111111111 | |
1......................2.2.......1 | |
1.....................2...2......1 | |
1....................2.....2.....1 | |
1..........=........2.......2....1 | |
1..................2.........2...1 | |
1.................2...........2..1 | |
1................2.............2.1 | |
X...............2...............2X | |
12.............2.................1 | |
1.2...........2..................1 | |
1..2.........2...................1 | |
1...2.......2.........r..........1 | |
1....2.....2.....................1 | |
1.....2...2......................1 | |
1......2.2.......................1 | |
11111111X1111111111111111111111111 | |
01 ..... | |
... ..... | |
.9. -\\-. | |
... ..... | |
0,1 ..... | |
02 ..... | |
... ..... | |
.9. -//-. | |
... ..... | |
0,1 ..... | |
11 ..!.. | |
... ..\.. | |
.9. ..\.. | |
... ..!.. | |
1,0 ..... | |
12 ..!.. | |
... ../.. | |
.9. ../.. | |
... ..!.. | |
1,0 ..... | |
.......151....... | |
.......151....... | |
.......151....... | |
.......151....... | |
.......151....... | |
.......151....... | |
.......151....... | |
2222222X0X4444444 | |
6666666X0X8888888 | |
2222222X0X4444444 | |
.......373....... | |
.......373....... | |
.......373....... | |
.......373....... | |
.......373....... | |
.......373....... | |
.......373....... | |
013 ..... ..... ..... ..... | |
... ...<. ..... ..... .>... | |
.0. ..#<. ..#<. .>#.. .>#.. | |
... ..... ...<. .>... ..... | |
1,1 ..... ..... ..... ..... | |
113 ..... ..... ..... ..... | |
... .vv.. ..vv. ..... ..... | |
.0. ..#.. ..#.. ..#.. ..#.. | |
... ..... ..... ..^^. .^^.. | |
1,1 ..... ..... ..... ..... | |
0024687 ..... | |
... ..... | |
.0. .###. | |
... ..!.. | |
1,1 ..... | |
002468 ..... | |
... ..... | |
.0. .###. | |
... ..... | |
1,1 ..... | |
00135678 ..... | |
... ..#.. | |
.0. .-#-. | |
... ..#.. | |
1,1 ..... | |
0015678 ..... | |
... ..#.. | |
.0. .-#-. | |
... ..!.. | |
1,1 ..... | |
001568 ..... | |
... ..#.. | |
.0. .-#-. | |
... ..... | |
1,1 ..... | |
0013567 ..... | |
... ..#.. | |
.0. .-#.. | |
... ..#.. | |
1,1 ..... | |
0013578 ..... | |
... ..#.. | |
.0. ..#-. | |
... ..#.. | |
1,1 ..... | |
001357 ..... | |
... ..#.. | |
.0. ..#.. | |
... ..#.. | |
1,1 ..... | |
0034678 ..... | |
... ..... | |
.0. .-##. | |
... ..#.. | |
1,1 ..... | |
003478 ..... | |
... ..... | |
.0. ..##. | |
... ..#.. | |
1,1 ..... | |
002367 ..... | |
... ..... | |
.0. .##.. | |
... ..#.. | |
1,1 ..... | |
00156 ..... | |
... ..#.. | |
.0. .-#.. | |
... ..... | |
1,1 ..... | |
.................2...............4................. | |
..................2....X.X00....4.................. | |
...................2...X.X.0...4................... | |
..........=.........2..X.X.0..4.................... | |
.....................2.X.X.0.4..................... | |
......................2X.X.04...................... | |
.......................X.X.5....................... | |
.......................X2X40....................... | |
.................XXXXXXX.X1XXXXXXX................. | |
.......................X4X20....................... | |
.......................X.X.3....................... | |
......................4X.X.02...................... | |
.....................4.X.X.0.2.......c............. | |
....................4..X.X.0..2.................... | |
...................4...X.X.0...2................... | |
..................4....X.X00....2.................. | |
.................4...............2................. | |
0145 ..... | |
... .../. | |
.0. .-#-. | |
... ..... | |
0,1 ..... | |
1123 ..... | |
... ..!/. | |
.0. ..#.. | |
... ..!.. | |
1,0 ..... | |
01 ..... | |
..... | |
.-#-. | |
..... | |
0,1 ..... | |
11 ..... ..... | |
..!.. ..*.. | |
..#.. ..#.. | |
..!.. ..!.. | |
1,0 ..... ..... | |
00 ..... | |
...+. | |
.-#-. | |
..... | |
0,1 ..... | |
10 ..... | |
.+!.. | |
..#.. | |
..!.. | |
1,0 ..... | |
........2................t................6........ | |
........2..............OOOOO..............6........ | |
........2..........OOOO:::::OOOO..........6........ | |
........2........OO:::::::::::::OO........6........ | |
........2......OO:::::::::::::::::OO......6........ | |
........2.....O:::::::::::::::::::::O.....6........ | |
.......02....O:::::::::::::::::::::::O....64....... | |
......0020..O:::::::::::::::::::::::::O..4644...... | |
11111111X0..O:::::::::::::::::::::::::O..4X77777777 | |
.......00X.O:::::::::::::::::::::::::::O.X44....... | |
..........XO:::::::::::::::::::::::::::OX.......... | |
..........OX:::::::::::::::::::::::::::XO.......... | |
..........O:X888888:::::::::::::::::::X:O.......... | |
..........O:8X8888:::::::::::::::::::X::O.......... | |
..........O:88X88:::::::::::::::::::X:::O.......... | |
.........O::888X:::::9:::::::::::::X:::::O......... | |
.........O::888:X:::99::::::::::::X::::::O......... | |
.........O::88:::X:999:::::::::::X:::::::O......... | |
.........O::8:::::X999::::::::::X::::::::O......... | |
.........O:::::::99X99:::::::::X:::::::::O......... | |
..........O:::::9999X9::::::::X:::::::::O.......... | |
..........O::::999999X:::::::X::::::::::O.......... | |
..........O:::::::::::X:::::X:::::::::::O.......... | |
..........O::XXXXXXXXXXXXXXXXXXXXXXXXX::O.......... | |
...........O:::::::::::::X:::::::::::::O........... | |
...........O:::::::::::::X:::::::::::::O........... | |
............O::::::::::::X::::::::::::O............ | |
............O::::::::::::X::::::::::::O............ | |
.............O:::::::::::X:::::::::::O............. | |
..............O::::::::::X::::::::::O.............. | |
...............OO::::::::X::::::::OO............... | |
.................OO::::::X::::::OO................. | |
...................OOOO::X::OOOO................... | |
.......................OOXOO....................... | |
4178 .-+.. .-+-. ..+-. | |
... ..\.. ..\.. ..\.. | |
.0. .-<-. .-<-. .-<-. | |
... ..... ..... ..... | |
0,0 ..... ..... ..... | |
4179 .-+.. .-+-. ..+-. | |
..\.. ..\.. ..\.. | |
.->-. .->-. .->-. | |
..... ..... ..... | |
0,0 ..... ..... ..... | |
4278 .-+.. .-+-. ..+-. | |
..\.. ..\.. ..\.. | |
.+<-. .+<-. .+<-. | |
.!... .!... .!... | |
0,0 ..... ..... ..... | |
4279 .-+.. .-+-. ..+-. | |
..\.. ..\.. ..\.. | |
.+>-. .+>-. .+>-. | |
.!... .!... .!... | |
0,0 ..... ..... ..... | |
5178 ..... | |
... ..!.. | |
.0. ./>.. | |
... ..!.. | |
0,0 ..... | |
1178 ..... | |
... ..!.. | |
.0. ..<\. | |
... ..!.. | |
1,0 ..... | |
........1.................................3........ | |
........1.................................3........ | |
........1.................................3........ | |
........1.................................3........ | |
........1.................................3........ | |
........1.................................3........ | |
........1.................................3........ | |
........1.................................3........ | |
22222222X.................................X44444444 | |
.........X...............................X......... | |
..........X.............................X.......... | |
...........X...........................X........... | |
............X.........................X............ | |
.............X.......................X............. | |
..............X.....................X.............. | |
...............X...................X............... | |
................X.................X................ | |
.................X...............X................. | |
..................X.............X.................. | |
...................X...........X................... | |
....................X.........X.................... | |
.....................X.......X..................... | |
......................X.....X...................... | |
.......................X...X....................... | |
........................X.X........................ | |
.........................X......................... | |
........................X.X........................ | |
.......................X...X....................... | |
......................X.....X...................... | |
.....................X.......X..................... | |
....................X.........X.................... | |
...................X...........X................... | |
..................X.............X.................. | |
.................X...............X................. | |
................X.................X................ | |
...............X...................X............... | |
..............X.....................X.............. | |
.............X.......................X............. | |
............X.........................X............ | |
...........X...........................X........... | |
..........X.............................X.......... | |
.........X...............................X......... | |
66666666X.................................X88888888 | |
........5.................................7........ | |
........5.................................7........ | |
........5.................................7........ | |
........5.................................7........ | |
........5.................................7........ | |
........5.................................7........ | |
........5.................................7........ | |
........5.................................7........ | |
012345678 ..... | |
-.- .*.-. | |
.0. ..X.. | |
-.- .-.-. | |
0,0 ..... | |
02468 ..... | |
-.- .-.-. | |
.0. ..X.. | |
-.- .-.-. | |
0,0 ..... | |
................. | |
................. | |
................. | |
................. | |
................. | |
................. | |
................. | |
................. | |
X................ | |
.X............... | |
..X.............. | |
...X............. | |
....X............ | |
...X.X........... | |
..X...X.......... | |
.X.....X......... | |
X.......X........ | |
0 ..... | |
... ..... | |
.0. ../.. | |
... .#... | |
1,1 ..... | |
................. | |
.............XX.. | |
...........XX.... | |
.........XX...... | |
.......XX........ | |
.....XX.......... | |
...XX............ | |
.XX.............. | |
X..............XX | |
................. | |
................. | |
................. | |
................. | |
................. | |
................. | |
................. | |
................. | |
0 ..... | |
..... | |
../-. | |
..... | |
1,1 ..... | |
3 ..... | |
..!.. | |
..\.. | |
..!.. | |
1,1 ..... | |
................. | |
................. | |
................. | |
................. | |
................. | |
................. | |
................. | |
................. | |
................. | |
XX............XXX | |
.X............X.. | |
.X...........XXX. | |
.X........XXX.X.. | |
.X.....XXX....X.. | |
.X..XXX.......... | |
.XXX............. | |
................. | |
0 ..... | |
..... | |
.-\-. | |
..... | |
1,1 ..... | |
........X........ | |
........X........ | |
........X........ | |
........X........ | |
........X........ | |
.......1X1....... | |
......11X11...... | |
.....111X111..... | |
XXXXXXXXXXXXXXXXX | |
.....111X111..... | |
......11X11...... | |
.......1X1....... | |
........X........ | |
........X........ | |
........X........ | |
........X........ | |
........X........ | |
0 ..... | |
..!.. | |
.-+-. | |
..!.. | |
1,1 ..... | |
01 ..... | |
..!.. | |
.-*-. | |
..!.. | |
1,1 ..... | |
........X........ | |
........X........ | |
........X........ | |
........X........ | |
........X........ | |
.......XXX....... | |
.......XXX....... | |
.....XXXXXXX..... | |
XXXXXXXXXXXXXXXXX | |
.....XXXXXXX..... | |
.......XXX....... | |
........X........ | |
................. | |
................. | |
................. | |
................. | |
................. | |
0 ..... ..... ..... | |
... ..!.. ..>.. ..<.. | |
.9. .-*-. .-*-. .-*-. | |
... ..... ..... ..... | |
1,1 ..... ..... ..... | |
3 ..... | |
... ..!.. | |
.0. ..*-. | |
... ..!.. | |
1,1 ..... | |
2 ..... ..... | |
... ..... ..... | |
.8. .-*-. .-*-. | |
... ..!.. ..#.. | |
1,1 ..... ..... | |
1 ..... | |
... ..!.. | |
.0. .-*.. | |
... ..!.. | |
1,1 ..... | |
........X........ | |
........X........ | |
........X........ | |
........X........ | |
.......SN........ | |
.......SN........ | |
......S.N........ | |
....SS..N........ | |
XXXXNNNNN........ | |
................. | |
................. | |
................. | |
................. | |
................. | |
................. | |
................. | |
................. | |
0 ..... ..... ..... | |
... ..!.. ..!.. ..\.. | |
.8. .-+.. .\+.. .-+.. | |
... ..... ..... ..... | |
1,1 ..... ..... ..... | |
3 ..... | |
... ..!.. | |
.8. ..+-. | |
... ..... | |
1,1 ..... | |
2 ..... | |
... ..... | |
.8. ..+-. | |
... ..!.. | |
1,1 ..... | |
1 ..... ..... ..... | |
... ..... ..... ..... | |
.8. .-+.. .-+.. .-+.. | |
... ..!.. ..\.. ..>.. | |
1,1 ..... ..... ..... | |
........X........ | |
........X........ | |
........X........ | |
........X........ | |
........X........ | |
........X........ | |
........X........ | |
........X........ | |
00000000X00000000 | |
........2........ | |
..1111114111111.. | |
........2........ | |
....333343333.... | |
........2........ | |
55555544444555555 | |
...5...5...5...5. | |
..5...53335...5.. | |
0134 ..... | |
... ..!.. | |
.0. .=!=. | |
... ..... | |
1,1 ..... | |
0234 ..... | |
... ..#.. | |
.0. .=!=. | |
... ..... | |
1,1 ..... | |
00 ..... | |
... ..!.. | |
.0. .-!-. | |
... ..... | |
1,1 ..... | |
0245 ..... | |
... ..#.. | |
.0. .-!-. | |
... ..... | |
1,1 ..... | |
................. | |
................. | |
................. | |
........w........ | |
................. | |
................. | |
................. | |
................. | |
XXXXXXXXXXXXXXXXX | |
................. | |
................. | |
................. | |
................. | |
........=........ | |
................. | |
................. | |
................. | |
0 ..... ..... ..... | |
... ...#. ...#. ..... | |
.8. ..-#. ..-#. ..-## | |
... ...#. ..... ..... | |
1,1 ..... ..... ..... | |
6 ..... ..... | |
... .#... .#... | |
.8. .#-.. .#-.. | |
... .#... ..... | |
1,1 ..... ..... | |
1 ..... ..#.. | |
... .###. ..#.. | |
.8. ..!.. ..!.. | |
... ..... ..... | |
1,1 ..... ..... | |
0 ..... ..... | |
... ..... ..... | |
.0. ..-^^ ..-vv | |
... ..... ..... | |
l1,1 ..... ..... | |
0_ ..... ..... | |
... ..... ..... | |
.0. ^^-.. vv-.. | |
... ..... ..... | |
1,1 ..... ..... | |
1 ..<.. ..>.. | |
... ..<.. ..>.. | |
.0. ..!.. ..!.. | |
... ..... ..... | |
l1,1 ..... ..... | |
1_ ..... ..... | |
... ..... ..... | |
.0. ..!.. ..!.. | |
... ..<.. ..>.. | |
1,1 ..<.. ..>.. | |
0_ ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... | |
... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... .#... ...#. | |
.8. .--.. .+-.. .#-.. ./-.. .\-.. ..->. ..-+. ..-#. ..-/. ..-\. ./#-. .@-.. ..-@. .*-.. ..-*. ..--. .#-.. ..-#. | |
... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... .#... ...#. | |
1,1 ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... | |
1_ ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... | |
... ..!.. ..+.. ..!.. ..+.. ..... ..... ..@.. ..... ..+.. ../.. ..\.. ..... ../.. ..*.. .###. ..... ..#.. | |
.8. ..!.. ..!.. ..!.. ..!.. ..!.. ..!.. ..!.. ..!.. ..!.. ..!.. ..!.. ..!.. ..!.. ..!.. ..!.. ..!.. ..!.. | |
... ..... ..+.. ..+.. ..... ..+.. ../.. ..... ..@.. ..+.. ..*.. ..*.. ..\.. .-... ..!.. ..... ..#.. ..... | |
1,1 ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... | |
1 ..<.. ..>.. | |
... ..<.. ..>.. | |
.0. ..!.. ..!.. | |
... ..... ..... | |
l1,1 ..... ..... | |
1_ ..... ..... | |
... ..... ..... | |
.0. ..!.. ..!.. | |
... ..<.. ..>.. | |
1,1 ..<.. ..>.. | |
........1........ | |
......XXXXX....X. | |
....XX.....XX.X.. | |
...X.........X... | |
..X.........X.X.. | |
..X........X..X.. | |
.X........X....X. | |
.X.......X.....X. | |
2X......X......X3 | |
.X.....X.......X. | |
.X....X........X. | |
..X..X........X.. | |
..X.X.........X.. | |
...X.........X... | |
..X.XX.....XX.... | |
.X....XXXXX...... | |
........4........ | |
01234 ..... | |
..!.. | |
.-@-. | |
..!.. | |
1,1 ..... | |
0123 ..... | |
..!.. | |
.-@-. | |
..... | |
1,1 ..... | |
0124 ..... | |
..!.. | |
.-@.. | |
..!.. | |
1,1 ..... | |
0134 ..... | |
..!.. | |
..@-. | |
..!.. | |
1,1 ..... | |
0234 ..... | |
..... | |
.-@-. | |
..!.. | |
1,1 ..... | |
012 ..... | |
..!.. | |
.-@.. | |
..... | |
1,1 ..... | |
013 ..... | |
..!.. | |
..@-. | |
..... | |
1,1 ..... | |
014 ..... | |
..!.. | |
..@.. | |
..!.. | |
1,1 ..... | |
023 ..... | |
..... | |
.-@-. | |
..... | |
1,1 ..... | |
024 ..... | |
..... | |
.-@-. | |
..... | |
1,1 ..... | |
01 ..... | |
..!.. | |
..@.. | |
..... | |
1,1 ..... | |
02 ..... | |
..... | |
.-@.. | |
..... | |
1,1 ..... | |
03 ..... | |
..... | |
..@-. | |
..... | |
1,1 ..... | |
04 ..... | |
..... | |
..@.. | |
..!.. | |
1,1 ..... | |
</var> | |
<script> | |
var Ascirc = | |
function(pattern) { | |
var cnv = null | |
, c2d = null | |
, patterns = "" | |
, Page = [], max = 0 | |
, pat, part, mask, regexa = "" | |
, part_x = 0 | |
, part_y = 0 | |
, part_dx = 0 | |
, part_dy = 0 | |
, images = [] | |
, tmp, i, id; | |
var log = document.getElementsByTagName("span")[0]; | |
var palette = { | |
"." :0x00FFFFFF | |
, ":" :0xFFEEEEEE | |
, "O" :0xFFAAAAAA | |
, "X" :0xFF000000 | |
}; | |
var flags = { | |
circle :true // Encircled ("O" or ".") | |
, flush :true // Flushed (":" or ".") | |
, rounded :false // Rounded/Sharp("NS" or "X") | |
}; | |
function draw_part(bmp, x, y, page, mask) { | |
var ascii, color, lines | |
, str, ptr, dot = "." | |
, cx, cy, tmp | |
, tx = -1, ty = -1, tag = "?" | |
, vx = -1, vy = -1 | |
, dx, dy, dz | |
, ex, ey; | |
lines = page; | |
dy = lines.length; | |
dz = (mask >> 10) & 7; | |
for(cy = 0; cy < dy; ++ cy) { | |
str = lines[cy]; | |
dx = str.length; | |
for(cx = 0; cx < dx; ++ cx) { | |
ascii = str.charAt(cx); | |
ex = dz & 4 ? (dz & 1 ? dy - cy - 1 : dx - cx - 1) : (dz & 1 ? cy : cx); | |
ey = dz & 2 ? (dz & 1 ? dx - cx - 1 : dy - cy - 1) : (dz & 1 ? cx : cy); | |
ptr = ((y + ey + 0) * cnv.width + (x + ex + 0)) * 4; | |
if(ascii.match(/[NS]/)) | |
ascii = flags.rounded == (ascii == "S") ? "X" : dot; | |
else | |
if(ascii.match(/[cdlrstuvw]/)) { | |
tx = dz & 4 ? (dz & 1 ? dy - cy - 1 : dx - cx - 1) : (dz & 1 ? cy : cx) | |
, ty = dz & 2 ? (dz & 1 ? dx - cx - 1 : dy - cy - 1) : (dz & 1 ? cx : cy) | |
, tag = ascii | |
, ascii = dot; | |
if(vx < 0 || vy < 0) | |
vx = dz & 4 ? (dz & 1 ? dy - cy + 7 : dx - cx - 1) : (dz & 1 ? cy + 7 : cx) | |
, vy = dz & 2 ? (dz & 1 ? dx - cx - 1 : dy - cy + 7) : (dz & 1 ? cx : cy + 7); | |
} else | |
if(ascii == '=') | |
vx = dz & 4 ? (dz & 1 ? dy - cy - 1 : dx - cx - 1) : (dz & 1 ? cy : cx) | |
, vy = dz & 2 ? (dz & 1 ? dx - cx - 1 : dy - cy - 1) : (dz & 1 ? cx : cy) | |
, ascii = dot; | |
else | |
if(ascii.match(/[0-9]/)) | |
ascii = (mask >> ascii) & 1 ? "X" : dot; | |
else | |
if(ascii.match(/[:.]/)) | |
dot = ascii; | |
color = palette[ascii]; | |
bmp[ptr + 0] = (color >> 8 * 0) & 255, | |
bmp[ptr + 1] = (color >> 8 * 1) & 255, | |
bmp[ptr + 2] = (color >> 8 * 2) & 255, | |
bmp[ptr + 3] = (color >> 8 * 3) & 255; | |
} | |
} | |
return { | |
tx :tx | |
, ty :ty | |
, tz :dz & 4 ? 6 - dz : dz & 3 | |
, tag :tag | |
, vx :vx | |
, vy :vy | |
} | |
} | |
cnv = document.createElement("canvas"); | |
cnv.width = 1024, cnv.height = 1024; | |
c2d = cnv.getContext("2d"); | |
c2d.fillStyle = "#013"; | |
//c2d.fillRect(0, 0, cnv.width, cnv.height); | |
pix = c2d.getImageData(0, 0, cnv.width, cnv.height); | |
pat = pattern.split(/\r?\n/); | |
part = []; | |
var part_z, part_m; | |
pat.forEach( | |
function(str) { | |
str = str.split(/\t+/); | |
tmp = str.shift(); | |
if(str.length) { | |
if(tmp.length) { | |
if(tmp.match(/^[a-z]?\d+,\d+/)) { | |
if(tmp.match(/^[a-z]/)) | |
id = tmp.charAt(0), | |
tmp = tmp.substr(1); | |
else | |
id = ""; | |
tmp = tmp.split(","); | |
part_dx = tmp[0], part_dy = tmp[1]; | |
tmp = draw_part(pix.data, part_x + part_dx * 17, part_y + part_dy * 17, part, mask); | |
images.push({ | |
x :part_x | |
, y :part_y | |
, z :part_z | |
, m :part_m | |
, tx :mask & 16384 ? -1 : tmp.tx + part_dx * 17 | |
, ty :mask & 16384 ? -1 : tmp.ty + part_dy * 17 | |
, tz :tmp.tz | |
, tag :(id + tmp.tag).charAt(0) | |
, vx :mask & 8192 ? -1 : tmp.vx + part_dx * 17 | |
, vy :mask & 8192 ? -1 : tmp.vy + part_dy * 17 | |
}); | |
part_y += 64; | |
if(part_y >= cnv.height) | |
part_x += 64, | |
part_y = 0; | |
} else | |
if(tmp.match(/[-.][0-9-.][-.]/)) { | |
tmp.replace(/[0-9-.]/g, | |
function(str) { | |
if(isFinite(str)) | |
part_z = str; | |
part_m = part_m * 2 + (str != '-' ? 0 : 1); | |
}); | |
} else { | |
tmp = tmp.split(""); | |
mask = ((0x14725630 >> (tmp.shift() << 2)) & 7) << 10; | |
tmp.forEach(function(pin) { | |
if(pin.match(/[=_]/)) | |
mask |= 8192 << "=_".indexOf(pin); | |
else | |
mask |= 1 << pin; | |
}); | |
if(regexa.length) | |
patterns += (patterns.length ? "|" : "") + "(" + regexa.join("|") + ")"; | |
regexa = " ".repeat(str.length - 1).split(" "); | |
part_m = 0; | |
part_z = 9; | |
} | |
} | |
for(i in regexa) | |
regexa[i] += str[i].replace(/([[\\^$|?*+()])/g, "\\$1"); | |
} else | |
if(tmp.length > 0) | |
// Build the part image | |
part.push(tmp); | |
else | |
part = []; | |
}); | |
if(regexa.length) | |
patterns += (patterns.length ? "|" : "") + "(" + regexa.join("|") + ")"; | |
patterns = new RegExp(patterns, ""); | |
c2d.putImageData(pix, 0, 0); | |
var tags = [], tops = 0; | |
Page = document.getElementById("circuit").value; | |
Page = Page.replace(/^[A-Z][0-9_A-Z-+:;*@/].*$|^\*[A-Z]*[1-9][0-9]+[A-Z_0-9]*-.+$|^.\#[A-Z0-9a-z-\/,]+$/gim, function(s) { | |
if(s.charAt(0) == "*" || s.charAt(0) == "#") { | |
letters.chips[s.substr(1).split("-")[0]] = s.substr(s.indexOf("-") + 1); | |
return ""; | |
} else | |
if(!tags[s.charAt(0).toUpperCase()]) | |
tags[s.charAt(0).toUpperCase()] = []; | |
//tags[s.charAt(0).toUpperCase()] = tags[s.charAt(0).toUpperCase()].concat(s.split(",")); | |
tags[s.charAt(0).toUpperCase()] = tags[s.charAt(0).toUpperCase()].concat((s.charAt(0).toUpperCase() != s.charAt(0) ? s.substr(1) : s).split(/\s+/)); | |
-- tops; | |
return ""; | |
}).split(/\r?\n/); | |
for(var k in tags) | |
console.log(k + '\t' + tags[k][8]); | |
// | |
function draw_sheet(c2d, Page, values) { | |
var a, b, c, d, e, i, j, k, m, s, o, v, x, y, z, n, line; | |
var Pages=[]; | |
Page.unshift(""); | |
Page.unshift(""); | |
Page.push(""); | |
Page.push(""); | |
i = Page.length; | |
while(i --) | |
max = (x = Page[i].length) > max ? x : max; | |
i = Page.length; | |
while(i --) | |
Page[i] = " " + (Page[i] + " ".repeat(max + 2)).substr(0, max + 2); | |
for(n = 0; n < 10; ++ n) { | |
var counts = { | |
c :0 | |
, d :0 | |
, l :0 | |
, r :0 | |
, s :0 | |
, t :0 | |
, u :0 | |
, v :0 | |
, w :0 | |
}; | |
var values1 = { | |
c :"C1:1mf C2:2mf" | |
, r :"R1:1k R2:2k R3:3k R4:4k R5:5k R6:6k" | |
, t :"T1:KT315 T2:KT315" | |
, w :"X1: Y2: Z3: W4:" | |
}; | |
// Pages.push(Page.join("<br>")); | |
for(i = 0; i < max; ++ i) { | |
k = i + 0; | |
j = Page.length - 3; | |
x = i * 17; | |
y = (j - 4) * 17; | |
while(-- j > 1) { | |
//try{ | |
e = Page[j - 2]; | |
d = Page[j - 1]; | |
c = Page[j - 0]; | |
b = Page[j + 1]; | |
a = Page[j + 2]; | |
z = (e.substr(k, 5) + d.substr(k, 5) + c.substr(k, 5) + b.substr(k, 5) + a.substr(k, 5)); | |
z = z.match(patterns); | |
if(z) { | |
z = z.slice(1).join("\0").replace(/[^\0]+.+$/,"").length-0; | |
tmp = images[z]; | |
if(tmp.z == n) { | |
v = (z & 15) * 64, h = ((z >> 4) & 15) * 64; | |
c2d.drawImage(cnv, h, v, 64, 64, x, y, 64,64); | |
if((tmp.tag in counts) && tmp.tx >= 0 && tmp.ty >= 0) { | |
s = ((values[tmp.tag.toUpperCase()] || "")/*.split(/\s+/)*/[counts[tmp.tag.toLowerCase()] ++] || "").split(/:/); | |
c2d.font = "6pt Courier"; | |
c2d.fillStyle = "#00F"; | |
c2d.save(); | |
c2d.translate(x + tmp.tx, y + tmp.ty); | |
c2d.rotate(tmp.tz * Math.PI / 2); | |
c2d.translate(0, 4); | |
s[0] = s[0].replace("@", ""); | |
over = ""; v = s[0].charAt(0) == s[0].charAt(0).toLowerCase(); | |
s[0] = s[0].replace(/^#/, ""); | |
for(o = 0; o < s[0].length; ++ o) { | |
if(s[0].charAt(o) == "/") { | |
v = !v; | |
if(o) | |
over += " "; | |
continue; | |
} | |
over += v ? "_" : " "; | |
} | |
s[0] = s[0].replace(/^\//, ""); | |
c2d.fillText(over, -c2d.measureText(s[0]).width / 2, -9.5); | |
c2d.fillText(s[0], -c2d.measureText(s[0]).width / 2, 0); | |
c2d.restore(); | |
if(tmp.vx >= 0 && tmp.vy >= 0 && s[1]) { | |
s[1] = s[1].replace("@", "Ω"); | |
c2d.save(); | |
c2d.translate(x + tmp.vx, y + tmp.vy); | |
c2d.rotate(tmp.tz * Math.PI / 2); | |
c2d.translate(0, 4); | |
c2d.fillText(s[1], -c2d.measureText(s[1]).width / 2, -0.5); | |
c2d.restore(); | |
} | |
} | |
m = tmp.m; | |
for(v = 2; v >= 0; -- v) for(h = 2; h >= 0; -- h, m >>= 1) { | |
var hh=1; | |
z = j - 1 + v; | |
if(m & 1) | |
Page[z] = Page[z].substr(0, k + h + hh) + "?" + Page[z].substr(k + h + 1 + hh); | |
} | |
} | |
} | |
//}catch(e){} | |
y -= 17; | |
} | |
} | |
// document.getElementById("logo").innerHTML = Pages.join("<hr>"); | |
} | |
} | |
var sht = document.getElementById("Circuit"); | |
var s2d = sht.getContext("2d"); | |
draw_sheet(s2d, Page, tags); | |
// | |
document.body.appendChild(cnv); | |
} | |
Ascirc(document.getElementById("Parts").textContent); | |
</script> | |
</body> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment