anchor.diff:  	load_library_db_to_cache()
   	if(!cachedbooks)
   		return
  -	libcomp_menu = ""
  -	for(var/datum/cachedbook/C in cachedbooks)
  -		libcomp_menu += "<tr><td>[C.author]</td><td>[C.title]</td><td>[C.category]</td><td><A href='?src=\ref[src];targetid=[C.id]'>\[Order\]</A></td></tr>\n"
  +	libcomp_menu = list("")
  +	
  +	for(var/i in 1 to cachedbooks.len)
  +		var/datum/cachedbook/C = cachedbooks[i]
  +		page = round(i/250)+1
  +		if (libcomp_menu.len < page)
  +			libcomp_menu[] = ""
  +		libcomp_menu[page] += "<tr><td>[C.author]</td><td>[C.title]</td><td>[C.category]</td><td><A href='?src=\ref[src];targetid=[C.id]'>\[Order\]</A></td></tr>\n"
   
   /obj/machinery/computer/libraryconsole/bookmanagement/New()
   	..()
  
positive.code: 		usr << browse(null, "window=library")
  		onclose(usr, "library")
  		return
  
  	if(href_list["switchscreen"])
  		switch(href_list["switchscreen"])
  			if("0")
  
negative.code: 				dat += "<A href='?src=\ref[src];orderbyid=1'>(Order book by SS<sup>13</sup>BN)</A><BR><BR>"
  				dat += "<table>"
  				dat += "<tr><td>AUTHOR</td><td>TITLE</td><td>CATEGORY</td><td></td></tr>"
  				dat += libcomp_menu[clamp(page,1,libcomp_menu.len)]
  				dat += "<tr><td><A href='?src=\ref[src];page=[(max(1,page-1))]'>&lt;&lt;&lt;&lt;</A></td> <td></td> <td></td> <td><span style='text-align:right'><A href='?src=\ref[src];page=[(min(1,page+1))]'>&gt;&gt;&gt;&gt;</A></span></td></tr>"
  				dat += "</table>"
  			dat += "<BR><A href='?src=\ref[src];switchscreen=0'>(Return to main menu)</A><BR>"
  		if(5)
  