checkpoint hw bonus
This commit is contained in:
parent
6033833d97
commit
a0a6fc7a5e
1 changed files with 37 additions and 28 deletions
|
|
@ -1,47 +1,56 @@
|
||||||
DIJKSTRA START 0
|
DIJKSTRA START 0
|
||||||
.zacetna inicializacija
|
.zacetna inicializacija, d=0
|
||||||
LDA #0
|
LDA #0
|
||||||
STA RAZDALJE, START
|
STA RAZDALJE, START
|
||||||
STA PROV, START
|
STA PROV, START
|
||||||
|
.zacetno vozlisce nima predhodnika
|
||||||
LDA #-1
|
LDA #-1
|
||||||
STA PREV, START
|
STA PREV, START
|
||||||
WHILE LDS #-1
|
.neskoncna while zanka
|
||||||
LDX #0
|
WHILE LDS #-1 . S = -1, hrani vozlisce ki imam min razdaljo v okolici
|
||||||
FOR1 LDA PROV, X
|
LDX #0 . stevec = 0
|
||||||
CMP #0
|
FOR1 LDA PROV, X . nalozi potencialno razdaljo sosednjega vozlisca v okolici
|
||||||
JLT NEXT
|
|
||||||
RMO S, A
|
|
||||||
CMP #-1
|
CMP #-1
|
||||||
JEQ SET
|
JEQ NEXT . ce ze obiskano=-2 ali neobiskano=-1 preskoci vozlisce
|
||||||
STA old_X
|
CMP #-2
|
||||||
LDA PROV, X
|
|
||||||
RMO A, T
|
|
||||||
RMO S, X
|
|
||||||
LDA PROV, X
|
|
||||||
LDX old_X
|
|
||||||
COMPR A, T . A-> PROV[Y] T -> PROV[X]
|
|
||||||
JGT NEXT
|
|
||||||
JEQ NEXT
|
JEQ NEXT
|
||||||
SET RMO X, S
|
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
|
RMO S, A
|
||||||
COMP #-1
|
CMP #-1
|
||||||
JEQ HALT
|
JEQ HALT
|
||||||
|
.sicer p. razdaljo shrani kot dejansko in oznaci vozlisce kot obiskano
|
||||||
RMO S, X
|
RMO S, X
|
||||||
LDA PROV, X
|
|
||||||
STA D, X
|
STA D, X
|
||||||
LDA #-2
|
LDA #-2
|
||||||
STA PROV, X
|
STA PROV, X
|
||||||
|
.nato dodaj vozlisca v okolico oz. posodobi razdalje obstojecih vozlisc v okolici
|
||||||
LDX #0
|
LDX #0
|
||||||
FOR2
|
FOR2 LDA INPUT_X, X
|
||||||
|
COMPR A, S
|
||||||
TIX INPUT_E
|
JGT NEXT2
|
||||||
JLT FOR2
|
JLT NEXT2
|
||||||
|
|
||||||
NEXT TIX INPUT_V
|
|
||||||
J FOR1
|
NEXT2 TIX INPUT_V
|
||||||
|
J FOR2
|
||||||
|
. J ZA WHILE?!
|
||||||
HALT J HALT
|
HALT J HALT
|
||||||
END DIJKSTRA
|
END DIJKSTRA
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue