From ef273790b820fe5904dd1a5ab179864e756d9591 Mon Sep 17 00:00:00 2001 From: "aljazbrodar." Date: Thu, 11 Dec 2025 08:19:08 +0100 Subject: [PATCH] final version --- .../build/Desktop_Qt_6_10_1-Debug/.ninja_deps | Bin 312356 -> 329020 bytes .../build/Desktop_Qt_6_10_1-Debug/.ninja_log | 12 ++ .../CMakeFiles/simulator.dir/mainwindow.cpp.o | Bin 1764720 -> 1764736 bytes .../Desktop_Qt_6_10_1-Debug/Demo/dijkstra.asm | 186 ++++++++++++++++++ .../Desktop_Qt_6_10_1-Debug/Demo/dijkstra.obj | 18 ++ .../Desktop_Qt_6_10_1-Debug/Demo/horner.asm | 29 +++ .../{ => Demo}/horner.obj | 0 .../Desktop_Qt_6_10_1-Debug/Demo/poly.asm | 39 ++++ .../Desktop_Qt_6_10_1-Debug/Demo/poly.obj | 5 + .../Demo/sub_rou_horner.asm | 47 +++++ .../Demo/sub_rou_horner.obj | 5 + .../build/Desktop_Qt_6_10_1-Debug/simulator | Bin 1925984 -> 1925984 bytes .../simulator_autogen/include/ui_mainwindow.h | 66 +++---- ass2/simulator/mainwindow.ui | 138 ++++++------- 14 files changed, 443 insertions(+), 102 deletions(-) create mode 100644 ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/dijkstra.asm create mode 100644 ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/dijkstra.obj create mode 100644 ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/horner.asm rename ass2/simulator/build/Desktop_Qt_6_10_1-Debug/{ => Demo}/horner.obj (100%) create mode 100644 ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/poly.asm create mode 100644 ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/poly.obj create mode 100644 ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/sub_rou_horner.asm create mode 100644 ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/sub_rou_horner.obj diff --git a/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/.ninja_deps b/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/.ninja_deps index 6dba65b803154caaf6da5150f264744e68032c89..8417bcc9207ecb547eec2e654f603de0600b5bb1 100644 GIT binary patch delta 106 zcmZ3|A-tzcq@jheg{g&k3yaE;=?~bLIM~1P+>g>1YuLWOg>fx6ocDhNi1$ZdeFsR+ e{w|{|C;RsoZ?5*kRl;}>l|sx`1`{AEML7Wh7AuJW delta 17 YcmdnfC9v-bik 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 diff --git a/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/dijkstra.asm b/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/dijkstra.asm new file mode 100644 index 0000000..1b2545a --- /dev/null +++ b/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/dijkstra.asm @@ -0,0 +1,186 @@ +dijk START 0 + .zacetna inicializacija, d=0 + LDA #0 + LDX ZAC + STA D, X + STA PROV, X + .neskoncna while zanka +WHILE LDS minus_ena . S = -1, hrani vozlisce ki imam min razdaljo v okolici + LDX #0 . stevec = 0 +FOR1 RMO X, A + STA old_X . shrani vrednost X-a + LDA PROV, X . nalozi potencialno razdaljo sosednjega vozlisca v okolici + COMP minus_ena + JEQ NEXT . ce ze obiskano=-2 ali neobiskano=-1 preskoci vozlisce + COMP minus_dva + JEQ NEXT + RMO S, A . sicer S v A + COMP minus_ena . ce S se ni nastavljen ga nastavi prvic + JEQ SET . sicer poglej ali ima trenutno vozl. manjso pot. razdaljo prov[X] < prov[S] + LDA PROV, X . nalozi p. razdaljo tren. vozl. + RMO A, T . shrani jo v T reg. + RMO S, X . premakni trenutni ix min. vozl. v X za ix naslavljanje + LDA PROV, X . nalozi trenutno min razdaljo + LDX old_X . obnovi X, vrednost stevca zanke FOR1 + COMPR T, A . primerjaj vrednosti tj. ce razdalja ni krajsa preskoci, sicer SET + JEQ NEXT + JGT NEXT +SET RMO X, S . S nastavi na ix vozlisca - trenutna iteracija +NEXT RMO X, A + ADD #3 + RMO A, X + COMP #table_len + JLT FOR1 + + . ce ni vec vozlisc v okolici koncaj + RMO S, A + COMP minus_ena + JEQ HALT + .sicer p. razdaljo shrani kot dejansko in oznaci vozlisce kot obiskano + RMO S, X + LDA PROV, X + STA D, X + LDA minus_dva + STA PROV, X + + .nato dodaj vozlisca v okolico oz. posodobi razdalje obstojecih vozlisc v okolici + LDX #0 . stevec na 0 +FOR2 RMO X, A + STA old_X + LDA INPUT_X, X . preveri ali je to povezava ki izvira v vozl. S + MUL #3 . pomnozi s 3 da lahko primerjamo s S, ki steje ix WORDa + COMPR A, S + JGT NEXT2 . ce ni preskoci + JLT NEXT2 + .sicer preveri ali je sosednje vozlisce ze obiskano + LDA INPUT_Y, X . nalozi ix soseda + MUL #3 + RMO A, X . premakni v X + LDA PROV, X . nalozi sosedovo potencialno razdaljo + LDX old_X . obnovi X + COMP minus_dva . poglej ce je ze obiskan + JEQ NEXT2 + COMP minus_ena .ce se ni obiskan, nastavi vrednost p. razdalje + JEQ SET2 + .sicer preveri da je nova p. razdalja manjsa od trenutne + . D[S] + w < PROV[Y] + RMO S, X + LDA D, X + LDX old_X + ADD INPUT_W, X + RMO A, T + LDA INPUT_Y, X + MUL #3 + RMO A, X + LDA PROV, X + LDX old_X + COMPR A, T + JEQ NEXT2 + JLT NEXT2 + +SET2 RMO S, X + LDA D, X + LDX old_X + ADD INPUT_W, X + RMO A, T + LDA INPUT_Y, X + MUL #3 + RMO A, X + RMO T, A + STA PROV, X + LDX old_X +NEXT2 RMO X, A + ADD #3 + RMO A, X + COMP #table_len2 + JLT FOR2 + + J WHILE + +HALT J HALT + END dijk + + +.vhodni parametri +INPUT_V WORD 9 +INPUT_E WORD 16 +INPUT_X WORD 0 + WORD 0 + WORD 1 + WORD 1 + WORD 2 + WORD 2 + WORD 3 + WORD 3 + WORD 3 + WORD 3 + WORD 3 + WORD 4 + WORD 4 + WORD 5 + WORD 6 + WORD 7 +INPUT_Y WORD 1 + WORD 2 + WORD 2 + WORD 3 + WORD 6 + WORD 3 + WORD 6 + WORD 8 + WORD 7 + WORD 5 + WORD 4 + WORD 1 + WORD 5 + WORD 7 + WORD 8 + WORD 8 +INPUT_W WORD 8 + WORD 12 + WORD 13 + WORD 25 + WORD 21 + WORD 14 + WORD 12 + WORD 16 + WORD 12 + WORD 8 + WORD 20 + WORD 9 + WORD 19 + WORD 11 + WORD 11 + WORD 9 +last EQU * + +.pomozne spremenljivke +old_X RESW 1 +old_S RESW 1 +minus_ena WORD X'FFFFFF' +minus_dva WORD X'FFFFFE' +.najkrajse razdalje +D WORD -1 + WORD -1 + WORD -1 + WORD -1 + WORD -1 + WORD -1 + WORD -1 + WORD -1 + WORD -1 +.provisional razdalje (okolica), -2 = done, -1 neobiskan +PROV WORD -1 + WORD -1 + WORD -1 + WORD -1 + WORD -1 + WORD -1 + WORD -1 + WORD -1 + WORD -1 +last_in EQU * +table_len EQU last_in - PROV +table_len2 EQU last - INPUT_W +.indeks zacetnega vozlisca * 3 +ZAC WORD 0 diff --git a/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/dijkstra.obj b/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/dijkstra.obj new file mode 100644 index 0000000..d0dcd2f --- /dev/null +++ b/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/dijkstra.obj @@ -0,0 +1,18 @@ +Hdijk 0000000001C6 +T0000001E0100000721BD0FA1840FA19C6F2178050000AC100F216A03A18E2B216A33 +T00001E1E20252B216733201FAC402B215C33201503A177AC05AC4103A170072146A0 +T00003C1E50332005372002AC14AC10190003AC0129001B3B2FC0AC402B213033208E +T00005A1EAC4103A1490FA12B0321250FA140050000AC100F211103A07E210003A004 +T0000781E37205D3B205A03A0A0210003AC0103A11F0720F52B20FB3320462B20F233 +T0000961E2023AC4103A0F00720E11BA0AEAC0503A079210003AC0103A0F80720CEA0 +T0000B41E053320203B201DAC4103A0CD0720BE1BA08BAC0503A056210003AC01AC50 +T0000D21E0FA0D30720A9AC10190003AC012900303B2F863F2F243F2FFD0000090000 +T0000F01E100000000000000000010000010000020000020000030000030000030000 +T00010E1E030000030000040000040000050000060000070000010000020000020000 +T00012C1E030000060000030000060000080000070000050000040000010000050000 +T00014A1E0700000800000800000800000C00000D00001900001500000E00000C0000 +T000168191000000C00000800001400000900001300000B00000B000009 +T0001871EFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +T0001A51EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +T0001C303000000 +E000000 diff --git a/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/horner.asm b/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/horner.asm new file mode 100644 index 0000000..389a8d9 --- /dev/null +++ b/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/horner.asm @@ -0,0 +1,29 @@ +HORNER START 0 + . Pretvorimo polinom x^4 + 2x^3 + 3x^2 + 4x+5 v Hornerjevo obliko + . b_n = a_n = 1 + . b_n-1 = 2 + b_n * x = 2 + 1 * x = 4 + . b_n-2 = 3 + b_n-1 * x = 3 + 4 * x = 11 + . b_n-3 = 4 + b_n-2 * x = 4 + 11 * x = 26 + . b_n-4 = 5 + b_n-3 * x = 5 + 26 * x = 57 + . kjer x = 2 + + LDA #1 + + MUL x + ADD #2 + + MUL x + ADD #3 + + MUL x + ADD #4 + + MUL x + ADD #5 + + STA res +karkoli J karkoli + END HORNER + +x WORD 2 +res RESW 1 diff --git a/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/horner.obj b/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/horner.obj similarity index 100% rename from ass2/simulator/build/Desktop_Qt_6_10_1-Debug/horner.obj rename to ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/horner.obj diff --git a/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/poly.asm b/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/poly.asm new file mode 100644 index 0000000..b0df1e4 --- /dev/null +++ b/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/poly.asm @@ -0,0 +1,39 @@ +POLY START 0 + .x^4 + LDA x + MUL x + MUL x + MUL x + STA res + CLEAR A + .+2x^3 + LDA x + MUL x + MUL x + MUL #2 + ADD res + STA res + CLEAR A + .+3x^2 + LDA x + MUL x + MUL #3 + ADD res + STA res + CLEAR A + .+4x + LDA x + MUL #4 + ADD res + STA res + CLEAR A + .+5 + LDA res + ADD #5 + STA res + CLEAR A +HALT J HALT + END POLY + +x WORD 2 +res RESW 1 diff --git a/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/poly.obj b/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/poly.obj new file mode 100644 index 0000000..85921f8 --- /dev/null +++ b/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/poly.obj @@ -0,0 +1,5 @@ +HPOLY 000000000058 +T0000001E03204F23204C2320492320460F2046B40003203E23203B2320382100021B +T00001E1E20350F2032B40003202A2320272100031B20240F2021B400032019210004 +T00003C191B20160F2013B40003200E1900050F2008B4003F2FFD000002 +E000000 diff --git a/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/sub_rou_horner.asm b/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/sub_rou_horner.asm new file mode 100644 index 0000000..2a5dea1 --- /dev/null +++ b/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/sub_rou_horner.asm @@ -0,0 +1,47 @@ +MAIN START 0 + .nastavi X register za prehod cez tabelo + LDX counter + .izracun vrednosti za vsak x v tabeli in +LOOP STA ctx_a + JSUB HORNER_X + LDA counter + ADD #3 + STA counter + LDX counter + COMP #bytes_len + JLT LOOP + +HALT J HALT + END MAIN + +HORNER_X LDA #1 + + MUL in, X + ADD #2 + + MUL in, X + ADD #3 + + MUL in, X + ADD #4 + + MUL in, X + ADD #5 + + STA in, X + + .povrni kontekst pred skokom v subrutino + LDA ctx_a + + RSUB + +.tabela x-ov polinoma +in WORD 0 + WORD 2 + WORD 3 +.parametri +lastin EQU * +bytes_len EQU lastin - in +counter WORD 0 +.kontest +ctx_a RESW 1 diff --git a/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/sub_rou_horner.obj b/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/sub_rou_horner.obj new file mode 100644 index 0000000..9680a1f --- /dev/null +++ b/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/Demo/sub_rou_horner.obj @@ -0,0 +1,5 @@ +HMAIN 000000000051 +T0000001E0720480F20484B201503203F1900030F20390720362900093B2FE83F2FFD +T00001E1E01000123A01E19000223A01819000323A01219000423A00C1900050FA006 +T00003C1203200F4F0000000000000002000003000000 +E000000 diff --git a/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/simulator b/ass2/simulator/build/Desktop_Qt_6_10_1-Debug/simulator index b34f8e85c9d713b9b0f207e4b5f6a52742ca8a3e..a5ffc933e5d65fdb99daa19b96a04cfe04168257 100755 GIT binary patch delta 48784 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"centralwidget"); groupBox = new QGroupBox(centralwidget); groupBox->setObjectName("groupBox"); - groupBox->setGeometry(QRect(10, 20, 191, 301)); + groupBox->setGeometry(QRect(10, 20, 191, 231)); labelA = new QLabel(groupBox); labelA->setObjectName("labelA"); labelA->setGeometry(QRect(20, 40, 58, 15)); - labelL = new QLabel(groupBox); - labelL->setObjectName("labelL"); - labelL->setGeometry(QRect(20, 240, 58, 15)); labelB = new QLabel(groupBox); labelB->setObjectName("labelB"); - labelB->setGeometry(QRect(20, 120, 58, 15)); + labelB->setGeometry(QRect(20, 80, 58, 15)); labelS = new QLabel(groupBox); labelS->setObjectName("labelS"); - labelS->setGeometry(QRect(20, 160, 58, 15)); + labelS->setGeometry(QRect(20, 120, 58, 15)); labelT = new QLabel(groupBox); labelT->setObjectName("labelT"); - labelT->setGeometry(QRect(20, 200, 58, 15)); - labelPC = new QLabel(groupBox); - labelPC->setObjectName("labelPC"); - labelPC->setGeometry(QRect(20, 80, 91, 16)); + labelT->setGeometry(QRect(20, 160, 58, 15)); labelF = new QLabel(groupBox); labelF->setObjectName("labelF"); - labelF->setGeometry(QRect(20, 280, 58, 15)); + labelF->setGeometry(QRect(20, 200, 58, 15)); label_2 = new QLabel(groupBox); label_2->setObjectName("label_2"); label_2->setGeometry(QRect(20, 20, 58, 15)); - label_3 = new QLabel(groupBox); - label_3->setObjectName("label_3"); - label_3->setGeometry(QRect(20, 60, 58, 15)); label_4 = new QLabel(groupBox); label_4->setObjectName("label_4"); - label_4->setGeometry(QRect(20, 100, 58, 15)); + label_4->setGeometry(QRect(20, 60, 58, 15)); label_5 = new QLabel(groupBox); label_5->setObjectName("label_5"); - label_5->setGeometry(QRect(20, 140, 58, 15)); + label_5->setGeometry(QRect(20, 100, 58, 15)); label_6 = new QLabel(groupBox); label_6->setObjectName("label_6"); - label_6->setGeometry(QRect(20, 180, 58, 15)); - label_7 = new QLabel(groupBox); - label_7->setObjectName("label_7"); - label_7->setGeometry(QRect(20, 220, 58, 15)); + label_6->setGeometry(QRect(20, 140, 58, 15)); label_8 = new QLabel(groupBox); label_8->setObjectName("label_8"); - label_8->setGeometry(QRect(20, 260, 58, 16)); + label_8->setGeometry(QRect(20, 180, 58, 16)); groupBox_2 = new QGroupBox(centralwidget); groupBox_2->setObjectName("groupBox_2"); - groupBox_2->setGeometry(QRect(10, 330, 161, 80)); + groupBox_2->setGeometry(QRect(10, 260, 161, 80)); labelX = new QLabel(groupBox_2); labelX->setObjectName("labelX"); labelX->setGeometry(QRect(20, 50, 58, 15)); @@ -147,13 +135,25 @@ public: label_10->setGeometry(QRect(20, 30, 58, 15)); groupBox_3 = new QGroupBox(centralwidget); groupBox_3->setObjectName("groupBox_3"); - groupBox_3->setGeometry(QRect(20, 460, 161, 80)); + groupBox_3->setGeometry(QRect(10, 350, 161, 151)); labelSW = new QLabel(groupBox_3); labelSW->setObjectName("labelSW"); - labelSW->setGeometry(QRect(10, 50, 58, 15)); + labelSW->setGeometry(QRect(20, 130, 58, 15)); label_11 = new QLabel(groupBox_3); label_11->setObjectName("label_11"); - label_11->setGeometry(QRect(10, 30, 58, 15)); + label_11->setGeometry(QRect(20, 110, 58, 15)); + label_3 = new QLabel(groupBox_3); + label_3->setObjectName("label_3"); + label_3->setGeometry(QRect(20, 30, 58, 15)); + labelPC = new QLabel(groupBox_3); + labelPC->setObjectName("labelPC"); + labelPC->setGeometry(QRect(20, 50, 91, 16)); + label_7 = new QLabel(groupBox_3); + label_7->setObjectName("label_7"); + label_7->setGeometry(QRect(20, 70, 58, 15)); + labelL = new QLabel(groupBox_3); + labelL->setObjectName("labelL"); + labelL->setGeometry(QRect(20, 90, 58, 15)); layoutWidget = new QWidget(centralwidget); layoutWidget->setObjectName("layoutWidget"); layoutWidget->setGeometry(QRect(240, 20, 541, 641)); @@ -265,18 +265,14 @@ public: actionExit->setText(QCoreApplication::translate("MainWindow", "Exit", nullptr)); groupBox->setTitle(QCoreApplication::translate("MainWindow", "Splo\305\241nonamenski registri", nullptr)); labelA->setText(QCoreApplication::translate("MainWindow", "labelA", nullptr)); - labelL->setText(QCoreApplication::translate("MainWindow", "labelL", nullptr)); labelB->setText(QCoreApplication::translate("MainWindow", "labelB", nullptr)); labelS->setText(QCoreApplication::translate("MainWindow", "labelS", nullptr)); labelT->setText(QCoreApplication::translate("MainWindow", "labelT", nullptr)); - labelPC->setText(QCoreApplication::translate("MainWindow", "labelPC", nullptr)); labelF->setText(QCoreApplication::translate("MainWindow", "labelF", nullptr)); label_2->setText(QCoreApplication::translate("MainWindow", "A", nullptr)); - label_3->setText(QCoreApplication::translate("MainWindow", "PC", nullptr)); label_4->setText(QCoreApplication::translate("MainWindow", "B", nullptr)); label_5->setText(QCoreApplication::translate("MainWindow", "S", nullptr)); label_6->setText(QCoreApplication::translate("MainWindow", "T", nullptr)); - label_7->setText(QCoreApplication::translate("MainWindow", "L", nullptr)); label_8->setText(QCoreApplication::translate("MainWindow", "F", nullptr)); groupBox_2->setTitle(QCoreApplication::translate("MainWindow", "Indeksni register", nullptr)); labelX->setText(QCoreApplication::translate("MainWindow", "labelX", nullptr)); @@ -284,6 +280,10 @@ public: groupBox_3->setTitle(QCoreApplication::translate("MainWindow", "Statusni register", nullptr)); labelSW->setText(QCoreApplication::translate("MainWindow", "labelSW", nullptr)); label_11->setText(QCoreApplication::translate("MainWindow", "SW", nullptr)); + label_3->setText(QCoreApplication::translate("MainWindow", "PC", nullptr)); + labelPC->setText(QCoreApplication::translate("MainWindow", "labelPC", nullptr)); + label_7->setText(QCoreApplication::translate("MainWindow", "L", nullptr)); + labelL->setText(QCoreApplication::translate("MainWindow", "labelL", nullptr)); label->setText(QCoreApplication::translate("MainWindow", "Pomnilnik", nullptr)); addressLineEdit->setText(QString()); addressLineEdit->setPlaceholderText(QCoreApplication::translate("MainWindow", "Pomnilniski naslov", nullptr)); diff --git a/ass2/simulator/mainwindow.ui b/ass2/simulator/mainwindow.ui index 6679821..e3e6483 100644 --- a/ass2/simulator/mainwindow.ui +++ b/ass2/simulator/mainwindow.ui @@ -24,7 +24,7 @@ 10 20 191 - 301 + 231 @@ -43,24 +43,11 @@ labelA - - - - 20 - 240 - 58 - 15 - - - - labelL - - 20 - 120 + 80 58 15 @@ -73,7 +60,7 @@ 20 - 160 + 120 58 15 @@ -86,7 +73,7 @@ 20 - 200 + 160 58 15 @@ -95,24 +82,11 @@ labelT - - - - 20 - 80 - 91 - 16 - - - - labelPC - - 20 - 280 + 200 58 15 @@ -134,24 +108,11 @@ A - - - - 20 - 60 - 58 - 15 - - - - PC - - 20 - 100 + 60 58 15 @@ -164,7 +125,7 @@ 20 - 140 + 100 58 15 @@ -177,7 +138,7 @@ 20 - 180 + 140 58 15 @@ -186,24 +147,11 @@ T - - - - 20 - 220 - 58 - 15 - - - - L - - 20 - 260 + 180 58 16 @@ -217,7 +165,7 @@ 10 - 330 + 260 161 80 @@ -255,10 +203,10 @@ - 20 - 460 + 10 + 350 161 - 80 + 151 @@ -267,8 +215,8 @@ - 10 - 50 + 20 + 130 58 15 @@ -280,8 +228,8 @@ - 10 - 30 + 20 + 110 58 15 @@ -290,6 +238,58 @@ SW + + + + 20 + 30 + 58 + 15 + + + + PC + + + + + + 20 + 50 + 91 + 16 + + + + labelPC + + + + + + 20 + 70 + 58 + 15 + + + + L + + + + + + 20 + 90 + 58 + 15 + + + + labelL + +