<<<--- % Author Martin Ruckert % modified from program L PREFIX :MListSort: R IS $0 & Parameter n IS $1 H IS $2 m IS $3 T IS $4 & Suggested by exercise 5.2.1-35. K IS $5 j IS $6 & Local variables p IS $7 q IS $8 k IS $9 kp IS $10 i IS $11 h IS $12 t IS $13 LINK IS 0 KEY IS 8 :ListMsort IS @ --->>> ListMsort ADDU K,R,KEY \hfil$1$ SL i,m,3 \hfil$1$ & Clear heads. JMP 1F \hfil$1$ 0H STCO 0,H,i; STCO 0,T,i \hfil$N$ & Suggested by exercise 5.2.1-35. 1H SUB i,i,8 \hfil$M+1$ PBNN i,0B \hfil$M+3$ <<<--- --->>> SL j,n,4 \hfil$1$ & \ul{\sl M1. Loop on $j$.} JMP 0F \hfil$1$ <<<--- --->>> 2H ADDU h,R,j \hfil$N$ & \ul{\sl M2. Set up $p$, $q$, $K$.} LDO k,K,j \hfil$N$ MUL i,k,m \hfil$10N$ SRU i,i,10-3 \hfil$N$ & Offset into the array of heads. ADDU q,i,H \hfil$N$ & $q \is H+8\lfloor M\cdot K_j/2^{10}\rfloor$. JMP 4F \hfil$N$ & Jump to load and test $p$. <<<--- --->>> 3H LDO kp,p,KEY \hfil$B+N-A$ & \ul{\sl M3. Compare $K:K_p$.} CMP t,k,kp \hfil$B+N-A$ BNP t,5F \hfil$B+3(N-A)$ <<<--- --->>> SET q,p \hfil$B$ & \ul{\sl M4. Bump $p$, $q$.} 4H LDOU p,q \hfil$B+N$ PBNZ p,3B \hfil$B+N+2A$ <<<--- exercise 35--->>> STOU h,T,i \hfil$N$ & Suggested by exercise 5.2.1-35. <<<--- --->>> 5H STOU h,q \hfil$N$ & \ul{\sl M5. Insert into list.} STOU p,R,j \hfil$N$ <<<--- --->>> 0H SUB j,j,16 \hfil$N+1$ PBNN j,2B \hfil$N+3$ <<<--- POP 1,0 PREFIX : --->>>