DIJKSTRA START 0 .zacetna inicializacija, d=0 LDA #0 STA RAZDALJE, START STA PROV, START .zacetno vozlisce nima predhodnika LDA #-1 STA PREV, START .neskoncna while zanka WHILE LDS #-1 . S = -1, hrani vozlisce ki imam min razdaljo v okolici LDX #0 . stevec = 0 FOR1 LDA PROV, X . nalozi potencialno razdaljo sosednjega vozlisca v okolici CMP #-1 JEQ NEXT . ce ze obiskano=-2 ali neobiskano=-1 preskoci vozlisce CMP #-2 JEQ NEXT RMO S, A . sicer S v A CMP #-1 . ce S se ni nastavljen ga nastavi prvic JEQ SET STA old_X . 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 A, T . 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 CLEAR T TIX INPUT_V J FOR1 . ce ni vec vozlisc v okolici koncaj RMO S, A CMP #-1 JEQ HALT .sicer p. razdaljo shrani kot dejansko in oznaci vozlisce kot obiskano RMO S, X STA D, X LDA #-2 STA PROV, X .nato dodaj vozlisca v okolico oz. posodobi razdalje obstojecih vozlisc v okolici LDX #0 FOR2 LDA INPUT_X, X COMPR A, S JGT NEXT2 JLT NEXT2 NEXT2 TIX INPUT_V J FOR2 . J ZA WHILE?! HALT J HALT END DIJKSTRA .vhodni parametri INPUT_V = 9 INPUT_E = 16 INPUT_X RESW 100 INPUT_Y RESW 100 INPUT_W RESW 100 .pomozne spremenljivke old_X RESW 1 .najkrajse razdalje D RESW 9 .prejsnje vozlisce PREV RESW 9 .provisional razdalje (okolica), -2 = done, -1 neobiskan PROV RESW 9 .indeks zacetnega vozlisca START WORD 0