almost done
This commit is contained in:
parent
d03cb64ac0
commit
325f63e78a
1 changed files with 57 additions and 57 deletions
|
|
@ -6,33 +6,32 @@ dijk START 0
|
||||||
STA PROV, X
|
STA PROV, X
|
||||||
.zacetno vozlisce nima predhodnika
|
.zacetno vozlisce nima predhodnika
|
||||||
LDA minus_ena
|
LDA minus_ena
|
||||||
STA PREV, X
|
|
||||||
.neskoncna while zanka
|
.neskoncna while zanka
|
||||||
WHILE LDS minus_ena . S = -1, hrani vozlisce ki imam min razdaljo v okolici
|
WHILE LDS minus_ena . S = -1, hrani vozlisce ki imam min razdaljo v okolici
|
||||||
LDX #0 . stevec = 0
|
LDX #0 . stevec = 0
|
||||||
|
FOR1 RMO X, A
|
||||||
FOR1 LDA PROV, X . nalozi potencialno razdaljo sosednjega vozlisca v okolici
|
STA old_X
|
||||||
|
LDA PROV, X . nalozi potencialno razdaljo sosednjega vozlisca v okolici
|
||||||
COMP minus_ena
|
COMP minus_ena
|
||||||
JEQ NEXT . ce ze obiskano=-2 ali neobiskano=-1 preskoci vozlisce
|
JEQ NEXT . ce ze obiskano=-2 ali neobiskano=-1 preskoci vozlisce
|
||||||
COMP minus_dva
|
COMP minus_dva
|
||||||
JEQ NEXT
|
JEQ NEXT
|
||||||
RMO S, A . sicer S v A
|
RMO S, A . sicer S v A
|
||||||
COMP minus_ena . ce S se ni nastavljen ga nastavi prvic
|
COMP minus_ena . ce S se ni nastavljen ga nastavi prvic
|
||||||
JEQ SET
|
JEQ SET . sicer poglej ali ima trenutno vozl. manjso pot. razdaljo prov[X] < prov[S]
|
||||||
STA old_X . sicer poglej ali ima trenutno vozl. manjso pot. razdaljo prov[X] < prov[S]
|
LDA PROV, X . nalozi p. razdaljo tren. vozl.
|
||||||
LDA PROV, X . nalozi p. razdaljo tren. vozl.
|
RMO A, T . shrani jo v T reg.
|
||||||
RMO A, T . shrani jo v T reg.
|
RMO S, X . premakni trenutni ix min. vozl. v X za ix naslavljanje
|
||||||
RMO S, X . premakni trenutni ix min. vozl. v X za ix naslavljanje
|
LDA PROV, X . nalozi trenutno min razdaljo
|
||||||
LDA PROV, X . nalozi trenutno min razdaljo
|
LDX old_X . obnovi X, vrednost stevca zanke FOR1
|
||||||
LDX old_X . obnovi X, vrednost stevca zanke FOR1
|
COMPR T, A . primerjaj vrednosti tj. ce razdalja ni krajsa preskoci, sicer SET
|
||||||
COMPR T, A . primerjaj vrednosti tj. ce razdalja ni krajsa preskoci, sicer SET
|
JEQ NEXT
|
||||||
JEQ NEXT
|
|
||||||
JGT NEXT
|
JGT NEXT
|
||||||
SET RMO X, S . S nastavi na ix vozlisca - trenutna iteracija
|
SET RMO X, S . S nastavi na ix vozlisca - trenutna iteracija
|
||||||
NEXT RMO X, A
|
NEXT RMO X, A
|
||||||
COMP table_len
|
|
||||||
ADD #3
|
ADD #3
|
||||||
RMO A, X
|
RMO A, X
|
||||||
|
COMP #table_len
|
||||||
JLT FOR1
|
JLT FOR1
|
||||||
|
|
||||||
. ce ni vec vozlisc v okolici koncaj
|
. ce ni vec vozlisc v okolici koncaj
|
||||||
|
|
@ -48,44 +47,54 @@ NEXT RMO X, A
|
||||||
|
|
||||||
.nato dodaj vozlisca v okolico oz. posodobi razdalje obstojecih vozlisc v okolici
|
.nato dodaj vozlisca v okolico oz. posodobi razdalje obstojecih vozlisc v okolici
|
||||||
LDX #0 . stevec na 0
|
LDX #0 . stevec na 0
|
||||||
FOR2 LDA INPUT_X, X . preveri ali je to povezava ki izvira v vozl. S
|
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
|
COMPR A, S
|
||||||
JGT NEXT2 . ce ni preskoci
|
JGT NEXT2 . ce ni preskoci
|
||||||
JLT NEXT2
|
JLT NEXT2
|
||||||
.sicer preveri ali je vozlisce ze obiskano
|
.sicer preveri ali je sosednje vozlisce ze obiskano
|
||||||
LDA PROV, X
|
LDA INPUT_Y, X . nalozi ix soseda
|
||||||
COMP minus_dva
|
MUL #3
|
||||||
JEQ NEXT2
|
RMO A, X . premakni v X
|
||||||
COMP minus_ena .se se ni obiskano, nastavi vrednost p. razdalje
|
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
|
JEQ SET2
|
||||||
|
.sicer preveri da je nova p. razdalja manjsa od trenutne
|
||||||
RMO X, A
|
. D[S] + w < PROV[Y]
|
||||||
STA old_X . zacasno zamenjaj vrednost X
|
|
||||||
RMO S, X
|
|
||||||
LDA D, X . D[S] -> A
|
|
||||||
RMO A, T . zacasno shrani v T
|
|
||||||
LDX old_X
|
|
||||||
LDA INPUT_W, X
|
|
||||||
ADDR T, A . D[S] + w
|
|
||||||
RMO A, T . zacasno shrani v T
|
|
||||||
LDA PROV, X
|
|
||||||
COMPR A, T
|
|
||||||
JEQ NEXT2
|
|
||||||
JGT NEXT2
|
|
||||||
SET2 RMO X, A
|
|
||||||
STA old_X
|
|
||||||
RMO S, X
|
RMO S, X
|
||||||
LDA D, X
|
LDA D, X
|
||||||
RMO A, T
|
|
||||||
LDX old_X
|
LDX old_X
|
||||||
LDA INPUT_W, X
|
ADD INPUT_W, X
|
||||||
ADDR T, A
|
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
|
STA PROV, X
|
||||||
RMO X, A
|
LDX old_X
|
||||||
STA PREV, X
|
NEXT2 RMO X, A
|
||||||
NEXT2 RMO A, X
|
|
||||||
COMP table_len
|
|
||||||
ADD #3
|
ADD #3
|
||||||
|
RMO A, X
|
||||||
|
COMP #table_len
|
||||||
JLT FOR2
|
JLT FOR2
|
||||||
|
|
||||||
J WHILE
|
J WHILE
|
||||||
|
|
@ -148,6 +157,7 @@ INPUT_W WORD 8
|
||||||
|
|
||||||
.pomozne spremenljivke
|
.pomozne spremenljivke
|
||||||
old_X RESW 1
|
old_X RESW 1
|
||||||
|
old_S RESW 1
|
||||||
minus_ena WORD X'FFFFFF'
|
minus_ena WORD X'FFFFFF'
|
||||||
minus_dva WORD X'FFFFFE'
|
minus_dva WORD X'FFFFFE'
|
||||||
.najkrajse razdalje
|
.najkrajse razdalje
|
||||||
|
|
@ -160,16 +170,6 @@ D WORD -1
|
||||||
WORD -1
|
WORD -1
|
||||||
WORD -1
|
WORD -1
|
||||||
WORD -1
|
WORD -1
|
||||||
.prejsnje vozlisce
|
|
||||||
PREV 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
|
.provisional razdalje (okolica), -2 = done, -1 neobiskan
|
||||||
PROV WORD -1
|
PROV WORD -1
|
||||||
WORD -1
|
WORD -1
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue