џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ4& ш:ƒ*****&ђ:ƒ*&*ќ:ƒ* MAKEFALS.BAS&A:ƒ* MDJ 2023/03/07&I:ƒ*&[:ƒ* MAKES THE&r$:ƒ* FLSYS.BIN FILR&z.:ƒ*&†8:ƒ*****&B:ƒ&Ÿм• 200, &H4000&Іц:ƒ&КагM "FLXLTL.BIN"&ЮкгM "FLXLTD.BIN"&сфгM "FLPUT.BIN"&єюгM "FLGET.BIN"&ћј:ƒ'& ИиM "FLSYS.BIN", &H4416, &H4573, &H4416'- Т:ƒ'3џŠ 2023/03/07&I:ƒ*&[:ƒ* MAKES THE&r$:ƒ* FLSYS.BIN FILR&z.:ƒ*&†8:ƒ*****&B:ƒ&Ÿм• 200, &H4000&Іц:ƒ&КагM "FLXLTL.BIN"&ЮкгM "FLXLTD.BIN"&сфгM "FLPUT.BIN"&єюгM "FLGET.BIN"&ћј:ƒ'& џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ^DŒ "h2xЏfOЇbьfƒd$эdOЇc +ƒdƒd$эd†Їc ƒdƒd$эd†Їc ƒdэd†ЇcьdŽƒ%ƒ0 ѓ\чфС%\чaЎbІaцф2h9ŽџџЬџџ9Œ"_""['WС"SС'O2zЏbЇaчфІc'''Ь, ЬШ Ьd ЬэbІaЦ=эdцфZOуdуbэdІa"Ўd ьdƒ2f9Žџџ942xЏdЏfЎdНDŒџџ'&ЏbЇaчфьfнюІф—эІa—ьІc—ы†—ъНBS–№&2h59Žџџ2h5942xЏdЏfЎdНDŒџџ'&ЏbЇaчфьfнюІф—эІa—ьІc—ы†—ъНBS–№&2h59Žџџ2h59џDaЎbІaцф2h9ŽџџЬџџ9Œ"_""['WС"SС'O2zЏbЇaчфІc'''Ь, ЬШ Ьd ЬэbІaЦ=эdцфZOуdуbэdІa"Ўd ьdƒ2f9Žџџ942xЏdЏfЎdНDŒџџ'&ЏbЇaчфьfнюІфџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ& ш:ƒ*****&ђ:ƒ*&*ќ:ƒ* TEST0104.BAS&A:ƒ* MDJ 2023/02/28&I:ƒ*&\:ƒ* FLGET TEST&e$:ƒ* &q.:ƒ*****&x8:ƒ&‹L:ƒSETUP MEMORY&˜V• &H1000&Ÿ`:ƒ&ЏА:ƒLOAD THE &ШК:ƒML FOUNDATION CORE&мФгM "MLCORE.BIN"&уЮ:ƒ&њ:ƒLOAD THE ML WORD' :ƒTO BE TESTED' (гM "FLGET.BIN"'62:ƒAND THAT WORD'S'I<:ƒDEPENDENCIES']FгM "FLXLTL.BIN"'dP:ƒ'tx:ƒLOAD THE 'Š‚:ƒML TEST ROUTINE' ŒгM "TEST0103.BIN"'Ї–:ƒ'ЮЊ:ƒL = (D * 612) + (T * 18) + S - 1'§Д:ƒD = 1, T = 1, S = 1 ==> L = 630 = &H0276(О:ƒ(*м‡:‡ "PUT SCRATCH DISK IN DRIVE 1"(Lњ‡ "PRESS ANY KEY WHEN READY."(W‡ ">";(cZ$ Г џ’(y… Z$ Г "" Ѕ 1550(€":ƒ(˜@‡:‡ "DISK CHECK:":‡(ЎJп 1, 1, 1, P$, Q$(КT‡ P$;Q$(С^:ƒ(ыh‡:‡ "PRESS ANY KEY TO READ FROM DISK"(іr‡ ">";)|Z$ Г џ’)†… Z$ Г "" Ѕ 1660):ƒ)3 T:ƒREFERENCE THE)L ^:ƒTRANSFER VARIABLES)e hRA Г &H400A :ƒREGPCH)~ rRB Г &H400B :ƒREGPCL)… |:ƒ)• И:ƒSETUP THE)Ї Т:ƒRUN ADDRESS)Ж ЬC Г &H7000)Щ жC1 Г џ(CЎ256))с рC2 Г џ(CЌ(C1­256)))ю ъ’ RA, C1)ћ є’ RB, C2* ў:ƒ*p:ƒJUMP TO CORE*+z:ƒSTARTUP ROUTINE*8„Ђ &H4403*?Ž:ƒ*YX‡:‡ "BUFFER CHECK:":‡*sb€ I Г &H0600 Ѕ &H06FF*‡lA1$ Г џ‹(џ†(I))*’v‡ A1$;*š€‹ I*А#(:ƒMEMORY AND DISK*У#2:ƒSTATUS CHECK*Щ#<‡*м#F‡ " MEM = ";џ“*ђ#P‡ "FREE = ";џЃ(0)*љ#Z:ƒ*џџŠ*p:ƒJUMP TO CORE*+z:ƒSTARTUP ROUTINE*8„Ђ &H4403*?Ž:ƒ*YX‡:‡ "BUFFER CHECK:":‡*sb€ I Г &H0600 Ѕ &H06FF*‡lA1$ Г џ‹(џ†(I))*’v‡ A1$;*š€‹ I*А#(:ƒMEMORY AND DISK*У#2:ƒSTATUS CHECK*Щ#<‡*м#F‡ " MEM = ";џ“*ђ#P‡ "FREE = ";џЃ(0)*љ#Z:ƒ*џџŠџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџp40НCЖЗџпŽvŽНE3Зџо509џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ-& ш:ƒ*****&ђ:ƒ*&*ќ:ƒ* TEST0103.BAS&A:ƒ* MDJ 2023/02/28&I:ƒ*&\:ƒ* FLPUT TEST&e$:ƒ* &q.:ƒ*****&x8:ƒ&‹L:ƒSETUP MEMORY&˜V• &H1000&Ÿ`:ƒ&ЏА:ƒLOAD THE &ШК:ƒML FOUNDATION CORE&мФгM "MLCORE.BIN"&уЮ:ƒ&њ:ƒLOAD THE ML WORD' :ƒTO BE TESTED' (гM "FLPUT.BIN"'62:ƒAND THAT WORD'S'I<:ƒDEPENDENCIES']FгM "FLXLTL.BIN"'dP:ƒ'tx:ƒLOAD THE 'Š‚:ƒML TEST ROUTINE' ŒгM "TEST0103.BIN"'Ї–:ƒ'ЮЊ:ƒL = (D * 612) + (T * 18) + S - 1'§Д:ƒD = 1, T = 1, S = 1 ==> L = 630 = &H0276(О:ƒ(*м‡:‡ "PUT SCRATCH DISK IN DRIVE 1"(Lњ‡ "PRESS ANY KEY WHEN READY."(W‡ ">";(cZ$ Г џ’(y… Z$ Г "" Ѕ 1550(Œ"‡ "WORKING *";(“,:ƒ(З@:ƒLOAD THE STANDARD DISK BUFFER(уJA$ Г "WHOEVER CONFESSES THAT JESUS ")TA$ Г A$ Ћ "IS THE SON OF GOD, GOD ABIDES ")E^A$ Г A$ Ћ "IN HIM, AND HE IN GOD. SO WE ")vhA$ Г A$ Ћ "HAVE COME TO KNOW AND TO ")}r:ƒ)Љ|B$ Г "BELIEVE THE LOVE THAT GOD HAS ")к†B$ Г B$ Ћ "FOR US. GOD IS LOVE, AND "* B$ Г B$ Ћ "WHOEVER ABIDES IN LOVE ABIDES "*<šB$ Г B$ Ћ "IN GOD, AND GOD ABIDES IN HIM. "*CЄ:ƒ*^Ў:ƒ1 JOHN 4:15-16 (ESV)*eИ:ƒ*tТA Г &H0600*ƒЬB Г &H0680*•ж€ I Г 0 Ѕ 127*ЋрX$ Г џ(A$,IЋ1,1)*СъY$ Г џ(B$,IЋ1,1)*з’ (A Ћ I), џŠ(X$)*э&’ (B Ћ I), џŠ(Y$)+0… I Г 15 Ї ‡ "*";+:… I Г 31 Ї ‡ "*";+/D… I Г 47 Ї ‡ "*";+EN… I Г 63 Ї ‡ "*";+[X… I Г 79 Ї ‡ "*";+qb… I Г 95 Ї ‡ "*";+ˆl… I Г 111 Ї ‡ "*";+Ÿv… I Г 127 Ї ‡ "*";+Ї€‹ I+ЎŠ:ƒ+Ша‡:‡ "BUFFER CHECK:":‡+тк€ I Г &H0600 Ѕ &H06FF+іфA1$ Г џ‹(џ†(I)),ю‡ A1$;, ј‹ I,2‡:‡ "PRESS ANY KEY TO WRITE TO DISK",= ‡ ">";,IZ$ Г џ’,_ … Z$ Г "" Ѕ 2070,f*:ƒ,z T:ƒREFERENCE THE,“ ^:ƒTRANSFER VARIABLES,Ќ hRA Г &H400A :ƒREGPCH,Х rRB Г &H400B :ƒREGPCL,Ь |:ƒ,м И:ƒSETUP THE,ю Т:ƒRUN ADDRESS,§ ЬC Г &H7000- жC1 Г џ(CЎ256)-( рC2 Г џ(CЌ(C1­256))-5 ъ’ RA, C1-B є’ RB, C2-I ў:ƒ-\p:ƒJUMP TO CORE-rz:ƒSTARTUP ROUTINE-„Ђ &H4403-†Ž:ƒ-žX‡:‡ "DISK CHECK:":‡-Дbп 1, 1, 1, P$, Q$-Рl‡ P$;Q$-Чv:ƒ-н#(:ƒMEMORY AND DISK-№#2:ƒSTATUS CHECK-і#<‡. #F‡ " MEM = ";џ“.#P‡ "FREE = ";џЃ(0).&#Z:ƒ.,џŠRA, C1-B є’ RB, C2-I ў:ƒ-\p:ƒJUMP TO CORE-rz:ƒSTARTUP ROUTINE-„Ђ &H4403-†Ž:ƒ-žX‡:‡ "DISK CHECK:":‡-Дbп 1, 1, 1, P$, Q$-Рl‡ P$;Q$-Чv:ƒ-н#(:ƒMEMORY AND DISK-№#2:ƒSTATUS CHECK-і#<‡. #F‡ " TS 01640 01650 * FLXLTD CONTROL SUBROUTINE 01660 * AT THIS POINT, WE HAVE ADDED THE TWO-BYTE 01670 * FLXLTD CONTROL SUBROUTINE RETURN ADDRESS 01680 * TO THE STACK, AND THUS MUST ADD 2 TO ALL 01690 * L,D,T,S STACK ACCESSES 01700 LBL002 STX 4,S PUT D-VALUE TO STACK 01710 STA 3,S PUT T-VALUE TO STACK 01720 STB 2,S PUT S-VALUE TO STACK 01730 JSR FLXLTD GO DO THE TRANSLATION 01740 STX 6,S PUT L-VALUE TO STACK 01750 RTS 01760 01770 * REPORTER SUBROUTINE 01780 * AT THIS POINT, WE HAVE ADDED THE TWO-BYTE 01790 * REPORTER SUBROUTINE RETURN ADDRESS 01800 * TO THE STACK, AND THUS MUST ADD 2 TO ALL 01810 * L,D,T,S STACK ACCESSES 01820 01830 * PRINT D-VALUE 01840 LBL003 LDX #STRD /D=/ 01850 JSR PRTS00 PRINT /D=/ 01860 LDX CURPOS PRINT D-VALUE 01870 LDD 4,S 01880 JSR PUTWRD 01890 STX CURPOS 01900 LDX #STRSEP SEPARATOR 01910 JSR PRTS00 PRINT IT 01920 01930 * PRINT T-VALUE 01940 LDX #STRT /T=/ 01950 JSR PRTS00 PRINT /T=/ 01960 LDX CURPOS PRINT T-VALUE 01970 LDA 3,S 01980 JSR PUTBYT 01990 STX CURPOS 02000 LDX #STRSEP SEPARATOR 02010 JSR PRTS00 PRINT IT 02020 02030 * PRINT S-VALUE 02040 LDX #STRS /S=/ 02050 JSR PRTS00 PRINT /S=/ 02060 LDX CURPOS PRINT S-VALUE 02070 LDA 2,S 02080 JSR PUTBYT 02090 STX CURPOS 02100 LDX #STRSEP SEPARATOR 02110 JSR PRTS00 PRINT IT 02120 02130 * PRINT L-VALUE 02140 LDX #STRL /L=/ 02150 JSR PRTS00 PRINT /L=/ 02160 LDX CURPOS PRINT L-VALUE 02170 LDD 6,S 02180 JSR PUTWRD 02190 STX CURPOS 02200 JSR CRLF 02210 RTS 02220 02230 END 02400 END џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџј& ш:ƒ*****&ђ:ƒ*&*ќ:ƒ* TEST0102.BAS&A:ƒ* MDJ 2023/02/28&I:ƒ*&]:ƒ* FLXLTD TEST&f$:ƒ* &r.:ƒ*****&y8:ƒ&ŒL:ƒSETUP MEMORY&žV• 200, &H4000&І`Р 4&­j:ƒ&НА:ƒLOAD THE &жК:ƒML FOUNDATION CORE&ъФгM "MLCORE.BIN"&ёЮ:ƒ':ƒLOAD THE ML WORD':ƒTO BE TESTED'/(гM "FLXLTD.BIN"'62:ƒ'Fx:ƒLOAD THE '\‚:ƒML TEST ROUTINE'rŒгM "TEST0102.BIN"'y–:ƒ'а:ƒREFERENCE THE'Ік:ƒTRANSFER VARIABLES'П RA Г &H400A :ƒREGPCH'и*RB Г &H400B :ƒREGPCL'п4:ƒ'я И:ƒSETUP THE( Т:ƒRUN ADDRESS( ЬC Г &H7000(# жC1 Г џ(CЎ256)(; рC2 Г џ(CЌ(C1­256))(H ъ’ RA, C1(U є’ RB, C2(\ ў:ƒ(op:ƒJUMP TO CORE(…z:ƒSTARTUP ROUTINE(’„Ђ &H4403(™Ž:ƒ(Џ#(:ƒMEMORY AND DISK(Т#2:ƒSTATUS CHECK(Ш#<‡(л#F‡ " MEM = ";џ“(ё#P‡ "FREE = ";џЃ(0)(їџŠADDREADDRESS( ЬC Г &H7000() жC1 Г џ(CЎ256)(A рC2 Г џ(CЌ(C1­256))(N ъ’ RA, C1([ є’ RB, C2(b ў:ƒ(up:ƒJUMP TO CORE(‹z:ƒSTARTUP ROUTINE(˜„Ђ &H4403(ŸŽ:ƒ(Е#(:ƒMEMORY AND DISK(Ш#2:ƒSTATUS CHECK(Ю#<‡(с#F‡ " MEM = ";џ“(ї#P‡ "FREE = ";џЃ(0)(§џŠџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ90 LDA #0 T = $00 01000 LDB #1 S = $01 01010 JSR LBL002 FLXLTD CONTROL 01020 JSR LBL003 REPORTER 01030 01040 LDX #2 D = $0002 01050 LDA #0 T = $00 01060 LDB #1 S = $01 01070 JSR LBL002 FLXLTD CONTROL 01080 JSR LBL003 REPORTER 01090 01100 LDX #3 D = $0003 01110 LDA #0 T = $00 01120 LDB #1 S = $01 01130 JSR LBL002 FLXLTD CONTROL 01140 JSR LBL003 REPORTER 01150 01160 LDX #3 D = $0003 01170 LDA #34 T = $22 01180 LDB #18 S = $12 01190 JSR LBL002 FLXLTD CONTROL 01200 JSR LBL003 REPORTER 01210 01220 LDX #4 D = $0004 = ERROR 01230 LDA #0 T = $00 01240 LDB #1 S = $01 01250 JSR LBL002 FLXLTD CONTROL 01260 JSR LBL003 REPORTER 01270 01280 LDX #0 D = $0000 01290 LDA #16 T = $10 01300 LDB #18 S = $12 01310 JSR LBL002 FLXLTD CONTROL 01320 JSR LBL003 REPORTER 01330 01340 LDX #0 D = $0000 01350 LDA #35 T = $23 = ERROR 01360 LDB #18 S = $12 01370 JSR LBL002 FLXLTD CONTROL 01380 JSR LBL003 REPORTER 01390 01400 LDX #0 D = $0000 01410 LDA #18 T = $12 01420 LDB #1 S = $01 01430 JSR LBL002 FLXLTD CONTROL 01440 JSR LBL003 REPORTER 01450 01460 LDX #0 D = $0000 01470 LDA #0 T = $00 01480 LDB #0 S = $00 = ERROR 01490 JSR LBL002 FLXLTD CONTROL 01500 JSR LBL003 REPORTER 01510 01520 LDX #0 D = $0000 01530 LDA #17 T = $11 = ERROR 01540 LDB #1 S = $01 01550 JSR LBL002 FLXLTD CONTROL 01560 JSR LBL003 REPORTER 01570 01580 * RETURN TO RAMROM MODE, 01590 * CLEAN THE STACK, AND EXIT 01600 STA RAMROM 01610 LEAS 6,S 01620 PULS A,B,CC 01630 Rџј& ш:ƒ*****&ђ:ƒ*&*ќ:ƒ* TEST0101.BAS&A:ƒ* MDJ 2023/02/28&I:ƒ*&]:ƒ* FLXLTL TEST&f$:ƒ* &r.:ƒ*****&y8:ƒ&ŒL:ƒSETUP MEMORY&žV• 200, &H4000&І`Р 4&­j:ƒ&НА:ƒLOAD THE &жК:ƒML FOUNDATION CORE&ъФгM "MLCORE.BIN"&ёЮ:ƒ':ƒLOAD THE ML WORD':ƒTO BE TESTED'/(гM "FLXLTL.BIN"'62:ƒ'Fx:ƒLOAD THE '\‚:ƒML TEST ROUTINE'rŒгM "TEST0101.BIN"'y–:ƒ'а:ƒREFERENCE THE'Ік:ƒTRANSFER VARIABLES'П RA Г &H400A :ƒREGPCH'и*RB Г &H400B :ƒREGPCL'п4:ƒ'я И:ƒSETUP THE( Т:ƒRUN ADDRESS( ЬC Г &H7000(# жC1 Г џ(CЎ256)(; рC2 Г џ(CЌ(C1­256))(H ъ’ RA, C1(U є’ RB, C2(\ ў:ƒ(op:ƒJUMP TO CORE(…z:ƒSTARTUP ROUTINE(’„Ђ &H4403(™Ž:ƒ(Џ#(:ƒMEMORY AND DISK(Т#2:ƒSTATUS CHECK(Ш#<‡(л#F‡ " MEM = ";џ“(ё#P‡ "FREE = ";џЃ(0)(їџŠADDREџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ00100 ***** 00110 * 00120 * TEST0102.ASM 00130 * MDJ 2023/02/28 00140 * 00150 * FLXLTD TEST 00160 * 00170 ***** 00180 00190 * LOW RAM CURSOR ADDRESS 00200 CURPOS EQU $0088 00210 00220 * SCREEN ADDRESSES 00230 VIDRAM EQU $0400 00240 VIDEND EQU $0600 00250 00260 * RAMROM TRIGGER ADDRESS 00270 RAMROM EQU $FFDE 00280 00290 * ALLRAM TRIGGER ADDRESS 00300 ALLRAM EQU $FFDF 00310 00320 * ML FOUNDATION 00330 * CORE ADDRESSES 00340 VIDCLS EQU $400E 00350 PUTBYT EQU $4025 00360 CRLF EQU $40D7 00370 PUTWRD EQU $4169 00380 PRTS00 EQU $420A 00390 SNIRQS EQU $43B6 00400 00410 * FALSE DISK 00420 * SYSTEM ADDRESS 00430 FLXLTD EQU $448A 00440 00450 ORG $7000 00460 JMP LBL001 00470 00480 STRL FCC /L=/ 00490 FCB $00 NUL 00500 STRD FCC /D=/ 00510 FCB $00 NUL 00520 STRT FCC /T=/ 00530 FCB $00 NUL 00540 STRS FCC /S=/ 00550 FCB $00 NUL 00560 STRSEP FCC /, / 00570 FCB $00 NUL 00580 00590 * SETUP THE NEW INTERRUPT HANDLERS 00600 * AND ENTER ALLRAM MODE 00610 LBL001 JSR SNIRQS 00620 STA ALLRAM 00630 PSHS A,B,CC 00640 00650 * AT THIS POINT, THE STACK CONTAINS: 00660 * 4,S RTS LOCATION LOW BYTE 00670 * 3,S RTS LOCATION HIGH BYTE 00680 * 2,S REGISTER B 00690 * 1,S REGISTER A 00700 * ,S REGISTER CC 00710 00720 * MAKE SPACE ON THE STACK FOR: 00730 * 10,S RTS LOCATION LOW BYTE 00740 * 9,S RTS LOCATION HIGH BYTE 00750 * 8,S REGISTER B 00760 * 7,S REGISTER A 00770 * 6,S REGISTER CC 00780 * 5,S L-VALUE LOW BYTE 00790 * 4,S L-VALUE HIGH BYTE 00800 * 3,S D-VALUE LOW BYTE 00810 * 2,S D-VALUE HIGH BYTE 00820 * 1,S T-VALUE 00830 * ,S S-VALUE 00840 LEAS -6,S 00850 00860 * SETUP THE SCREEN 00870 JSR VIDCLS 00880 LDX #VIDRAM TOP OF SCREEN 00890 STX CURPOS CURSOR 00900 00910 * TEST RUNS INPUT DATA 00920 LDX #0 D = $0000 00930 LDA #0 T = $00 00940 LDB #1 S = $01 00950 JSR LBL002 FLXLTD CONTROL 00960 JSR LBL003 REPORTER 00970 00980 LDX #1 D = $0001 009@џџџџџ`џ4†`ŽЇ€Œ&љ59Ї„9І„9—vDDDD—wHHHH—ѓ–vѓ—ѓ "‹p ‹7—ѓ–w "‹p ‹7Н@0–ѓН@0942ŽŽ І Ї€Œ%і†`Ї€Œ%љ5294žˆŒ%Н@^ŽрЇ€Œ%Н@^ŽрŸˆ594—vDDDD—wHHHH—ѓ–vѓ—ѓ "‹p ‹7—ѓ–w "‹p ‹7Н@}–ѓН@}594žˆŒ%Œ$Œр$ ФрУ  Н@^Žр Н@ŽŸˆ59 %@%`%€% €@ † ‹`9 %@%`%€% €` ‹@ †`94hЗџо­Ÿ Зџп5h94žˆŒ"Ž0Ÿˆ†`Н@5944Н@%5Н@%5944Н@ž5Н@ž59—ŒŸЗџоНЉVЗџп94†ФŽНA‡59OЗџо—qnŸџў $$'' '' НA• НAQ Н@з ~AЂНA%Н@9 $$'' '' НA• НAQ Н@з ~AЂНA%Н@}94І€'НAл ї594І€ 'НAл ѕН@з594І€НAл1?' ѕ594 ЎНB+5 94&Oц€НB+5&94ЗџоНз_ЗџпOЗџ@59=94&2xЏфЏbІaцc=эdІфцc=эfІeЇcІdЋgЇbІf‰Їa†ЇфЎфЎb2l942sЏфЏbІaцc=эdІaцb=эfІфцc=эhІфцb=эjІeЇcolІdЋg$llЋi$llЇbІlolЋf$llЋh$llЋk$llЇaІlЋjЇфЎфЎb2o94С'Ц4_HYсb%рbLjф&ѓчb2a5 5†џЦџ947Œ'!Ц4O_heidYIЃf%Ѓflejф&ээf2a57 57ŽџџŽџџ94†НC%59Ж ‚'О ƒЏj ‚;}џ#+;~AЂЖџЖ …'JЗ …& Ж †„АЗ †Зџ@О0ПO‹му' “ену"уфž'0Ÿ;4ЬCd§ PЬCr§ЬC{§ Џ59џ§Cб94ќ§Cб59ќCб4XIуфэфXI4XIXIуaэa5Ц)Ѓс§Cб94PО@ НCЖЗџпЮўџ­„5P9џD 5†џЦџ947Œ'!Ц4O_heidYIЃf%Ѓflejф&ээf2a57 57ŽџџŽџџ94†НC%59Ж ‚'О ƒЏj ‚;}џ#+;~AЂЖџЖ …'JЗ …& Ж †„АЗ †Зџ@О0ПO‹му' “ену"уфž'0Ÿ;4ЬCd§ PЬCr§ЬC{§ Џ59џ§Cб94ќ§Cб59ќCб4XIуфэфXI4XIXIуaэa5џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€p~pL=D=T=S=, НCЖЗџп42zН@ŽŸˆŽНpkНpwŽ НpkНpwŽ НpkНpwŽ1НpkНpwŽ2НpkНpwŽcНpkНpwŽdНpkНpwЗџо2f59ЏfНDЏdЇcчb9ŽpНB žˆьIp€fНAiŸˆŽpНB ŽpНB žˆьdНAiŸˆŽpНB Žp НB žˆІcН@%ŸˆŽpНB Žp НB žˆІbН@%ŸˆН@з9џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџAE342xЏdЏfЎdНDŒџџ'&ЏbЇaчфьfнюІф—эІa—ьІc—ы†—ъНBS–№&2h59Žџџ2h59џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџADђ42xЏdЏfЎdНDŒџџ'&ЏbЇaчфьfнюІф—эІa—ьІc—ы†—ъНBS–№&2h59Žџџ2h59џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ BEQ LBL002 GO IF YES 00860 CMPA #2 IS IT DRIVE #2 ? 00870 BEQ LBL001 GO IF YES 00880 LDD #DMUL*3 FOR DRIVE #3 00890 BRA LBL004 00900 LBL001 LDD #DMUL*2 FOR DRIVE #2 00910 BRA LBL004 00920 LBL002 LDD #DMUL FOR DRIVE #1 00930 BRA LBL004 00940 LBL003 LDD #0 FOR DRIVE #0 00950 LBL004 STD 2,S SAVE FIRST TERM ON STACK 00960 00970 * CALCULATE THE SECOND TERM = (T * 18) 00980 LDA 1,S TRACK NUMBER 00990 LDB #TMUL NUMBER OF SECTORS PER TRACK 01000 MUL DO THE MULTIPLY 01010 STD 4,S TEMPORARILY SAVE TO STACK 01020 01030 * ADD THE TERMS 01040 LDB ,S SECTOR NUMBER (1-18) 01050 DECB ADJUST SECTOR NUMBER 01060 * TO ZERO-BASE (0-17) 01070 CLRA SECTOR NUMBER NOW IN LOW BYTE OF D 01080 ADDD 4,S ADD THE SECOND TERM 01090 ADDD 2,S ADD THE FIRST TERM 01100 STD 4,S TEMPORARILY SAVE RESULT TO STACK 01110 01120 * SPECIAL HANDLING FOR TRACK NUMBERS > 17 01130 LDA 1,S TRACK NUMBER 01140 CMPA #17 IS IT GREATER THAN 17 01150 BHI LBL005 GO IF YES 01160 01170 * RETURN REGULAR RESULT FOR TRACKS < 17 01180 LDX 4,S LINEAR SECTOR NUMBER 01190 BRA LBL006 01200 01210 * RETURN SPECIAL RESULT FOR TRACK NUMBERS > 17 01220 LBL005 LDD 4,S TEMPORARY VALUE 01230 SUBD #TMUL SKIP TRACK 17 01240 TFR D,X LINEAR SECTOR NUMBER 01250 01260 * CLEAN THE STACK AND RETURN 01270 LBL006 LEAS 6,S 01280 RTS 01290 01300 * ERROR HANDLING 01310 LBL007 LDX #$FFFF ERROR CODE 01320 RTS 01330 01340 END LING 01360 LBL007 LDX #$FFFF ERROR CODE 01370 PULS Y 01380 RTS 01390 01400 END џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ00100 ***** 00110 * 00120 * FLXLTD.ASM 00130 * MDJ 2023/02/24 00140 * 00150 * FALSE DISK 00160 * D,T,S TO L 00170 * TRANSLATION SUBROUTINE 00180 * 00190 * ENTRY CONDITIONS: 00200 * REGISTER X = D (0-3) 00210 * = DRIVE NUMBER 00220 * REGISTER A = T (0-34) 00230 * = TRACK NUMBER 00240 * REGISTER B = S (1-18) 00250 * = SECTOR NUMBER 00260 * 00270 * EXIT CONDITIONS 00280 * REGISTER X = L (0-2447) 00290 * = LINEAR SECTOR NUMBER 00300 * 00310 * ON EXIT: 00320 * REGISTER X = $FFFF 00330 * ==> ERROR 00340 * 00350 ***** 00360 00370 * GENERAL EQUATES 00380 DMUL EQU 612 DRIVE MULTIPLICAND = $264 00390 TMUL EQU 18 TRACK MULTIPLICAND = $12 00400 00410 ORG $448A 00420 00430 * ERROR TRAPPING 00440 FLXLTD CMPX #3 MAX DRIVE # 00450 BHI LBL007 ERROR IF GREATER 00460 CMPA #34 MAX TRACK # 00470 BHI LBL007 ERROR IF GREATER 00480 CMPA #17 DIRECTORY TRACK # (SKIP) 00490 BEQ LBL007 ERROR IF = TRACK 17 00500 CMPB #18 MAX SECTOR # 00510 BHI LBL007 ERROR IF GREATER 00520 CMPB #0 ILLEGAL SECTOR # 00530 BEQ LBL007 ERROR IF # = 0 00540 00550 * AT THIS POINT, THE STACK CONTAINS: 00560 * 1,S RTS LOCATION LOW BYTE 00570 * ,S RTS LOCATION HIGH BYTE 00580 00590 * MAKE SPACE ON THE STACK FOR: 00600 * 7,S RTS LOCATION LOW BYTE 00610 * 6,S RTS LOCATION HIGH BYTE 00620 * 5,S TEMPORARY VALUE LOW BYTE 00630 * 4,S TEMPORARY VALUE HIGH BYTE 00640 * 3,S REGISTER X LOW BYTE (DRIVE NUMBER) 00650 * 2,S REGISTER X HIGH BYTE (ALL ZEROES) 00660 * 1,S REGISTER A (TRACK NUMBER) 00670 * ,S REGISTER B (SECTOR NUMBER) 00680 LEAS -6,S 00690 00700 * SAVE ENTRY VALUES TO THE STACK 00710 STX 2,S DRIVE NUMBER 00720 STA 1,S TRACK NUMBER 00730 STB ,S SECTOR NUMBER 00740 00750 * L = (D * 612) + (T * 18) + S 00760 * IF (T > 17) THEN L = L - 18 00770 00780 * CALCULATE FIRST TERM = (D * 612) 00790 * BY EMULATING MULTIPLICATION VIA 00800 * DIRECT SUBSTITUTION 00810 LDA 3,S DRIVE NUMBER LOW BYTE 00820 CMPA #0 IS IT DRIVE #0 ? 00830 BEQ LBL003 GO IF YES 00840 CMPA #1 IS IT DRIVE #1 ? 00850 ,1) Г T1$/ќџ(W3$,6,1) Г T2$/5џ(W3$,12,1) Г S1$/Lџ(W3$,13,1) Г S2$/vD1$ Г W3$ЋW3$ЋW3$ЋW3$ЋW3$ЋW3$ЋW3$ЋW3$/ $D2$ Г W3$ЋW3$ЋW3$ЋW3$ЋW3$ЋW3$ЋW3$ЋW3$/Ќ8:ƒ*****/ДB:ƒ*/ЮL:ƒ* END OF SUBROUTINE/жV:ƒ*/т`:ƒ*****/щj:ƒ0:ƒFILL THE BUFFER WITH THE TEST DATA0$ ‡ "WORKING ";06€ I Г 1 Ѕ 1280JA8 Г &H05FF Ћ I0^(A9 Г &H067F Ћ I0t2C8$ Г џ(D1$,I,1)0Š ERROR3№(d:ƒ*3ќ(n:ƒ*****4(x:ƒ4( :ƒTHERE IS NO INTERNAL4:(Њ:ƒCHECK ON THE VALIDITY4V(Д:ƒOF THE BUFFER ADDRESS4v(О:ƒHERE - PERFORM EXTERNALLY4(Ш:ƒBEFORE CALLING THIS4Ђ(в:ƒSUBROUTINE.4Б(мV6 Г џ(B)4Х(ц:ƒADDRESSES FOR4л(№:ƒSETTING STRINGS4ы(њV6 Г V6 Ќ 14ў)V7 Г V6 Ћ &H805):ƒ5)h:ƒGO TRANSLATE54)r:ƒLINEAR SECTOR NUMBER.5J)|:ƒRETURNS D, T, S5W)†І 200005w)… (D Д 0) Ѕ 11100 :ƒERROR5~)š:ƒ5ž)Ь:ƒ GET DATA FROM THE BUFFER5Е)ж:ƒ AND SET STRINGS5г)р:ƒ (MUST PRELOAD STRINGS 5ч)ъ:ƒ WITH SPACES)6)єZ$ Г " "6))ўX2$ Г Z$ЋZ$ЋZ$ЋZ$6?*X3$ Г Z$ЋZ$ЋZ$ЋZ$6Q*€ I Г 1 Ѕ 1286a*A1 Г V6 Ћ I6q*&A2 Г V7 Ћ I6†*0C1$ Г џ‹(џ†(A1))6›*:C2$ Г џ‹(џ†(A2))6Б*Dџ(X2$,I,1) Г C1$6Ч*Nџ(X3$,I,1) Г C2$6Я*X‹ I6ж*b:ƒ6ђ*”:ƒ PUT THE DATA TO DISK7*žр D,T,S,X2$,X3$7 *Ј:ƒ71*ј:ƒ CHECK STATUS FOR WRITE ERROR7D+E Г џ†(&H00F0)7c+ … (EДВ0) Ѕ 11100 :ƒERROR7i+7p+ :ƒ7†+\:ƒ ERROR HANDLING7”+f:ƒ L = -97š+p7Ё+z:ƒ7­+Р:ƒ*****7Е+Ъ:ƒ*7Я+д:ƒ* END OF SUBROUTINE7з+о:ƒ*7у+ш:ƒ*****7ъ+ђ:ƒ7іN :ƒ*****7ўN*:ƒ*8N4:ƒ* FALSXLTL.BAS8*N>:ƒ* MDJ 2023/02/2182NH:ƒ*8ENR:ƒ* FALSE DISK8XN\:ƒ* L TO D,T,S8wNf:ƒ* TRANSLATION SUBROUTINE8Np:ƒ*8™Nz:ƒ* ENTRY CONDITIONS:8ЌN„:ƒ* L (0-2447)8ЫNŽ:ƒ* = LINEAR SECTOR NUMBER8гN˜:ƒ*8ьNЂ:ƒ* EXIT CONDITIONS:8ќNЌ:ƒ* D (0-3)9NЖ:ƒ* = DRIVE NUMBER9$NР:ƒ* T (0-34)9;NЪ:ƒ* = TRACK NUMBER9LNд:ƒ* S (1-18)9dNо:ƒ* = SECTOR NUMBER9lNш:ƒ*9ˆNђ:ƒ* INTERNAL TEMPORARY 9œNќ:ƒ* VARIABLES =9­O:ƒ* V1, V29ЕO:ƒ*9ЦO:ƒ* ON EXIT:9оO$:ƒ* D < 0 ==> ERROR9цO.:ƒ*9ђO8:ƒ*****9љOB:ƒ:OА:ƒERROR TRAPPING:OКV1 Г џ(L):3OФ… V1 Д 0 Ѕ 20810:LOЮ… V1 В 2447 Ѕ 20810:SOи:ƒ:jP:ƒGET DRIVE NUMBER:ƒP:ƒAND REMAINDER = V2:˜P(D Г џ(V1 Ў 612):АP2V2 Г V1 Ќ (D ­ 612):ЗP<:ƒ:ЮPx:ƒGET TRACK NUMBER:цP‚:ƒAND SECTOR NUMBER:њPŒT Г џ(V2 Ў 18);P–S Г V2 Ќ (T ­ 18) Ћ 1;(P :ƒSKIP TRACK 17;@PЊ… (T Д 17) Ѕ 20670;NPДT Г T Ћ 1;TPО;[PШ:ƒ;qQ@:ƒ ERROR HANDLING;|QJD Г Ќ9;‚QT;‰Q^:ƒ;•QЄ:ƒ*****;QЎ:ƒ*;ЗQИ:ƒ* END OF SUBROUTINE;ПQТ:ƒ*;ЫQЬ:ƒ*****;вQж:ƒ;иџŠCTOR NUMBER:њPŒT Г џ(V2 Ў 18);P–џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџС& ':ƒ*****&':ƒ*&)'$:ƒ* FALSPUT.BAS&@'.:ƒ* MDJ 2023/02/21&H'8:ƒ*&b'B:ƒ* FALSE DISK SYSTEM&x'L:ƒ* PUT BUFFER TO&Ž'V:ƒ* LINEAR SECTOR&Ё'`:ƒ* SUBROUTINE&Љ'j:ƒ*&Ц't:ƒ* PUTS A LINEAR SECTOR&з'~:ƒ* (0-2447)&я'ˆ:ƒ* TO A FALSE DISK''’:ƒ* FROM A SPECIFIED''œ:ƒ* DISK BUFFER '%'І:ƒ*'?'А:ƒ* ENTRY CONDITIONS:'_'К:ƒ* B = DISK BUFFER ADDRESS'€'Ф:ƒ* L = LINEAR SECTOR NUMBER'ˆ'Ю:ƒ*'Ё'и:ƒ* INTERNALLY USED 'Н'т:ƒ* PERMANENT VARIABLES'ж'ь:ƒ* D = DRIVE NUMBER'я'і:ƒ* T = TRACK NUMBER( (:ƒ* S = SECTOR NUMBER(( :ƒ*(*(:ƒ* INTERNALLY USED (G(:ƒ* TEMPORARY VARIABLES:(a((:ƒ* A1, A2, C1$. C2$,(x(2:ƒ* I, E, V6, V7, ((<:ƒ* X2$, X3$, Z$(•(F:ƒ*(І(P:ƒ* ON EXIT:(О(Z:ƒ* L < 0 ==> ERROR(Ц(d:ƒ*(в(n:ƒ*****(й(x:ƒ(є( :ƒTHERE IS NO INTERNAL)(Њ:ƒCHECK ON THE VALIDITY),(Д:ƒOF THE BUFFER ADDRESS)L(О:ƒHERE - PERFORM EXTERNALLY)f(Ш:ƒBEFORE CALLING THIS)x(в:ƒSUBROUTINE.)‡(мV6 Г џ(B))›(ц:ƒADDRESSES FOR)Б(№:ƒSETTING STRINGS)С(њV6 Г V6 Ќ 1)д)V7 Г V6 Ћ &H80)л):ƒ)ю)h:ƒGO TRANSLATE* )r:ƒLINEAR SECTOR NUMBER.* )|:ƒRETURNS D, T, S*-)†І 20000*M)… (D Д 0) Ѕ 11100 :ƒERROR*T)š:ƒ*t)Ь:ƒ GET DATA FROM THE BUFFER*‹)ж:ƒ AND SET STRINGS*Љ)р:ƒ (MUST PRELOAD STRINGS *Н)ъ:ƒ WITH SPACES)*щ)єZ$ Г " "*џ)ўX2$ Г Z$ЋZ$ЋZ$ЋZ$+*X3$ Г Z$ЋZ$ЋZ$ЋZ$+'*€ I Г 1 Ѕ 128+7*A1 Г V6 Ћ I+G*&A2 Г V7 Ћ I+\*0C1$ Г џ‹(џ†(A1))+q*:C2$ Г џ‹(џ†(A2))+‡*Dџ(X2$,I,1) Г C1$+*Nџ(X3$,I,1) Г C2$+Ѕ*X‹ I+Ќ*b:ƒ+Ш*”:ƒ PUT THE DATA TO DISK+м*žр D,T,S,X2$,X3$+у*Ј:ƒ,*ј:ƒ CHECK STATUS FOR WRITE ERROR,+E Г џ†(&H00F0),9+ … (EДВ0) Ѕ 11100 :ƒERROR,?+,F+ :ƒ,\+\:ƒ ERROR HANDLING,j+f:ƒ L = -9,p+p,w+z:ƒ,ƒ+Р:ƒ*****,‹+Ъ:ƒ*,Ѕ+д:ƒ* END OF SUBROUTINE,­+о:ƒ*,Й+ш:ƒ*****,Р+ђ:ƒ DISK+м*žр D,T,S,X2$,X3$+у*Ј:ƒ,*ј:ƒ CHECK STATUS FOR WRIџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџй& ш:ƒ*****&ђ:ƒ*&*ќ:ƒ* FALSPUTT.BAS&A:ƒ* MDJ 2023/02/22&I:ƒ*&a:ƒ* TESTS THE BASIC&{$:ƒ* FALSPUT MECHANISM&ƒ.:ƒ*&8:ƒ*****&–B:ƒ&L:ƒ&ЃА‡&УК‡ "MAKE SURE FALSE DISK IS"&сФ‡ "IN THE DESIRED DRIVE."'Ю‡ "PRESS ANY KEY WHEN READY"'иA$ Г џ’'$т… A$ Г "" Ѕ 1240'*ь‡'1і:ƒ'Sx‡ "ENTER THE DESIRED LINEAR" 'v‚‡ "SECTOR NUMBER (0 - 2447) ";'~Œ‰ L'Œ–L Г џ(L)'Ж … ((LД0) Б (LВ2447)) Ѕ 2610 :ƒERROR'ШЊ‡ "WORKING ";'ѓД:ƒFAKE WORKING DELAYS TO SHOW ACTIVITY( О€ K Г 1 Ѕ 500:‹ K(Ш‡ "*";(*в€ K Г 1 Ѕ 500:‹ K(5м‡ "*";(<ц:ƒ(^@:ƒTHIS TEST USES THE STANDARD(€J:ƒDISK BASIC BUFFER AT &H0600(TB Г &H0600(š^‡ "*";(Ёh:ƒ(У:ƒGO FILL THE BUFFER WITH THE(л:ƒDESIRED TEST DATA(чІ 5060)&… (L Д 0) Ѕ 2610 :ƒERROR)0‡ "*";)::ƒ)>а:ƒGO GET THE DATA FROM THE BUFFER)bк:ƒAND PUT IT TO THE DISK SECTOR)oфІ 10460)Žю… (L Д 0) Ѕ 2610 :ƒERROR)™ј‡ "*";) :ƒ)Ц˜‡:‡ "FILL ANOTHER SECTOR (Y/N) ";)вЂA$ Г џ’)шЌ… A$ Г "" Ѕ 2210)џЖ… A$ Г "Y" Ѕ 1400*Р‡* Ъ:ƒ*+ `‡:‡ "FALSPUTT TEST = DONE"*8 jЅ 32767*? t:ƒ*T (:ƒERROR HANDLING*` 2‡ *‚ <‡ "*** ERROR ENCOUNTERED ***"*Є F‡ "*** RUN TERMINATED ***"*Њ P‡*З ZЅ 32767*О d:ƒ*Ъˆ:ƒ******в’:ƒ**ёœ:ƒ* FILL BUFFER SUBROUTINE*љІ:ƒ*+А:ƒ*****+ К:ƒ+Ф‡+7Ю‡ "USE STANDARD TEST DATA (Y/N)"+Bи‡ ">";+NтA$ Г џ’+dь… A$ Г "" Ѕ 5090+{і… A$ Г "Y" Ѕ 6020+‚:ƒ+ЅP‡ "ENTER UP TO 128 CHARACTERS"+ЧZ‡ "FOR THE FIRST HALF OF THE"+ъd‡ "TEST DATA, I.E. FOUR LINES",n‡ "ON THE SCREEN >", x‰ D1$,‚L1 Г џ‡(D1$),6Œ… (L1 В 128) Ѕ 5320,H–L1 Г 128 Ќ L1,Y € I Г 1 Ѕ L1,mЊD1$ Г D1$ Ћ " ",uД‹ I,ОЅ 5600,›ШD1$ Г џ(D1$, 1, 128),Ђв:ƒ,Хр‡ "ENTER UP TO 128 CHARACTERS",шъ‡ "FOR THE SECOND HALF OF THE"- є‡ "TEST DATA, I.E. FOUR LINES"-#ў‡ "ON THE SCREEN >"--‰ D2$->L1 Г џ‡(D2$)-W… (L1 В 128) Ѕ 5720-i&L1 Г 128 Ќ L1-z0€ I Г 1 Ѕ L1-Ž:D2$ Г D2$ Ћ " "-–D‹ I-ЂNЅ 6410-МXD2$ Г џ(D2$, 1, 128)-ШbЅ 6410-Яl:ƒ-ёp:ƒGENERATE STANDARD TEST DATA.z:ƒGO TRANSLATE L TO D,T,S.„І 20420.#Ž:ƒ.@˜W3$ Г "TRK 00 SEC 01 - ".RЂT3 Г џ(TЎ10).iЌT4 Г T Ќ (T3 ­ 10).ЖT1$ Г џ‹(T3 Ћ &H30).™РT2$ Г џ‹(T4 Ћ &H30).ЋЪS3 Г џ(SЎ10).ТдS4 Г S Ќ (S3 ­ 10).коS1$ Г џ‹(S3 Ћ &H30).ђшS2$ Г џ‹(S4 Ћ &H30)/ђџ(W3$,5џъ& N :ƒ*****&N*:ƒ*&*N4:ƒ* FALSXLTL.BAS&AN>:ƒ* MDJ 2023/02/21&INH:ƒ*&\NR:ƒ* FALSE DISK&oN\:ƒ* L TO D,T,S&ŽNf:ƒ* TRANSLATION SUBROUTINE&–Np:ƒ*&АNz:ƒ* ENTRY CONDITIONS:&УN„:ƒ* L (0-2447)&тNŽ:ƒ* = LINEAR SECTOR NUMBER&ъN˜:ƒ*'NЂ:ƒ* EXIT CONDITIONS:'NЌ:ƒ* D (0-3)'*NЖ:ƒ* = DRIVE NUMBER';NР:ƒ* T (0-34)'RNЪ:ƒ* = TRACK NUMBER'cNд:ƒ* S (1-18)'{Nо:ƒ* = SECTOR NUMBER'ƒNш:ƒ*'ŸNђ:ƒ* INTERNAL TEMPORARY 'ГNќ:ƒ* VARIABLES ='ФO:ƒ* V1, V2'ЬO:ƒ*'нO:ƒ* ON EXIT:'ѕO$:ƒ* D < 0 ==> ERROR'§O.:ƒ*( O8:ƒ*****(OB:ƒ(%OА:ƒERROR TRAPPING(4OКV1 Г џ(L)(JOФ… V1 Д 0 Ѕ 20810(cOЮ… V1 В 2447 Ѕ 20810(jOи:ƒ(P:ƒGET DRIVE NUMBER(šP:ƒAND REMAINDER = V2(ЏP(D Г џ(V1 Ў 612)(ЧP2V2 Г V1 Ќ (D ­ 612)(ЮP<:ƒ(хPx:ƒGET TRACK NUMBER(§P‚:ƒAND SECTOR NUMBER)PŒT Г џ(V2 Ў 18))+P–S Г V2 Ќ (T ­ 18) Ћ 1)?P :ƒSKIP TRACK 17)WPЊ… (T Д 17) Ѕ 20670)ePДT Г T Ћ 1)kPО)rPШ:ƒ)ˆQ@:ƒ ERROR HANDLING)“QJD Г Ќ9)™QT) Q^:ƒ)ЌQЄ:ƒ*****)ДQЎ:ƒ*)ЮQИ:ƒ* END OF SUBROUTINE)жQТ:ƒ*)тQЬ:ƒ*****)щQж:ƒAND SECTOR NUMBER)џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџв& ш:ƒ*****&ќ:ƒ*&*:ƒ* FLTLTEST.BAS&A:ƒ* MDJ 2023/02/22&I:ƒ*&[$:ƒ* TESTS THE&l.:ƒ* FALSXLTL&8:ƒ* SUBROUTINE&‡B:ƒ*&“L:ƒ*****&šV:ƒ&Їx• &H1000&Уа‡ "ENTER LINEAR SECTOR"&Ык‰ L&йфL Г џ(L)'ю… ((L ВГ 0) А (L ДГ 2447)) Ѕ 2600'"ј‡ "OUT OF RANGE - TRY AGAIN:"'.Ѕ 2000'5 :ƒ'T (:ƒ GO TRANSLATE L TO D,T,S'a 2І 20410'€ <… (D Д 0) Ѕ 3410 :ƒERROR'† F‡'– P‡ "L = "; L'І Z‡ "D = "; D'Ж d‡ "T = "; T'Ц n‡ "S = "; S'Ь x‡'г ‚:ƒ'ђ №‡ "CHECK ANOTHER (Y/N) >";'ў њA$ Г џ’( … A$ Г "" Ѕ 2810(+ … A$ Г "Y" Ѕ 2000(2 :ƒ(J €‡ "FLTLTEST = DONE"(W ЁЅ 32767(^ ”:ƒ(s H:ƒERROR HANDLING(• R‡ "*** ERROR ENCOUNTERED ***"(З \‡ "*** RUN TERMINATED ***"(Н f‡(Ъ pЅ 32767(б z:ƒ(нN :ƒ*****(хN*:ƒ*(њN4:ƒ* FALSXLTL.BAS)N>:ƒ* MDJ 2023/02/21)NH:ƒ*),NR:ƒ* FALSE DISK)?N\:ƒ* L TO D,T,S)^Nf:ƒ* TRANSLATION SUBROUTINE)fNp:ƒ*)€Nz:ƒ* ENTRY CONDITIONS:)“N„:ƒ* L (0-2447))ВNŽ:ƒ* = LINEAR SECTOR NUMBER)КN˜:ƒ*)гNЂ:ƒ* EXIT CONDITIONS:)уNЌ:ƒ* D (0-3))њNЖ:ƒ* = DRIVE NUMBER* NР:ƒ* T (0-34)*"NЪ:ƒ* = TRACK NUMBER*3Nд:ƒ* S (1-18)*KNо:ƒ* = SECTOR NUMBER*SNш:ƒ**oNђ:ƒ* INTERNAL TEMPORARY *ƒNќ:ƒ* VARIABLES =*”O:ƒ* V1, V2*œO:ƒ**­O:ƒ* ON EXIT:*ХO$:ƒ* D < 0 ==> ERROR*ЭO.:ƒ**йO8:ƒ******рOB:ƒ*ѕOА:ƒERROR TRAPPING+OКV1 Г џ(L)+OФ… V1 Д 0 Ѕ 20810+3OЮ… V1 В 2447 Ѕ 20810+:Oи:ƒ+QP:ƒGET DRIVE NUMBER+jP:ƒAND REMAINDER = V2+P(D Г џ(V1 Ў 612)+—P2V2 Г V1 Ќ (D ­ 612)+žP<:ƒ+ЙPx:ƒ ADJUST FOR SKIPPING+вP‚:ƒ OF FAT SECTOR AND+ыPŒ:ƒ DIRECTORY SECTORS+ђP–:ƒ,P V2 Г V2 Ћ 18, PЊ:ƒ,$Pм:ƒ GET TRACK & SECTOR,6PцT Г џ(V2Ў18),NP№S Г V2 Ќ (T­18) Ћ 1,TPњ,[Q:ƒ,qQ@:ƒ ERROR HANDLING,|QJD Г Ќ9,‚QT,ŽQЄ:ƒ*****,–QЎ:ƒ*,АQИ:ƒ* END OF SUBROUTINE,ИQТ:ƒ*,ФQЬ:ƒ*****,ЫQж:ƒ,бџŠыPŒ:ƒ DIRECTORY SECTORS+ђP–:ƒ,P V2 Г V2 џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЯ& ш:ƒ*****&ђ:ƒ*&*ќ:ƒ* FALSCOPY.BAS&A:ƒ* MDJ 2023/02/22&I:ƒ*&f:ƒ* COPIES A SOURCE DISK&$:ƒ* TO A TARGET DISK&‡.:ƒ*&Ÿ8:ƒ* ANY DATA ON THE&ИB:ƒ* TARGET DISK WILL&ШL:ƒ* BE LOST&аV:ƒ*&р`:ƒ* DOES A &ўj:ƒ* SECTOR-BY-SECTOR COPY't:ƒ*'~:ƒ* BOTH DRIVE 0 AND'<ˆ:ƒ* DRIVE 1 ARE REQUIRED'Z’:ƒ* BY THIS PROGRAM - USE'rœ:ƒ* THE BASIC COPY 'І:ƒ* COMMAND INSTEAD IF'ЅА:ƒ* ONLY DRIVE 0 IS'ЗК:ƒ* AVAILABLE'ПФ:ƒ*'кЮ:ƒ* NOTE: THIS PROGRAM'ёи:ƒ* WILL WORK WITH( т:ƒ* REGULAR DISKS AS('ь:ƒ* WELL AS FALSE DISKS.(/і:ƒ*(;:ƒ*****(B :ƒ(O• &H1000(V:ƒ(\x‡(‚‚‡ " PUT SOURCE DISK IN DRIVE 0"(ЈŒ‡ " AND TARGET DISK IN DRIVE 1"(Ю–‡ " *** *** WARNING *** ***"(є ‡ " ** ALL TARGET DISK DATA **")Њ‡ " *** WILL BE LOST ***")?Д‡ " PRESS ANY KEY WHEN READY")KОA$ Г џ’)aШ… A$ Г "" Ѕ 1470)gв‡)nм:ƒ)€@‡ "WORKING ";)‘T€ T Г 0 Ѕ 34)Ѓ^T3 Г џ(TЎ10))КhT4 Г T Ќ (T3 ­ 10))вrT1$ Г џ‹(T3 Ћ &H30))ъ|T2$ Г џ‹(T4 Ћ &H30))ћ†€ S Г 1 Ѕ 18* S3 Г џ(SЎ10)*$šS4 Г S Ќ (S3 ­ 10)*<ЄS1$ Г џ‹(S3 Ћ &H30)*TЎS2$ Г џ‹(S4 Ћ &H30)*fИп 0,T,S,X$,Y$*xТр 1,T,S,X$,Y$*€Ь‹ S*‹ж‡ "*";*“р‹ T*›ъ‡:‡*Ђє:ƒ*Са‡ "FALSE DISK COPY = DONE"*Шк:ƒ*ЮџŠ))ъ|T2$ Г џ‹(T4 Ћ &H30))ћ†€ S Г 1 Ѕ 18* џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ& ш:ƒ*****&ђ:ƒ*&*ќ:ƒ* FALSFILL.BAS&A:ƒ* MDJ 2023/02/22&I:ƒ*&d:ƒ* FILLS A FALSE DISK&{$:ƒ* WITH TEST DATA&ƒ.:ƒ*&8:ƒ*****&–B:ƒ&Ѓx• &H1000&Љм‡&Эц‡ "PUT A FALSE DISK IN DRIVE 0"&ю№‡ "PRESS ANY KEY WHEN READY"&њњA$ Г џ’'… A$ Г "" Ѕ 1530'"‡ "WORKING ";'?"W3$ Г "TRK 00 SEC 01 - "'F,:ƒ'dк:ƒ GENERATE THE TEST DATA'uф€ T Г 0 Ѕ 34'‰ю:ƒSKIP TRACK 17'žј… T Г 17 Ѕ 2220'АT3 Г џ(TЎ10)'Ч T4 Г T Ќ (T3 ­ 10)'пT1$ Г џ‹(T3 Ћ &H30)'ї T2$ Г џ‹(T4 Ћ &H30)(*€ S Г 1 Ѕ 18(4S3 Г џ(SЎ10)(1>S4 Г S Ќ (S3 ­ 10)(IHS1$ Г џ‹(S3 Ћ &H30)(aRS2$ Г џ‹(S4 Ћ &H30)(w\џ(W3$,5,1) Г T1$(fџ(W3$,6,1) Г T2$(Єpџ(W3$,12,1) Г S1$(Лzџ(W3$,13,1) Г S2$(х„S1$ Г W3$ЋW3$ЋW3$ЋW3$ЋW3$ЋW3$ЋW3$ЋW3$(љŽр 0,T,S,S1$,S1$)˜‹ S) Ђ‡ "*";)Ќ‹ T)Ж:ƒ); Ф:ƒCLEAN THE DIRECTORY TRACK)g ЮX$ Г " ")| иZ$ Г X$ЋX$ЋX$ЋX$)Ž т€ I Г 1 Ѕ 128)Ѕ ьџ(Z$,I,1) Г џ‹(0))­ і‹ I)Р р 0,17,1,Z$,Z$)г р 0,17,4,Z$,Z$)ц р 0,17,5,Z$,Z$)љ р 0,17,6,Z$,Z$* (р 0,17,7,Z$,Z$* 2р 0,17,8,Z$,Z$*2 <р 0,17,9,Z$,Z$*F Fр 0,17,10,Z$,Z$*Z Pр 0,17,11,Z$,Z$*n Zр 0,17,12,Z$,Z$*‚ dр 0,17,13,Z$,Z$*– nр 0,17,14,Z$,Z$*Њ xр 0,17,15,Z$,Z$*О ‚р 0,17,16,Z$,Z$*в Œр 0,17,17,Z$,Z$*ц –р 0,17,18,Z$,Z$*э  :ƒ*ѓ №‡+ њ‡ "FALSE FILL = DONE"+ :ƒ+џŠZ$*2 <р 0,17,9,Z$,Z$*F Fр 0,17,10,Z$,Z$*Z Pр 0,17,11,Z$,Z$*n Zр 0,17,12,Z$,Z$*‚ dр 0,17,13,Z$,Z$*– nр 0,17,14,Z$,Z$*Њ xр 0,17,15,Z$,Z$*О ‚р 0,17,16,Z$,Z$*в Œр 0,17,17,Z$,Z$*ц –р 0,17,18,Z$,Z$*э  :ƒ*ѓ №‡+ њ‡ "FALS17,16,Z$,Z$, Lр 0,17,17,Z$,Z$,2 Mр 0,17,18,Z$,Z$,9 P:ƒ,? №‡,Y њ‡ "FALSE FILL = DONE",` :ƒ,fџŠZ$+~ 2р 0,17,9,Z$,Z$+’ <р 0,17,10,Z$,Z$+І Fр 0,17,11,Z$,Z$+К Gр 0,17,12,Z$,Z$+Ю Hр 0,17,13,Z$,Z$+т Iр 0,17,14,Z$,Z$+і Jр 0,17,15,Z$,Z$, Kр 0,џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќ& ш:ƒ*****&ђ:ƒ*&*ќ:ƒ* FALSINIX.BAS&A:ƒ* MDJ 2023/02/22&I:ƒ*&e:ƒ* INITIALIZES A FALSE&~$:ƒ* FILE ALLOCATION &˜.:ƒ* TABLE (FAT) AND A&Д8:ƒ* FALSE DIRECTORY ON &ЯB:ƒ* A FALSE BLANK DISK&ыL:ƒ* INTENDED FOR USE BY'V:ƒ* DSKI$, DSKO$, AND'$`:ƒ* THEIR MACHINE LANGUAGE'>j:ƒ* EQUIVALENTS ONLY.'Ft:ƒ*'e~:ƒ* THE FALSE XXXXXXXX.XXX'ˆ:ƒ* DIRECTORY ENTRY AND'ž’:ƒ* FREE = 0 WILL SIGNAL'Лœ:ƒ* TO THE USER THAT THE'йІ:ƒ* DISK IS A FALSE DISK.'сА:ƒ*'џК:ƒ* UPON COMPLETION, THE (Ф:ƒ* DIRECTORY WILL LOOK (/Ю:ƒ* LIKE THIS:(7и:ƒ*(Tт:ƒ* XXXXXXXX XXX 3 B 68(\ь:ƒ*(uі:ƒ* AND WILL PROVIDE(Š:ƒ* THIS RESULT:(’ :ƒ*(Ў:ƒ* PRINT FREE(0) --> 0(Ж:ƒ*(Т(:ƒ*****(Щ2:ƒ(жм• &H1000(нц:ƒ(уЄ‡)Ў‡ " PUT THE DISK IN DRIVE 0")-И‡ " *** *** WARNING *** ***")SТ‡ " *** DISK WILL BE ERASED ***")xЬ‡ " PRESS ANY KEY WHEN READY")„жA$ Г џ’)šр… A$ Г "" Ѕ 1750) ъ‡)Гє‡ "WORKING *";)Кў:ƒ)Яа:ƒERASE THE DISK)ћкX$ Г " "*фZ$ Г X$ЋX$ЋX$ЋX$*"ю€ I Г 1 Ѕ 128*9јџ(Z$,I,1) Г џ‹(0)*A‹ I*R € T Г 0 Ѕ 34*c€ S Г 1 Ѕ 18*u р 0,T,S,Z$,Z$*}*‹ S*ˆ4‡ "*";*>‹ T*—H:ƒ*Д˜:ƒGENERATE THE FALSE FAT*РЂF$ Г Z$*лЌ:ƒSET GRANULES 0 TO 66*ьЖ€ I Г 1 Ѕ 67+Рџ(F$,I,1) Г џ‹(I)+ Ъ‹ I+ д:ƒSET GRANULE 67+<о:ƒ==> USE ALL 9 SECTORS+Wшџ(F$,68,1) Г џ‹(&HC9)+|ђ:ƒPUT TRACK 17, SECTOR 2 TO DISK+ќр 0,17,2,F$,Z$+š ‡ "*";+Ё :ƒ+Ф Ф:ƒGENERATE THE FALSE DIRECTORY+а ЮD$ Г Z$+щ и:ƒSET FALSE FILENAME+љ т€ I Г 1 Ѕ 8, ьџ(D$,I,1) Г "X", і‹ I,0 :ƒSET FALSE EXTENSION,A € I Г 9 Ѕ 11,V џ(D$,I,1) Г "X",^ ‹ I,p (:ƒSET TYPE = ,‹ 2:ƒ TEXT EDITOR SOURCE,Ѓ <џ(D$,12,1) Г џ‹(3),Н F:ƒSET FORMAT = BINARY,е Pџ(D$,13,1) Г џ‹(0),э Z:ƒSET NUMBER OF THE- d:ƒ FIRST GRANULE- nџ(D$,14,1) Г џ‹(0)-6 x:ƒNUMBER OF BYTES USED-S ‚:ƒ IN LAST SECTOR = 256-k Œџ(D$,15,1) Г џ‹(1)-ƒ –џ(D$,16,1) Г џ‹(0)-Ј  :ƒPUT TRACK 17, SECTOR 3 TO DISK-Л Њр 0,17,3,D$,Z$-Ц Д‡ "*";-Э О:ƒ-г T‡-ю ^‡ "FALSE INI X = DONE"-ѕ h:ƒ-ћџŠAџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ Љ& ш:ƒ*****&ђ:ƒ*&*ќ:ƒ* FALSINIC.BAS&A:ƒ* MDJ 2023/02/22&I:ƒ*&e:ƒ* INITIALIZES A FALSE&~$:ƒ* FILE ALLOCATION &˜.:ƒ* TABLE (FAT) AND A&Д8:ƒ* FALSE DIRECTORY ON &ЯB:ƒ* A FALSE BLANK DISK&зL:ƒ*&ѓV:ƒ* UTILIZES A FILENAME'`:ƒ* AND EXTENSION CHOSEN'*j:ƒ* BY THE USER, HERE'Bt:ƒ* REPRESENTED BY:'W~:ƒ* FILENAME.EXT'_ˆ:ƒ*'{’:ƒ* INTENDED FOR USE BY'•œ:ƒ* DSKI$, DSKO$, AND'ДІ:ƒ* THEIR MACHINE LANGUAGE'ЮА:ƒ* EQUIVALENTS ONLY.'жК:ƒ*'ѕФ:ƒ* THE FALSE FILENAME.EXT(Ю:ƒ* DIRECTORY ENTRY AND(.и:ƒ* FREE = 0 WILL SIGNAL(Kт:ƒ* TO THE USER THAT THE(iь:ƒ* DISK IS A FALSE DISK.(qі:ƒ*(:ƒ* UPON COMPLETION, THE (Ќ :ƒ* DIRECTORY WILL LOOK (П:ƒ* LIKE THIS:(Ч:ƒ*(ф(:ƒ* FILENAME EXT 3 B 68(ь2:ƒ*)<:ƒ* AND WILL PROVIDE)F:ƒ* THIS RESULT:)"P:ƒ*)>Z:ƒ* PRINT FREE(0) --> 0)Fd:ƒ*)Rn:ƒ*****)Yx:ƒ)fм• &H1000)mц:ƒ)sЄ‡)—Ў‡ " PUT THE DISK IN DRIVE 0")НИ‡ " *** *** WARNING *** ***")уТ‡ " *** DISK WILL BE ERASED ***"*Ь‡ " PRESS ANY KEY WHEN READY"*жA$ Г џ’**р… A$ Г "" Ѕ 1750*0ъ‡*7є:ƒ*=а‡*\к‡ "ENTER FILENAME WITHOUT"*zф‡ "EXTENSION; 1-8 CHARS."*„ю‰ FT$*•јL1 Г џ‡(FT$)*Т… ((L1 Д 1) Б (L1 В 8)) Ѕ 3710 :ƒERROR*в L1 Г 8 Ќ L1*у€ I Г 1 Ѕ L1*ї FT$ Г FT$ Ћ " "*џ*‹ I+4:ƒ+ ˜‡+%Ђ‡ "ENTER EXTENSION;"+8Ќ‡ "1-3 CHARS."+BЖ‰ EX$+SРL1 Г џ‡(EX$)+€Ъ… ((L1 Д 1) Б (L1 В 3)) Ѕ 3710 :ƒERROR+дL1 Г 3 Ќ L+ о€ I Г 1 Ѕ L1+ДшEX$ Г EX$ Ћ " "+Мђ‹ I+Яќ‡ "WORKING *";+ж :ƒ+ы `:ƒERASE THE DISK, jX$ Г " ",, tZ$ Г X$ЋX$ЋX$ЋX$,> ~€ I Г 1 Ѕ 128,U ˆџ(Z$,I,1) Г џ‹(0),] ’‹ I,n œ€ T Г 0 Ѕ 34, І€ S Г 1 Ѕ 18,‘ Ар 0,T,S,Z$,Z$,™ К‹ S,Є Ф‡ "*";,Ќ Ю‹ T,Г и:ƒ,а Œ:ƒGENERATE THE FALSE FAT,м –F$ Г Z$,ї  :ƒSET GRANULES 0 TO 66- Њ€ I Г 1 Ѕ 67- Дџ(F$,I,1) Г џ‹(I)-' О‹ I-< Ш:ƒSET GRANULE 67-X в:ƒ==> USE ALL 9 SECTORS-s мџ(F$,68,1) Г џ‹(&HC9)-˜ ц:ƒPUT TRACK 17, SECTOR 2 TO DISK-Ћ №р 0,17,2,F$,Z$-Ж њ‡ "*";-Н :ƒ-р :ƒGENERATE THE FALSE DIRECTORY-ь &D$ Г Z$. 0:ƒSET FALSE FILENAME. :€ I Г 1 Ѕ 8.2 Dџ(D$,I,1) Г џ(FT$,I,1).: N‹ I.T X:ƒSET FALSE EXTENSION.e b€ I Г 9 Ѕ 11.„ lџ(D$,I,1) Г џ(EX$,IЌ8,1).Œ v‹ I.ž €:ƒSET TYPE = .Й Š:ƒ TEXT EDITOR SOURCE.б ”џ(D$,12,1) Г џ‹(3).ы ž:ƒSET FORMAT = BINARY/ Јџ(D$,13,1) Г џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџТТЦСЩШУ УХСССШФЧФЧХЦШ"Т$СШЦЩЧ*Ч,ЧСС7824ТТХСФФХџџџџџџџџџџFALSINIXBAS џFALSINICBAS!ЌFALSCHGNBAS#тFALSCOPYBASвFALSFILLBASFALSDISPBAS%ИFALSXLTLBASэFLTLTESTBASеFALSXLTDBAS&aFLTDTESTBAS'шFALSPUT BASФFALSPUTTBASмFALSGET BAS(6FALSGETTBAS)ђFLXLTL ASMџ+њњFLXLTL BIN-~~FLXLTD ASMџQQFLXLTD BIN.rrFLPUT ASMџ/= =FLPUT BINKKFLGET ASMџ0& &FLGET BINKKTEST0101ASMџ1ааTEST0101BINииMLCORE BIN TEST0101BASћTEST0102ASMџССTEST0102BIN3--TEST0102BASћTEST0103ASMџ5  TEST0103BIN6""TEST0103BAS 0TEST0104ASMџ9  TEST0104BIN ""TEST0104BAS MAKEFALSBAS7FLSYS BIN hџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ‹(0)/ В:ƒSET NUMBER OF THE/1 М:ƒ FIRST GRANULE/I Цџ(D$,14,1) Г џ‹(0)/d а:ƒNUMBER OF BYTES USED/ к:ƒ IN LAST SECTOR = 256/™ фџ(D$,15,1) Г џ‹(1)/Б юџ(D$,16,1) Г џ‹(0)/ж ј:ƒPUT TRACK 17, SECTOR 3 TO DISK/щ р 0,17,3,D$,Z$/є ‡ "*";/ћ :ƒ0 Ќ‡0 Ж‡ "FALSE INI C = DONE"0) РЅ 3276700 Ъ:ƒ0Et:ƒERROR HANDLING0Q~‡ 0sˆ‡ "*** ERROR ENCOUNTERED ***"0•’‡ "*** RUN TERMINATED ***"0›œ‡0ЂІ:ƒ0ЈџŠ џ‹(0)/ж ј:ƒPUT TRACK 17, SECTOR 3 TO DISK/щ р 0,17,3,D$,Z$/є ‡ "*";/ћ :ƒ0 џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ п& ш:ƒ*****&ђ:ƒ*&*ќ:ƒ* FALSCHGN.BAS&A:ƒ* MDJ 2023/02/24&I:ƒ*&e:ƒ* CHANGES THE NAME OF&{$:ƒ* A FALSE DISK &ƒL:ƒ*&ŸV:ƒ* UTILIZES A FILENAME&М`:ƒ* AND EXTENSION CHOSEN&жj:ƒ* BY THE USER, HERE&юt:ƒ* REPRESENTED BY:'~:ƒ* FILENAME.EXT' ˆ:ƒ*''’:ƒ* INTENDED FOR USE BY'Aœ:ƒ* DSKI$, DSKO$, AND'`І:ƒ* THEIR MACHINE LANGUAGE'zА:ƒ* EQUIVALENTS ONLY.'‚К:ƒ*'ЁФ:ƒ* THE FALSE FILENAME.EXT'НЮ:ƒ* DIRECTORY ENTRY AND'ки:ƒ* FREE = 0 WILL SIGNAL'їт:ƒ* TO THE USER THAT THE(ь:ƒ* DISK IS A FALSE DISK.(і:ƒ*(;:ƒ* UPON COMPLETION, THE (X :ƒ* DIRECTORY WILL LOOK (k:ƒ* LIKE THIS:(s:ƒ*((:ƒ* FILENAME EXT 3 B 68(˜2:ƒ*(Б<:ƒ* AND WILL PROVIDE(ЦF:ƒ* THIS RESULT:(ЮP:ƒ*(ъZ:ƒ* PRINT FREE(0) --> 0(ђd:ƒ*(ўn:ƒ*****)x:ƒ)м• &H1000)>цX$ Г " ")S№Z$ Г X$ЋX$ЋX$ЋX$)eњ€ I Г 1 Ѕ 128)|џ(Z$,I,1) Г џ‹(0))„‹ I)‹:ƒ)‘Є‡)ЗЎ‡ "PUT THE FALSE DISK IN DRIVE 0")иЬ‡ "PRESS ANY KEY WHEN READY")фжA$ Г џ’)њр… A$ Г "" Ѕ 1750*ъ‡*ў:ƒ* Ф‡*, Ю‡ "ENTER FILENAME WITHOUT"*J и‡ "EXTENSION; 1-8 CHARS."*T т‰ FT$*e ьL1 Г џ‡(FT$)*’ і… ((L1 Д 1) Б (L1 В 8)) Ѕ 3710 :ƒERROR*Ђ L1 Г 8 Ќ L1*Г € I Г 1 Ѕ L1*Ч FT$ Г FT$ Ћ " "*Я ‹ I*ж (:ƒ*м №‡*ѕ њ‡ "ENTER EXTENSION;"+ ‡ "1-3 CHARS."+ ‰ EX$+# L1 Г џ‡(EX$)+P "… ((L1 Д 1) Б (L1 В 3)) Ѕ 3710 :ƒERROR+_ ,L1 Г 3 Ќ L+p 6€ I Г 1 Ѕ L1+„ @EX$ Г EX$ Ћ " "+Œ J‹ I+“ T:ƒ+Ж :ƒGENERATE THE FALSE DIRECTORY+Т &D$ Г Z$+л 0:ƒSET FALSE FILENAME+ы :€ I Г 1 Ѕ 8, Dџ(D$,I,1) Г џ(FT$,I,1), N‹ I,* X:ƒSET FALSE EXTENSION,; b€ I Г 9 Ѕ 11,Z lџ(D$,I,1) Г џ(EX$,IЌ8,1),b v‹ I,t €:ƒSET TYPE = , Š:ƒ TEXT EDITOR SOURCE,Ї ”џ(D$,12,1) Г џ‹(3),С ž:ƒSET FORMAT = BINARY,й Јџ(D$,13,1) Г џ‹(0),ё В:ƒSET NUMBER OF THE- М:ƒ FIRST GRANULE- Цџ(D$,14,1) Г џ‹(0)-: а:ƒNUMBER OF BYTES USED-W к:ƒ IN LAST SECTOR = 256-o фџ(D$,15,1) Г џ‹(1)-‡ юџ(D$,16,1) Г џ‹(0)-Ќ ј:ƒPUT TRACK 17, SECTOR 3 TO DISK-П р 0,17,3,D$,Z$-Ц :ƒ-ц Ќ:ƒCLEAN THE DIRECTORY TRACK-љ Жр 0,17,1,Z$,Z$. Рр 0,17,4,Z$,Z$. Ър 0,17,5,Z$,Z$.2 др 0,17,6,Z$,Z$.E ор 0,17,7,Z$,Z$.X шр 0,17,8,Z$,Z$.k ђр 0,17,9,Z$,Z$. ќр 0,17,10,Z$,Z$.“р 0,17,11,Z$,Z$.Їр 0,17,12,Z$,Z$.Лр 0,17,13,Z$,Z$.Я$р 0,17,14,Z$,Z$.у.р 0,17,15,Z$,Z$.ї8р 0,17,16,Z$,Z$/ Bр 0,17,17,Z$,Z$/Lр 0,17,18,Z$,Z$/&V:ƒ/,и‡/Rт‡ "FALSE CHANGE DISK NAME = DONE"/_ьЅ 32767/fі:ƒ/{ :ƒERROR HANDLING/‡Њ‡ /ЉД‡ "*** ERROR ENCOUNTERED ***"/ЫО‡ "*** RUN TERMINATED ***"/бШ‡/ив:ƒ/оџŠZ$.ї8р 0,17,16,Z$,Z$/ Bр 0џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЕ& ш:ƒ*****&ђ:ƒ*&*ќ:ƒ* FALSDISP.BAS&A:ƒ* MDJ 2023/02/22&I:ƒ*&c:ƒ* DISPLAYS THE DATA&z$:ƒ* CONTAINED IN A&’.:ƒ* SELECTED LINEAR&Ё8:ƒ* SECTOR&ЉB:ƒ*&ЕL:ƒ*****&М`:ƒ&Щ~• &H1000&ЯА‡&яК‡ "MAKE SURE FALSE DISK IS"' Ф‡ "IN THE DESIRED DRIVE."'.Ю‡ "PRESS ANY KEY WHEN READY"':иA$ Г џ’'Pт… A$ Г "" Ѕ 1240'Vь‡']і:ƒ'x‡ "ENTER THE DESIRED LINEAR" 'Ђ‚‡ "SECTOR NUMBER (0 - 2447) ";'ЊŒ‰ L'И–L Г џ(L)'т … ((LД0) Б (LВ2447)) Ѕ 2410 :ƒERROR'шЊ‡'яД:ƒ(@:ƒGO TRANSLATE(J:ƒLINEAR SECTOR NUMBER.(4T:ƒRETURNS D, T, S(A^І 20000(`h… (D Д 0) Ѕ 2410 :ƒERROR(gr:ƒ(y‡ "CONTENTS:"(‹п D,T,S,X$,Y$(•‡ X$;(ž&‡ Y$(Є0‡(Ћ::ƒ(аа‡ "CHECK ANOTHER SECTOR (Y/N) ";(мкA$ Г џ’(ђф… A$ Г "" Ѕ 2010) ю… A$ Г "Y" Ѕ 1400)ј‡):ƒ)3˜‡ "FALSE DISPLAY = DONE")@ЂЅ 32767)GЌ:ƒ)\ `:ƒERROR HANDLING)h j‡ )Š t‡ "*** ERROR ENCOUNTERED ***")Ќ ~‡ "*** RUN TERMINATED ***")В ˆ‡)П ’Ѕ 32767)Ц œ:ƒ)вN :ƒ*****)кN*:ƒ*)яN4:ƒ* FALSXLTL.BAS*N>:ƒ* MDJ 2023/02/21*NH:ƒ**!NR:ƒ* FALSE DISK*4N\:ƒ* L TO D,T,S*SNf:ƒ* TRANSLATION SUBROUTINE*[Np:ƒ**uNz:ƒ* ENTRY CONDITIONS:*ˆN„:ƒ* L (0-2447)*ЇNŽ:ƒ* = LINEAR SECTOR NUMBER*ЏN˜:ƒ**ШNЂ:ƒ* EXIT CONDITIONS:*иNЌ:ƒ* D (0-3)*яNЖ:ƒ* = DRIVE NUMBER+NР:ƒ* T (0-34)+NЪ:ƒ* = TRACK NUMBER+(Nд:ƒ* S (1-18)+@Nо:ƒ* = SECTOR NUMBER+HNш:ƒ*+dNђ:ƒ* INTERNAL TEMPORARY +xNќ:ƒ* VARIABLES =+‰O:ƒ* V1, V2+‘O:ƒ*+ЂO:ƒ* ON EXIT:+КO$:ƒ* D < 0 ==> ERROR+ТO.:ƒ*+ЮO8:ƒ*****+еOB:ƒ+ъOА:ƒERROR TRAPPING+љOКV1 Г џ(L),OФ… V1 Д 0 Ѕ 20810,(OЮ… V1 В 2447 Ѕ 20810,/Oи:ƒ,FP:ƒGET DRIVE NUMBER,_P:ƒAND REMAINDER = V2,tP(D Г џ(V1 Ў 612),ŒP2V2 Г V1 Ќ (D ­ 612),“P<:ƒ,ЊPx:ƒGET TRACK NUMBER,ТP‚:ƒAND SECTOR NUMBER,жPŒT Г џ(V2 Ў 18),№P–S Г V2 Ќ (T ­ 18) Ћ 1-P :ƒSKIP TRACK 17-PЊ… (T Д 17) Ѕ 20670-*PДT Г T Ћ 1-0PО-7PШ:ƒ-MQ@:ƒ ERROR HANDLING-XQJD Г Ќ9-^QT-eQ^:ƒ-qQЄ:ƒ*****-yQЎ:ƒ*-“QИ:ƒ* END OF SUBROUTINE-›QТ:ƒ*-ЇQЬ:ƒ*****-ЎQж:ƒ-ДџŠCTOR NUMBER,жPŒT Г џ(V2 Ў 18),№P–S Г V2 Ќ (T ­ 18) Ћ 1-P :ƒSKIP TRAџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ^& R:ƒ*****&R:ƒ*&*R:ƒ* FALSXLTD.BAS&@R!:ƒ* VERSION 1.0.1&WR&:ƒ* MDJ 2024/04/20&_R0:ƒ*&rR::ƒ* FALSE DISK&…RD:ƒ* D,T,S TO L&ЄRN:ƒ* TRANSLATION SUBROUTINE&ЌRX:ƒ*&ЦRb:ƒ* ENTRY CONDITIONS:&жRl:ƒ* D (0-3)&эRv:ƒ* = DRIVE NUMBER&ўR€:ƒ* T (0-34)'RŠ:ƒ* = TRACK NUMBER'&R”:ƒ* S (1-18)'>Rž:ƒ* = SECTOR NUMBER'FRЈ:ƒ*'_RВ:ƒ* EXIT CONDITIONS:'rRМ:ƒ* L (0-2447)'‘RЦ:ƒ* = LINEAR SECTOR NUMBER'™Rа:ƒ*'ЕRк:ƒ* INTERNAL TEMPORARY 'ЩRф:ƒ* VARIABLES ='оRю:ƒ* V3, V4, V5'цRј:ƒ*'їS:ƒ* ON EXIT:(S :ƒ* L < 0 ==> ERROR(S:ƒ*(#S :ƒ*****(*S*:ƒ(AS+:ƒREVISION HISTORY(]S,:ƒORIGINAL = 2023/02/21(xS-:ƒV.1.0.1 - 2024/04/20(ЄS.:ƒ FIXED BUGS IN LINES 21860 AND 22240(ЙS˜:ƒERROR TRAPPING(ШSЂV3 Г џ(D)(оSЌ… V3 Д 0 Ѕ 22410(єSЖ… V3 В 3 Ѕ 22410)SРV4 Г џ(T))SЪ… V4 Д 0 Ѕ 22410)0Sд… V4 В 34 Ѕ 22410)GSо… V4 Г 17 Ѕ 22410)VSшV5 Г џ(S))lSђ… V5 Д 1 Ѕ 22410)ƒSќ… V5 В 18 Ѕ 22410)ŠT:ƒ)ЉU(:ƒ GO DO SPECIAL HANDLING )ОU2:ƒ IF TRACK > 17)еU<… V4 В 17 Ѕ 22240)мUF:ƒ)єUP:ƒ REGULAR HANDLING*UZ:ƒ 18 SECTORS PER TRACK*8UdL Г (V3 ­ 612) Ћ (V4 ­ 18) Ћ V5 Ќ 1*>Un*EUx:ƒ*]VИ:ƒ SPECIAL HANDLING*tVТ:ƒ FOR TRACKS > 17*VЬ:ƒ ADJUST FOR SKIPPING*АVж:ƒ FAT AND DIRECTORY SECTORS*йVрL Г (V3 ­ 612) Ћ (V4 ­ 18) Ћ V5 Ќ 19*пVъ*цVє:ƒ*ќW€:ƒ ERROR HANDLING+WŠL Г Ќ9+ W”+Wž:ƒ+ XH:ƒ*****+(XR:ƒ*+BX\:ƒ* END OF SUBROUTINE+JXf:ƒ*+VXp:ƒ*****+]Xz:ƒVТ:ƒ FOR TRACKS > 17*VЬ:ƒ ADJUST FOR SKIPPING*АVж:ƒ FAT AND DIRECTORY SECTORS*йVрL Г (V3 ­ 612) Ћ (V4 ­ 18) Ћ V5 Ќ 19*пVъ*цVє:ƒ*ќW€:ƒ ERROR HANDLING+џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџх& ш:ƒ*****&ќ:ƒ*&*:ƒ* FLTDTEST.BAS&A:ƒ* MDJ 2023/02/22&I:ƒ*&[$:ƒ* TESTS THE&l.:ƒ* FALSXLTD&8:ƒ* SUBROUTINE&‡B:ƒ*&“L:ƒ*****&šV:ƒ&Їx• &H1000&Ыа‡ "ENTER DRIVE NUMBER (0-3) >";&гк‰ D&сфD Г џ(D)'ю… ((D ВГ 0) А (D ДГ 3)) Ѕ 2200''ј‡ "OUT OF RANGE - TRY AGAIN:"'3Ѕ 2000': :ƒ'_˜‡ "ENTER TRACK NUMBER (0-35) >";'gЂ‰ T'uЌT Г џ(T)'ŠЖ… T Г 17 Ѕ 2250'ЏР… ((T ВГ 0) А (T ДГ 34)) Ѕ 2400'бЪ‡ "OUT OF RANGE - TRY AGAIN:"'ндЅ 2200'фо:ƒ( `‡ "ENTER SECTOR NUMBER (1-18) >";( j‰ S( tS Г џ(S)(E ~… ((S ВГ 1) А (S ДГ 18)) Ѕ 2610(g ˆ‡ "OUT OF RANGE - TRY AGAIN:"(s ’Ѕ 2400(z œ:ƒ(™ (:ƒ GO TRANSLATE D,T,S TO L(І 2І 21410(Х <… (L Д 0) Ѕ 3410 :ƒERROR(Ы F‡(л P‡ "D = "; D(ы Z‡ "T = "; T(ћ d‡ "S = "; S) n‡ "L = "; L) x‡) ‚:ƒ)7 №‡ "CHECK ANOTHER (Y/N) >";)C њA$ Г џ’)Y … A$ Г "" Ѕ 2810)p … A$ Г "Y" Ѕ 2000)w :ƒ) €‡ "FLTDTEST = DONE")œ ЁЅ 32767)Ѓ ”:ƒ)И H:ƒERROR HANDLING)к R‡ "*** ERROR ENCOUNTERED ***")ќ \‡ "*** RUN TERMINATED ***"* f‡* pЅ 32767* z:ƒ*"R:ƒ*******R:ƒ**?R:ƒ* FALSXLTD.BAS*VR&:ƒ* MDJ 2023/02/21*^R0:ƒ**qR::ƒ* FALSE DISK*„RD:ƒ* D,T,S TO L*ЃRN:ƒ* TRANSLATION SUBROUTINE*ЋRX:ƒ**ХRb:ƒ* ENTRY CONDITIONS:*еRl:ƒ* D (0-3)*ьRv:ƒ* = DRIVE NUMBER*§R€:ƒ* T (0-34)+RŠ:ƒ* = TRACK NUMBER+%R”:ƒ* S (1-18)+=Rž:ƒ* = SECTOR NUMBER+ERЈ:ƒ*+^RВ:ƒ* EXIT CONDITIONS:+qRМ:ƒ* L (0-2447)+RЦ:ƒ* = LINEAR SECTOR NUMBER+˜Rа:ƒ*+ДRк:ƒ* INTERNAL TEMPORARY +ШRф:ƒ* VARIABLES =+нRю:ƒ* V3, V4, V5+хRј:ƒ*+іS:ƒ* ON EXIT:,S :ƒ* L < 0 ==> ERROR,S:ƒ*,"S :ƒ*****,)S*:ƒ,>S˜:ƒERROR TRAPPING,MSЂV3 Г џ(D),cSЌ… V3 Д 0 Ѕ 22410,ySЖ… V3 В 3 Ѕ 22410,ˆSРV4 Г џ(T),žSЪ… V4 Д 0 Ѕ 22410,ЕSд… V4 В 34 Ѕ 22410,ЬSо… V4 Г 17 Ѕ 22410,лSшV5 Г џ(S),ёSђ… V5 Д 1 Ѕ 22410-Sќ… V5 В 18 Ѕ 22410-T:ƒ-.U(:ƒ GO DO SPECIAL HANDLING -CU2:ƒ IF TRACK > 17-ZU<… V4 В 17 Ѕ 22240-aUF:ƒ-yUP:ƒ REGULAR HANDLING-•UZ:ƒ 18 SECTORS PER TRACK-ЙUdL Г (V3 ­ 620) Ћ (V4 ­ 18) Ћ V5-ПUn-ЦUx:ƒ-оVИ:ƒ SPECIAL HANDLING-ѕVТ:ƒ FOR TRACKS > 17.VЬ:ƒ ADJUST FOR SKIPPING.1Vж:ƒ FAT AND DIRECTORY SECTORS.ZVрL Г (V3 ­ 620) Ћ (V4 ­ 18) Ћ V5 Ќ 18.`Vъ.gVє:ƒ.}W€:ƒ ERROR HANDLING.ˆWŠL Г Ќ9.ŽW”.•Wž:ƒ.ЁXH:ƒ*****.ЉXR:ƒ*.УX\:ƒ* END OF SUBROUTINE.ЫXf:ƒ*.зXp:ƒ*****.оXz:ƒ.фџŠOR TRACKS > 17.VЬ:ƒ ADџ3& .р:ƒ*****&.ъ:ƒ*&).є:ƒ* FALSGET.BAS&@.ў:ƒ* MDJ 2023/02/22&H/:ƒ*&b/:ƒ* FALSE DISK SYSTEM&z/:ƒ* GET BUFFER FROM&/&:ƒ* LINEAR SECTOR&Ѓ/0:ƒ* SUBROUTINE&Ћ/::ƒ*&Ш/D:ƒ* GETS A LINEAR SECTOR&й/N:ƒ* (0-2447)&ѓ/X:ƒ* FROM A FALSE DISK' /b:ƒ* TO A SPECIFIED'/l:ƒ* DISK BUFFER ''/v:ƒ*'A/€:ƒ* ENTRY CONDITIONS:'b/Š:ƒ* L = LINEAR SECTOR NUMBER'‚/”:ƒ* B = DISK BUFFER ADDRESS'Š/ž:ƒ*'Ѓ/Ј:ƒ* INTERNALLY USED 'П/В:ƒ* PERMANENT VARIABLES'и/М:ƒ* D = DRIVE NUMBER'ё/Ц:ƒ* T = TRACK NUMBER( /а:ƒ* S = SECTOR NUMBER(/к:ƒ*(,/ф:ƒ* INTERNALLY USED (I/ю:ƒ* TEMPORARY VARIABLES:(c/ј:ƒ* A1, A2, C1$. C2$,(z0:ƒ* I, E, V6, V7, (‹0 :ƒ* X1$, X2$(“0:ƒ*(Є0 :ƒ* ON EXIT:(М0*:ƒ* L < 0 ==> ERROR(Ф04:ƒ*(а0>:ƒ*****(з0H:ƒ(ђ0p:ƒTHERE IS NO INTERNAL)0z:ƒCHECK ON THE VALIDITY)*0„:ƒOF THE BUFFER ADDRESS)J0Ž:ƒHERE - PERFORM EXTERNALLY)d0˜:ƒBEFORE CALLING THIS)v0Ђ:ƒSUBROUTINE.)…0ЌV6 Г џ(B))™0Ж:ƒADDRESSES FOR)Џ0Р:ƒSETTING STRINGS)П0ЪV6 Г V6 Ќ 1)в0дV7 Г V6 Ћ &H80)й0о:ƒ)ь18:ƒGO TRANSLATE*1B:ƒLINEAR SECTOR NUMBER.*1L:ƒRETURNS D, T, S*+1VІ 20000*K1`… (D Д 0) Ѕ 13100 :ƒERROR*R1j:ƒ*p1œ:ƒ GET THE DATA FROM DISK*„1Іп D,T,S,X1$,X2$*‹1А:ƒ*Ў2:ƒ CHECK STATUS FOR READ ERROR*С2 E Г џ†(&H00F0)*р2… (EДВ0) Ѕ 13100 :ƒERROR*ч2(:ƒ+2d:ƒ GET DATA FROM THE STRINGS+!2n:ƒ AND PUT TO BUFFER+32x€ I Г 1 Ѕ 128+C2‚A1 Г V6 Ћ I+S2ŒA2 Г V7 Ћ I+i2–C1$ Г џ(X1$,I,1)+2 C2$ Г џ(X2$,I,1)+‘2Њ’ A1, џŠ(C1$)+Ѓ2Д’ A2, џŠ(C2$)+Ћ2О‹ I+Б2Ш+И2в:ƒ+Ю3,:ƒ ERROR HANDLING+м36:ƒ L = -9+т3@+щ3J:ƒ+ѕ3:ƒ*****+§3š:ƒ*,3Є:ƒ* END OF SUBROUTINE,3Ў:ƒ*,+3И:ƒ*****,23Т:ƒC2‚A1 Г V6 Ћ I+S2ŒA2 Г V7 Ћ I+i2–C1$ Г џ(X1$,I,1)+2 C2$ Г џ(X2$,I,1)+‘2Њ’ A1, џŠ(C1$)+Ѓ2Д’ A2, џŠ(C2$)+Ћ2О‹ I+Б2Ш+И2в:ƒ+Ю3,:ƒ ERROR HANDLING+м36:ƒ L = -9+т3@+щ3J:ƒ+ѕ3:ƒ*****+§3š:ƒ*,џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџя& ш:ƒ*****&ђ:ƒ*&*ќ:ƒ* FALSGETT.BAS&A:ƒ* MDJ 2023/02/22&I:ƒ*&a:ƒ* TESTS THE BASIC&{$:ƒ* FALSGET MECHANISM&ƒ.:ƒ*&8:ƒ*****&–B:ƒ&ЃL• &H1000&ЊV:ƒ&АА‡&аК‡ "MAKE SURE FALSE DISK IS"&юФ‡ "IN THE DESIRED DRIVE."'Ю‡ "PRESS ANY KEY WHEN READY"'иA$ Г џ’'1т… A$ Г "" Ѕ 1240'7ь‡'>і:ƒ'`x‡ "ENTER THE DESIRED LINEAR" 'ƒ‚‡ "SECTOR NUMBER (0 - 2447) ";'‹Œ‰ L'™–L Г џ(L)'У … ((LД0) Б (LВ2447)) Ѕ 3010 :ƒERROR'еЊ‡ "WORKING ";(Д:ƒFAKE WORKING DELAYS TO SHOW ACTIVITY(О€ K Г 1 Ѕ 500:‹ K(!Ш‡ "*";(7в€ K Г 1 Ѕ 500:‹ K(Bм‡ "*";(Iц:ƒ(k@:ƒTHIS TEST USES THE STANDARD(J:ƒDISK BASIC BUFFER AT &H0600(œTB Г &H0600(Ѓ^:ƒ(Ча:ƒGO GET THE DATA FROM THE DISK(цк:ƒAND PUT IT IN THE BUFFER(ѓфІ 12460)ю… (L Д 0) Ѕ 3010 :ƒERROR)ј‡ "*";)$:ƒ)I˜:ƒGO DISPLAY THE BUFFER CONTENTS)uЂX$ Г " ")‘ЌD1$ Г X$ Ћ X$ Ћ X$ Ћ X$)­ЖD2$ Г X$ Ћ X$ Ћ X$ Ћ X$)ПР€ I Г 1 Ѕ 128)гЪA8 Г &H05FF Ћ I)чдA9 Г &H067F Ћ I)ќоC1$ Г џ‹(џ†(A8))*шC2$ Г џ‹(џ†(A9))*'ђџ(D1$,I,1) Г C1$*=ќџ(D2$,I,1) Г C2$*O J Г џ(I Ў 4)*c J Г I Ќ (J ­ 4)*{ … (J ДВ 0) Ѕ 2350 *† $‡ "*";*Ž .‹ I*– 8‡:‡*Ё B‡ D1$;*Ћ L‡ D2$*В V:ƒ*з (‡ "CHECK ANOTHER SECTOR (Y/N) ";*у 2A$ Г џ’*љ <… A$ Г "" Ѕ 2610+ F… A$ Г "Y" Ѕ 1400+ P‡+ Z:ƒ+< №‡:‡ "FALSGETT TEST = DONE"+I њЅ 32767+P :ƒ+e И:ƒERROR HANDLING+q Т‡ +“ Ь‡ "*** ERROR ENCOUNTERED ***"+Е ж‡ "*** RUN TERMINATED ***"+Л р‡+Ш ъЅ 32767+Я є:ƒ+л.р:ƒ*****+у.ъ:ƒ*+ї.є:ƒ* FALSGET.BAS,.ў:ƒ* MDJ 2023/02/22,/:ƒ*,0/:ƒ* FALSE DISK SYSTEM,H/:ƒ* GET BUFFER FROM,^/&:ƒ* LINEAR SECTOR,q/0:ƒ* SUBROUTINE,y/::ƒ*,–/D:ƒ* GETS A LINEAR SECTOR,Ї/N:ƒ* (0-2511),С/X:ƒ* FROM A FALSE DISK,и/b:ƒ* TO A SPECIFIED,э/l:ƒ* DISK BUFFER ,ѕ/v:ƒ*-/€:ƒ* ENTRY CONDITIONS:-0/Š:ƒ* L = LINEAR SECTOR NUMBER-P/”:ƒ* B = DISK BUFFER ADDRESS-X/ž:ƒ*-q/Ј:ƒ* INTERNALLY USED -/В:ƒ* PERMANENT VARIABLES-І/М:ƒ* D = DRIVE NUMBER-П/Ц:ƒ* T = TRACK NUMBER-й/а:ƒ* S = SECTOR NUMBER-с/к:ƒ*-њ/ф:ƒ* INTERNALLY USED ./ю:ƒ* TEMPORARY VARIABLES:.1/ј:ƒ* A1, A2, C1$. C2$,.H0:ƒ* I, E, V6, V7, .Y0 :ƒ* X1$, X2$.a0:ƒ*.r0 :ƒ* ON EXIT:.Š0*:ƒ* L < 0 ==> ERROR.’04:ƒ*.ž0>:ƒ*****.Ѕ0H:ƒ.Р0p:ƒTHERE IS NO INTERNAL.м0z:ƒCHECK ON THE VALIDITY.ј0„:ƒOF THE BUFFER ADDRESS/0Ž:ƒHERE - PERFORM EXTERNALLY/20˜:ƒBEFORE CALLING THIS/D0Ђ:ƒSUBROUTINE./S0ЌV6 Г џ(B)/g0Ж:ƒADDRESSES FOR/}0Р:ƒSETTING STRINGS/0ЪV6 Г V6 Ќ 1/ 0дV7 Г V6 Ћ &H80/Ї0о:ƒ/К18:ƒGO TRANSLATE/ж1B:ƒLINEAR SECTOR NUMBER./ь1L:ƒRETURNS D, T, S/љ1VІ 2000001`… (D Д 0) Ѕ 13100 :ƒERROR0 1j:ƒ0>1œ:ƒ GET THE DATA FROM DISK0R1Іп D,T,S,X1$,X2$0Y1А:ƒ0|2:ƒ CHECK STATUS FOR READ ERROR02 E Г џ†(&H00F0)0Ў2… (EДВ0) Ѕ 13100 :ƒERROR0Е2(:ƒ0ж2d:ƒ GET DATA FROM THE STRINGS0я2n:ƒ AND PUT TO BUFFER12x€ I Г 1 Ѕ 12812‚A1 Г V6 Ћ I1!2ŒA2 Г V7 Ћ I172–C1$ Г џ(X1$,I,1)1M2 C2$ Г џ(X2$,I,1)1_2Њ’ A1, џŠ(C1$)1q2Д’ A2, џŠ(C2$)1y2О‹ I12Ш1†2в:ƒ1œ3,:ƒ ERROR HANDLING1Њ36:ƒ L = -91А3@1З3J:ƒ1У3:ƒ*****1Ы3š:ƒ*1х3Є:ƒ* END OF SUBROUTINE1э3Ў:ƒ*1љ3И:ƒ*****23Т:ƒ2 N :ƒ*****2N*:ƒ*2)N4:ƒ* FALSXLTL.BAS2@N>:ƒ* MDJ 2023/02/212HNH:ƒ*2[NR:ƒ* FALSE DISK2nN\:ƒ* L TO D,T,S2Nf:ƒ* TRANSLATION SUBROUTINE2•Np:ƒ*2ЏNz:ƒ* ENTRY CONDITIONS:2ТN„:ƒ* L (0-2447)2сNŽ:ƒ* = LINEAR SECTOR NUMBER2щN˜:ƒ*3NЂ:ƒ* EXIT CONDITIONS:3NЌ:ƒ* D (0-3)3)NЖ:ƒ* = DRIVE NUMBER3:NР:ƒ* T (0-34)3QNЪ:ƒ* = TRACK NUMBER3bNд:ƒ* S (1-18)3zNо:ƒ* = SECTOR NUMBER3‚Nш:ƒ*3žNђ:ƒ* INTERNAL TEMPORARY 3ВNќ:ƒ* VARIABLES =3УO:ƒ* V1, V23ЫO:ƒ*3мO:ƒ* ON EXIT:3єO$:ƒ* D < 0 ==> ERROR3ќO.:ƒ*4O8:ƒ*****4OB:ƒ4$OА:ƒERROR TRAPPING43OКV1 Г џ(L)4IOФ… V1 Д 0 Ѕ 208104bOЮ… V1 В 2447 Ѕ 208104iOи:ƒ4€P:ƒGET DRIVE NUMBER4™P:ƒAND REMAINDER = V24ЎP(D Г џ(V1 Ў 612)4ЦP2V2 Г V1 Ќ (D ­ 612)4ЭP<:ƒ4фPx:ƒGET TRACK NUMBER4ќP‚:ƒAND SECTOR NUMBER5PŒT Г џ(V2 Ў 18)5*P–S Г V2 Ќ (T ­ 18) Ћ 15>P :ƒSKIP TRACK 175VPЊ… (T Д 17) Ѕ 206705dPДT Г T Ћ 15jPО5qPШ:ƒ5‡Q@:ƒ ERROR HANDLING5’QJD Г Ќ95˜QT5ŸQ^:ƒ5ЋQЄ:ƒ*****5ГQЎ:ƒ*5ЭQИ:ƒ* END OF SUBROUTINE5еQТ:ƒ*5сQЬ:ƒ*****5шQж:ƒ5юџŠCTOR NUMBER5џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ00100 ***** 00110 * 00120 * FLXLTL.ASM 00130 * MDJ 2023/02/28 00140 * 00150 * FALSE DISK 00160 * L TO D,T,S 00170 * TRANSLATION SUBROUTINE 00180 * 00190 * ENTRY CONDITIONS 00200 * REGISTER X = L (0-2447) 00210 * = LINEAR SECTOR NUMBER 00220 * 00230 * EXIT CONDITIONS 00240 * REGISTER X = D (0-3) 00250 * = DRIVE NUMBER 00260 * REGISTER A = T (0-34) 00270 * = TRACK NUMBER 00280 * REGISTER B = S (1-18) 00290 * = SECTOR NUMBER 00300 * 00310 * ON EXIT: 00320 * REGISTER X = $FFFF 00330 * A = $FF 00340 * B = $FF 00350 * ==> ERROR 00360 * 00370 ***** 00380 00390 * GENERAL EQUATES 00400 DDIV EQU 612 DRIVE DIVISOR = $264 00410 TDIV EQU 18 TRACK DIVISOR = $12 00420 00430 ORG $4416 00440 00450 * ERROR TRAPPING 00460 FLXLTL CMPX #2447 MAX LINEAR SECTOR # 00470 BHI LBL008 ERROR IF GREATER 00480 00490 * AT THIS POINT, THE STACK CONTAINS: 00500 * 1,S RTS LOCATION LOW BYTE 00510 * ,S RTS LOCATION HIGH BYTE 00520 00530 * MAKE SPACE ON THE STACK FOR: 00540 * 9,S RTS LOCATION LOW BYTE 00550 * 8,S RTS LOCATION HIGH BYTE 00560 * 7,S LITERAL SECTOR NUMBER LOW BYTE 00570 * 6,S LITERAL SECTOR NUMBER HIGH BYTE 00580 * 5,S REMAINDER LOW BYTE 00590 * 4,S REMAINDER HIGH BYTE 00600 * 3,S DRIVE NUMBER LOW BYTE 00610 * 2,S DRIVE NUMBER HIGH BYTE (ALL ZEROES) 00620 * 1,S TRACK NUMBER 00630 * ,S SECTOR NUMBER 00640 LEAS -8,S 00650 00660 * LOAD THE STACK 00670 STX 6,S LITERAL SECTOR NUMBER 00680 CLRA 00690 STA 2,S DRIVE # HIGH BYTE = 0 00700 00710 * GET DRIVE NUMBER AND REMAINDER 00720 * BY EMULATING DIVISION VIA 00730 * REPEATED SUBTRACTION 00740 * REGD = LITERAL SECTOR NUMBER = DIVIDEND 00750 LDD 6,S 00760 CMPD #DDIV IS IT >= THE DIVISOR? 00770 BHS LBL001 GO IF YES 00780 STD 4,S REMAINDER 00790 CLRA 00800 STA 3,S DRIVE NUMBER = 0 00810 BRA LBL004 00820 LBL001 SUBD #DDIV FIRST DIVISION 00830 CMPD #DDIV IS IT >=THE DIVISOR? 00840 BHS LBL002 GO IF YES 00850 STD 4,S REMAINDER 00860 LDA #1 00870 STA 3,S DRIVE NUMBER = QUOTIENT = 1 00880 BRA LBL004 00890 LBL002 SUBD #DDIV SECOND DIVISION 00900 CMPD #DDIV IS IT >= DIVISOR? 00910 BHS LBL003 GO IF YES 00920 STD 4,S REMAINDER 00930 LDA #2 00940 STA 3,S DRIVE NUMBER = QUOTIENT = 2 00950 BRA LBL004 00960 LBL003 SUBD #DDIV THIRD DIVISION 00970 * NOW NOT >= DIVISOR 00980 STD 4,S REMAINDER 00990 LDA #3 01000 STA 3,S DRIVE NUMBER = QUOTIENT = 3 01010 01020 * GET TRACK NUMBER AND SECTOR NUMBER 01030 * BY EMULATING DIVISION VIA 01040 * REPEATED SUBTRACTION 01050 LBL004 LDD 4,S REMAINDER 01060 LDX #0 COUNTER 01070 LBL005 CMPD #TDIV IS REMAINDER >= THE DIVISOR 01080 BLO LBL006 GO IF NO 01090 SUBD #TDIV DO A "DIVIDE" 01100 LEAX 1,X INCREMENT THE TRACK NUMBER 01110 BRA LBL005 RETURN FOR NEXT "DIVIDE" 01120 LBL006 INCB ADJUST SECTOR NUMBER 01130 * FOR 1-18 RANGE 01140 STB ,S SECTOR NUMBER 01150 TFR X,D 01160 * SKIP TRACK 17 01170 CMPB #17 IS TRACK NUMBER < 17 01180 BLO LBL007 GO IF YES 01190 INCB INCREMENT TRACK NUMBER 01200 LBL007 STB 1,S TRACK NUMBER 01210 01220 * GET THE EXIT CONDITIONS FROM THE STACK 01230 LDX 2,S DRIVE NUMBER 01240 LDA 1,S TRACK NUMBER 01250 LDB ,S SECTOR NUMBER 01260 01270 * CLEAN THE STACK AND RETURN 01280 LEAS 8,S 01290 RTS 01300 01310 * ERROR HANDLING 01320 LBL008 LDX #$FFFF ERROR CODE 01330 LDD #$FFFF 01340 RTS 01350 01360 END STB ,S DUMMY SECTOR NUMBER 01350 01360 * GET THE EXIT CONDITIONS FROM THE STACK 01370 LDX 2,S DRIVE NUMBER 01380 LDA 1,S TRACK NUMBER 01390 LDB ,S SECTOR NUMBER 01400 01410 * CLEAN THE STACK AND RETURN 01420 LEAS 8,S 01430 RTS 01440 01450 * ERROR HANDLING 01460 LBL008 LDX #$FFFF ERROR CODE 01470 CLRA 01480 CLRB 01490 RTS 01500 01510 END џџџџџџџџџџџџџџџџџџџџџџџџџџџџtDŒ "h2xЏfOЇbьfƒd$эdOЇc +ƒdƒd$эd†Їc ƒdƒd$эd†Їc ƒdэd†ЇcьdŽƒ%ƒ0 ѓ\чфС%\чaЎbІaцф2h9ŽџџЬџџ9џ9ŽџџO_9џ_9џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџhDŠŒ"_""['WС"SС'O2zЏbЇaчфІc'''Ь, ЬШ Ьd ЬэbІaЦ=эdцфZOуdуbэdІa"Ўd ьdƒ2f9Žџџ9џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ00100 ***** 00110 * 00120 * FLPUT.ASM 00130 * MDJ 2023/02/24 00140 * 00150 * FALSE DISK SYSTEM 00160 * PUT BUFFER TO 00170 * LINEAR SECTOR 00180 * ON DISK 00190 * 00200 * PUTS A LINEAR SECTOR 00210 * (0-2447) 00220 * TO A FALSE DISK 00230 * FROM A SPECIFIED 00240 * DISK BUFFER 00250 * 00260 * ENTRY CONDITIONS: 00270 * X = LINEAR SECTOR NUMBER 00280 * Y = DISK BUFFER ADDRESS 00290 * 00300 * THERE IS NO INTERNAL 00310 * CHECK ON THE VALIDITY 00320 * OF THE BUFFER ADDRESS 00330 * HERE - PERFORM EXTERNALLY 00340 * BEFORE CALLING THIS 00350 * SUBROUTINE. 00360 * 00370 * ON EXIT: 00380 * REGISTER X = $FFFF 00390 * ==> ERROR 00400 * 00410 ***** 00420 00430 * LOW RAM VARIABLES 00440 DCOPC EQU $00EA 00450 DCDRV EQU $00EB 00460 DCTRK EQU $00EC 00470 DCSEC EQU $00ED 00480 DCBPT EQU $00EE 00490 DCSTA EQU $00F0 00500 00510 * ML FOUNDATION 00520 * CORE ADDRESS 00530 DISKRW EQU $4253 00540 00550 * EXTERNAL ROUTINE 00560 * ADDRESS 00570 FLXLTL EQU $4416 00580 00590 ORG $44F2 00600 00610 FLPUT PSHS A,B 00620 00630 * AT THIS POINT, THE STACK CONTAINS: 00640 * 3,S RTS LOCATION LOW BYTE 00650 * 2,S RTS LOCATION HIGH BYTE 00660 * 1,S REGISTER B 00670 * ,S REGISTER A 00680 00690 * MAKE SPACE ON THE STACK FOR: 00700 * 11,S RTS LOCATION LOW BYTE 00710 * 10,S RTS LOCATION HIGH BYTE 00720 * 9,S REGISTER B 00730 * 8,S REGISTER A 00740 * 7,S BUFFER ADDRESS LOW BYTE 00750 * 6,S BUFFER ADDRESS HIGH BYTE 00760 * 5,S L-VALUE LOW BYTE 00770 * 4,S L-VALUE HIGH BYTE 00780 * 3,S D-VALUE LOW BYTE 00790 * 2,S D-VALUE HIGH BYTE (ALL ZEROES) 00800 * 1,S T-VALUE 00810 * ,S S-VALUE 00820 LEAS -8,S 00830 00840 * SAVE L AND BUFFER ADDRESS ON THE STACK 00850 STX 4,S 00860 STY 6,S 00870 00880 * TRANSLATE L TO D,T,S 00890 LDX 4,S 00900 JSR FLXLTL 00910 CMPX #$FFFF TRANSLATION ERROR? 00920 BEQ LBL001 GO IF YES 00930 00940 * SAVE D,T,S ON THE STACK 00950 STX 2,S 00960 STA 1,S 00970 STB ,S 00980 00990 * SET LOW RAM VARIABLES FOR DISKRW 01000 LDD 6,S 01010 STD DCBPT BUFFER ADDRESS 01020 LDA ,S 01030 STA D00100 ***** 00110 * 00120 * FLGET.ASM 00130 * MDJ 2023/02/24 00140 * 00150 * GET BUFFER FROM 00160 * LINEAR SECTOR 00170 * ON DISK 00180 * 00190 * GETS A LINEAR SECTOR 00200 * (0-2447) 00210 * FROM A FALSE DISK 00220 * TO A SPECIFIED 00230 * DISK BUFFER 00240 * 00250 * ENTRY CONDITIONS: 00260 * X = LINEAR SECTOR NUMBER 00270 * Y = DISK BUFFER ADDRESS 00280 * 00290 * THERE IS NO INTERNAL 00300 * CHECK ON THE VALIDITY 00310 * OF THE BUFFER ADDRESS 00320 * HERE - PERFORM EXTERNALLY 00330 * BEFORE CALLING THIS 00340 * SUBROUTINE. 00350 * 00360 * ON EXIT: 00370 * REGISTER X = $FFFF 00380 * ==> ERROR 00390 * 00400 ***** 00410 00420 * LOW RAM VARIABLES 00430 DCOPC EQU $00EA 00440 DCDRV EQU $00EB 00450 DCTRK EQU $00EC 00460 DCSEC EQU $00ED 00470 DCBPT EQU $00EE 00480 DCSTA EQU $00F0 00490 00500 * ML FOUNDATION 00510 * CORE ADDRESS 00520 DISKRW EQU $4253 00530 00540 * EXTERNAL ROUTINE 00550 * ADDRESS 00560 FLXLTL EQU $4416 00570 00580 ORG $4533 00590 00600 FLGET PSHS A,B 00610 00620 * AT THIS POINT, THE STACK CONTAINS: 00630 * 3,S RTS LOCATION LOW BYTE 00640 * 2,S RTS LOCATION HIGH BYTE 00650 * 1,S REGISTER B 00660 * ,S REGISTER A 00670 00680 * MAKE SPACE ON THE STACK FOR: 00690 * 11,S RTS LOCATION LOW BYTE 00700 * 10,S RTS LOCATION HIGH BYTE 00710 * 9,S REGISTER B 00720 * 8,S REGISTER A 00730 * 7,S BUFFER ADDRESS LOW BYTE 00740 * 6,S BUFFER ADDRESS HIGH BYTE 00750 * 5,S L-VALUE LOW BYTE 00760 * 4,S L-VALUE HIGH BYTE 00770 * 3,S D-VALUE LOW BYTE 00780 * 2,S D-VALUE HIGH BYTE (ALL ZEROES) 00790 * 1,S T-VALUE 00800 * ,S S-VALUE 00810 LEAS -8,S 00820 00830 * SAVE L AND BUFFER ADDRESS ON THE STACK 00840 STX 4,S 00850 STY 6,S 00860 00870 * TRANSLATE L TO D,T,S 00880 LDX 4,S 00890 JSR FLXLTL 00900 CMPX #$FFFF TRANSLATION ERROR? 00910 BEQ LBL001 GO IF YES 00920 00930 * SAVE D,T,S ON THE STACK 00940 STX 2,S 00950 STA 1,S 00960 STB ,S 00970 00980 * SET LOW RAM VARIABLES FOR DISKRW 00990 LDD 6,S 01000 STD DCBPT BUFFER ADDRESS 01010 LDA ,S 01020 STA DCSEC SECTOR NUMBER 01000100 ***** 00110 * 00120 * TEST0101.ASM 00130 * MDJ 2023/02/28 00140 * 00150 * FLXLTL TEST 00160 * 00170 ***** 00180 00190 * LOW RAM CURSOR ADDRESS 00200 CURPOS EQU $0088 00210 00220 * SCREEN ADDRESSES 00230 VIDRAM EQU $0400 00240 VIDEND EQU $0600 00250 00260 * RAMROM TRIGGER ADDRESS 00270 RAMROM EQU $FFDE 00280 00290 * ALLRAM TRIGGER ADDRESS 00300 ALLRAM EQU $FFDF 00310 00320 * ML FOUNDATION 00330 * CORE ADDRESSES 00340 VIDCLS EQU $400E 00350 PUTBYT EQU $4025 00360 CRLF EQU $40D7 00370 PUTWRD EQU $4169 00380 PRTS00 EQU $420A 00390 SNIRQS EQU $43B6 00400 00410 * FALSE DISK 00420 * SYSTEM ADDRESS 00430 FLXLTL EQU $4416 00440 00450 ORG $7000 00460 JMP LBL001 00470 00480 STRL FCC /L=/ 00490 FCB $00 NUL 00500 STRD FCC /D=/ 00510 FCB $00 NUL 00520 STRT FCC /T=/ 00530 FCB $00 NUL 00540 STRS FCC /S=/ 00550 FCB $00 NUL 00560 STRSEP FCC /, / 00570 FCB $00 NUL 00580 00590 * SETUP THE NEW INTERRUPT HANDLERS 00600 * AND ENTER ALLRAM MODE 00610 LBL001 JSR SNIRQS 00620 STA ALLRAM 00630 PSHS A,B,CC 00640 00650 * AT THIS POINT, THE STACK CONTAINS: 00660 * 4,S RTS LOCATION LOW BYTE 00670 * 3,S RTS LOCATION HIGH BYTE 00680 * 2,S REGISTER B 00690 * 1,S REGISTER A 00700 * ,S REGISTER CC 00710 00720 * MAKE SPACE ON THE STACK FOR: 00730 * 10,S RTS LOCATION LOW BYTE 00740 * 9,S RTS LOCATION HIGH BYTE 00750 * 8,S REGISTER B 00760 * 7,S REGISTER A 00770 * 6,S REGISTER CC 00780 * 5,S L-VALUE LOW BYTE 00790 * 4,S L-VALUE HIGH BYTE 00800 * 3,S D-VALUE LOW BYTE 00810 * 2,S D-VALUE HIGH BYTE 00820 * 1,S T-VALUE 00830 * ,S S-VALUE 00840 LEAS -6,S 00850 00860 * SETUP THE SCREEN 00870 JSR VIDCLS 00880 LDX #VIDRAM TOP OF SCREEN 00890 STX CURPOS CURSOR 00900 00910 * TEST RUNS INPUT DATA 00920 LDX #0 = $0000 00930 JSR LBL002 FLXLTL CONTROL 00940 JSR LBL003 REPORTER 00950 LDX #2447 = $098F 00960 JSR LBL002 FLXLTL CONTROL 00970 JSR LBL003 REPORTER 00980 LDX #2448 = $0990 00990 JSR LBL002 FLXLTL CONTROL 01000 JSR LBL003 REPORTER 01010 LDX #305 = $0131 01020 JSR LBL002 FLXLTL CONTROL 01030 JSR LBL003 REPORTER 01040 LDX #306 = $0132 01050 JSR LBL002 FLXLTL CONTROL 01060 JSR LBL003 REPORTER 01070 LDX #611 = $0264 01080 JSR LBL002 FLXLTL CONTROL 01090 JSR LBL003 REPORTER 01100 LDX #612 = $0265 01110 JSR LBL002 FLXLTL CONTROL 01120 JSR LBL003 REPORTER 01130 01140 * RETURN TO RAMROM MODE, 01150 * CLEAN THE STACK, AND EXIT 01160 STA RAMROM 01170 LEAS 6,S 01180 PULS A,B,CC 01190 RTS 01200 01210 * FLXLTL CONTROL SUBROUTINE 01220 * AT THIS POINT, WE HAVE ADDED THE TWO-BYTE 01230 * FLXLTL CONTROL SUBROUTINE RETURN ADDRESS 01240 * TO THE STACK, AND THUS MUST ADD 2 TO ALL 01250 * L,D,T,S STACK ACCESSES 01260 LBL002 STX 6,S PUT L-VALUE TO STACK 01270 JSR FLXLTL GO DO THE TRANSLATION 01280 STX 4,S PUT D-VALUE TO STACK 01290 STA 3,S PUT T-VALUE TO STACK 01300 STB 2,S PUT S-VALUE TO STACK 01310 RTS 01320 01330 * REPORTER SUBROUTINE 01340 * AT THIS POINT, WE HAVE ADDED THE TWO-BYTE 01350 * REPORTER SUBROUTINE RETURN ADDRESS 01360 * TO THE STACK, AND THUS MUST ADD 2 TO ALL 01370 * L,D,T,S STACK ACCESSES 01380 01390 * PRINT L-VALUE 01400 LBL003 LDX #STRL /L=/ 01410 JSR PRTS00 PRINT /L=/ 01420 LDX CURPOS PRINT L-VALUE 01430 LDD 6,S 01440 JSR PUTWRD 01450 STX CURPOS 01460 LDX #STRSEP SEPARATOR 01470 JSR PRTS00 PRINT IT 01480 01490 * PRINT D-VALUE 01500 LDX #STRD /D=/ 01510 JSR PRTS00 PRINT /D=/ 01520 LDX CURPOS PRINT D-VALUE 01530 LDD 4,S 01540 JSR PUTWRD 01550 STX CURPOS 01560 LDX #STRSEP SEPARATOR 01570 JSR PRTS00 PRINT IT 01580 01590 * PRINT T-VALUE 01600 LDX #STRT /T=/ 01610 JSR PRTS00 PRINT /T=/ 01620 LDX CURPOS PRINT T-VALUE 01630 LDA €p~pL=D=T=S=, НCЖЗџп42zН@ŽŸˆŽ†ЦНpЛНpЧŽ†ЦНpЛНpЧŽ†ЦНpЛНpЧŽ†ЦНpЛНpЧŽ†"ЦНpЛНpЧŽ†ЦНpЛНpЧŽ†ЦНpЛНpЧŽ€p€†#ЦНpЛНpЧŽ†ЦНpЛНpЧŽ†ЦНpЛНpЧŽ†ЦНpЛНpЧЗџо2f59ЏdЇcчbНDŠЏf9ŽpНB žˆьdНAiŸˆŽpНB Žp НB žˆІcН@%ŸˆŽpНB Žp НB žˆІbН@%ŸˆqŽpНB ŽpНB žˆьfНAiŸˆН@з9џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ 3,S 01640 JSR PUTBYT 01650 STX CURPOS 01660 LDX #STRSEP SEPARATOR 01670 JSR PRTS00 PRINT IT 01680 01690 * PRINT S-VALUE 01700 LDX #STRS /S=/ 01710 JSR PRTS00 PRINT /S=/ 01720 LDX CURPOS PRINT S-VALUE 01730 LDA 2,S 01740 JSR PUTBYT 01750 STX CURPOS 01760 JSR CRLF 01770 RTS 01780 01790 END џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ00100 ***** 00110 * 00120 * TEST0103.ASM 00130 * MDJ 2023/02/28 00140 * 00150 * FLPUT TEST 00160 * 00170 ***** 00180 00190 * RAMROM TRIGGER ADDRESS 00200 RAMROM EQU $FFDE 00210 00220 * ALLRAM TRIGGER ADDRESS 00230 ALLRAM EQU $FFDF 00240 00250 * ML FOUNDATION 00260 * CORE ADDRESS 00270 SNIRQS EQU $43B6 00280 00290 * FALSE DISK 00300 * SYSTEM ADDRESS 00310 FLPUT EQU $44F2 00320 00330 ORG $7000 00340 PSHS X,Y 00350 00360 * SETUP THE NEW INTERRUPT HANDLERS 00370 * AND ENTER ALLRAM MODE 00380 JSR SNIRQS 00390 STA ALLRAM 00400 00410 * SETUP PARAMETERS 00420 * L = (D * 612) + (T * 18) + S - 1 00430 * D = 1, T = 1, S = 1 ==> L = 630 = $0276 00440 LDX #630 L 00450 LDY #$0600 STD DISK BUFFER 00460 00470 * WRITE BUFFER TO DISK 00480 JSR FLPUT 00490 00500 * RETURN TO RAMROM MODE AND EXIT 00510 STA RAMROM 00520 PULS X,Y 00530 RTS 00540 00550 END FFER TO DISK 00560 JSR FLPUT 00570 00580 * RETURN TO RAMROM MODE AND EXIT 00590 STA RAMROM 00600 PULS X,Y 00610 RTS 00620 00630 END TCHA 00630 LDA #62 ">" 00640 JSR PRTCHA 00650 PULS A 00660 00670 * CHECK FOR KEYPRESS 00680 PSHS A,CC WAIT FOR KEYPRESS 00690 LBLP00 JSR POLCAT 00700 BCC LBLP00 00710 PULS A,CC 00720 00730 * PRINT L AND BUFFER ADDRESS 00740 PSHS A,B,X,Y 00750 TFR X,D 00760 JSR PUTWRA 00770 LDA #32 00780 JSR PRTCHA 00790 TFR Y,D 00800 JSR PUTWRA 00810 JSR CRLF 00820 PULS A,B,X,Y 00830 00840 * WRITE BUFFER TO DISK 00850 JSR FLPUT 00860 00870 * RETURN TO RAMROM MODE AND EXIT 00880 STA RAMROM 00890 PULS X,Y 00900 RTS 00910 00920 END џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџp40НCЖЗџпŽvŽНDђЗџо509џ4НAB$ћ546НAx† НAл НAxН@з56НDђЗџо509џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџCSEC SECTOR NUMBER 01040 LDA 1,S 01050 STA DCTRK TRACK NUMBER 01060 LDA 3,S 01070 STA DCDRV DRIVE NUMBER 01080 LDA #3 WRITE CODE TO: 01090 STA DCOPC OPERATION CODE 01100 01110 * GO PUT BUFFER CONTENTS TO DISK 01120 JSR DISKRW GO DO THE DISK WRITE 01130 01140 * CHECK FOR DISK ERROR 01150 LDA DCSTA GET STATUS 01160 BNE LBL001 GO IF DISK ERROR 01170 01180 * NORMAL EXIT 01190 * CLEAN THE STACK, AND EXIT 01200 LEAS 8,S 01210 PULS A,B 01220 RTS 01230 01240 * ERROR HANDLING 01250 LBL001 LDX #$FFFF 01260 * CLEAN THE STACK, AND EXIT 01270 LEAS 8,S 01280 PULS A,B 01290 RTS 01300 01310 END џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ30 LDA 1,S 01040 STA DCTRK TRACK NUMBER 01050 LDA 3,S 01060 STA DCDRV DRIVE NUMBER 01070 LDA #2 READ CODE TO: 01080 STA DCOPC OPERATION CODE 01090 01100 * GO GET BUFFER CONTENTS FROM DISK 01110 JSR DISKRW GO DO THE DISK WRITE 01120 01130 * CHECK FOR DISK ERROR 01140 LDA DCSTA GET STATUS 01150 BNE LBL001 GO IF DISK ERROR 01160 01170 * NORMAL EXIT 01180 * CLEAN THE STACK, AND EXIT 01190 LEAS 8,S 01200 PULS A,B 01210 RTS 01220 01230 * ERROR HANDLING 01240 LBL001 LDX #$FFFF 01250 * CLEAN THE STACK, AND EXIT 01260 LEAS 8,S 01270 PULS A,B 01280 RTS 01290 01300 END џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ00100 ***** 00110 * 00120 * TEST0104.ASM 00130 * MDJ 2023/02/28 00140 * 00150 * FLGET TEST 00160 * 00170 ***** 00180 00190 * RAMROM TRIGGER ADDRESS 00200 RAMROM EQU $FFDE 00210 00220 * ALLRAM TRIGGER ADDRESS 00230 ALLRAM EQU $FFDF 00240 00250 * ML FOUNDATION 00260 * CORE ADDRESS 00270 SNIRQS EQU $43B6 00280 00290 * FALSE DISK 00300 * SYSTEM ADDRESS 00310 FLGET EQU $4533 00320 00330 ORG $7000 00340 PSHS X,Y 00350 00360 * SETUP THE NEW INTERRUPT HANDLERS 00370 * AND ENTER ALLRAM MODE 00380 JSR SNIRQS 00390 STA ALLRAM 00400 00410 * SETUP PARAMETERS 00420 * L = (D * 612) + (T * 18) + S - 1 00430 * D = 1, T = 1, S = 1 ==> L = 630 = $0276 00440 LDX #630 L 00450 LDY #$0600 STD DISK BUFFER 00460 00470 * READ BUFFER FROM DISK 00480 JSR FLGET 00490 00500 * RETURN TO RAMROM MODE AND EXIT 00510 STA RAMROM 00520 PULS X,Y 00530 RTS 00540 00550 END џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ