extrn .begin,.chl,.swt extrn csave,cret,.move global vdp_rege_,960 DSEG public charset_ charset_: DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 60 DB 60 DB 48 DB 48 DB 48 DB 0 DB 0 DB 0 DB 240 DB 240 DB 48 DB 48 DB 48 DB 48 DB 48 DB 48 DB 60 DB 60 DB 0 DB 0 DB 0 DB 48 DB 48 DB 48 DB 240 DB 240 DB 0 DB 0 DB 0 DB 48 DB 48 DB 48 DB 48 DB 48 DB 48 DB 48 DB 48 DB 0 DB 0 DB 0 DB 255 DB 255 DB 0 DB 0 DB 0 DB 0 DB 32 DB 112 DB 248 DB 112 DB 32 DB 0 DB 0 DB 248 DB 216 DB 136 DB 0 DB 136 DB 216 DB 248 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 24 DB 24 DB 32 DB 96 DB 144 DB 96 DB 0 DB 0 DB 32 DB 80 DB 32 DB 32 DB 112 DB 32 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 168 DB 80 DB 80 DB 216 DB 80 DB 80 DB 168 DB 0 DB 48 DB 48 DB 48 DB 252 DB 252 DB 48 DB 48 DB 48 DB 16 DB 48 DB 112 DB 240 DB 112 DB 48 DB 16 DB 0 DB 32 DB 112 DB 32 DB 32 DB 32 DB 112 DB 32 DB 0 DB 80 DB 80 DB 80 DB 80 DB 0 DB 80 DB 0 DB 0 DB 120 DB 168 DB 168 DB 104 DB 40 DB 40 DB 0 DB 0 DB 48 DB 48 DB 48 DB 252 DB 252 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 252 DB 252 DB 48 DB 48 DB 48 DB 48 DB 48 DB 48 DB 240 DB 240 DB 48 DB 48 DB 48 DB 32 DB 112 DB 32 DB 32 DB 32 DB 32 DB 32 DB 32 DB 48 DB 48 DB 48 DB 60 DB 60 DB 48 DB 48 DB 48 DB 0 DB 16 DB 24 DB 252 DB 24 DB 16 DB 0 DB 0 DB 0 DB 32 DB 96 DB 252 DB 96 DB 32 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 48 DB 120 DB 120 DB 48 DB 0 DB 48 DB 0 DB 0 DB 216 DB 216 DB 80 DB 0 DB 0 DB 0 DB 0 DB 0 DB 72 DB 72 DB 252 DB 72 DB 72 DB 252 DB 72 DB 72 DB 32 DB 120 DB 160 DB 120 DB 36 DB 248 DB 32 DB 0 DB 0 DB 200 DB 208 DB 32 DB 88 DB 152 DB 0 DB 0 DB 48 DB 72 DB 72 DB 80 DB 96 DB 144 DB 120 DB 0 DB 48 DB 48 DB 64 DB 0 DB 0 DB 0 DB 0 DB 0 DB 16 DB 32 DB 32 DB 32 DB 32 DB 32 DB 16 DB 0 DB 32 DB 16 DB 16 DB 16 DB 16 DB 16 DB 32 DB 0 DB 32 DB 168 DB 112 DB 248 DB 112 DB 168 DB 32 DB 0 DB 0 DB 32 DB 32 DB 248 DB 32 DB 32 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 48 DB 48 DB 64 DB 0 DB 0 DB 0 DB 112 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 48 DB 48 DB 0 DB 4 DB 8 DB 16 DB 32 DB 64 DB 128 DB 0 DB 0 DB 112 DB 152 DB 168 DB 168 DB 168 DB 200 DB 112 DB 0 DB 32 DB 96 DB 32 DB 32 DB 32 DB 32 DB 248 DB 0 DB 112 DB 136 DB 8 DB 16 DB 96 DB 128 DB 248 DB 0 DB 112 DB 136 DB 8 DB 112 DB 8 DB 136 DB 112 DB 0 DB 48 DB 80 DB 144 DB 248 DB 16 DB 16 DB 16 DB 0 DB 248 DB 128 DB 128 DB 240 DB 8 DB 136 DB 112 DB 0 DB 56 DB 64 DB 128 DB 240 DB 136 DB 136 DB 112 DB 0 DB 248 DB 8 DB 16 DB 32 DB 32 DB 32 DB 32 DB 0 DB 112 DB 136 DB 136 DB 112 DB 136 DB 136 DB 112 DB 0 DB 112 DB 136 DB 136 DB 120 DB 8 DB 136 DB 112 DB 0 DB 0 DB 48 DB 48 DB 0 DB 48 DB 48 DB 0 DB 0 DB 0 DB 48 DB 48 DB 0 DB 48 DB 48 DB 96 DB 0 DB 16 DB 32 DB 64 DB 128 DB 64 DB 32 DB 16 DB 0 DB 0 DB 0 DB 252 DB 0 DB 252 DB 0 DB 0 DB 0 DB 64 DB 32 DB 16 DB 8 DB 16 DB 32 DB 64 DB 0 DB 112 DB 136 DB 8 DB 48 DB 32 DB 0 DB 32 DB 0 DB 112 DB 136 DB 184 DB 176 DB 128 DB 128 DB 112 DB 0 DB 32 DB 80 DB 136 DB 248 DB 136 DB 136 DB 136 DB 0 DB 240 DB 72 DB 72 DB 112 DB 72 DB 72 DB 240 DB 0 DB 112 DB 136 DB 128 DB 128 DB 128 DB 136 DB 112 DB 0 DB 240 DB 72 DB 72 DB 72 DB 72 DB 72 DB 240 DB 0 DB 248 DB 136 DB 128 DB 224 DB 128 DB 136 DB 248 DB 0 DB 248 DB 136 DB 128 DB 240 DB 128 DB 128 DB 128 DB 0 DB 112 DB 136 DB 128 DB 184 DB 136 DB 136 DB 112 DB 0 DB 136 DB 136 DB 136 DB 248 DB 136 DB 136 DB 136 DB 0 DB 248 DB 32 DB 32 DB 32 DB 32 DB 32 DB 248 DB 0 DB 28 DB 8 DB 8 DB 8 DB 8 DB 136 DB 112 DB 0 DB 136 DB 144 DB 160 DB 192 DB 160 DB 144 DB 136 DB 0 DB 128 DB 128 DB 128 DB 128 DB 128 DB 136 DB 248 DB 0 DB 136 DB 216 DB 168 DB 136 DB 136 DB 136 DB 136 DB 0 DB 136 DB 200 DB 168 DB 168 DB 168 DB 152 DB 136 DB 0 DB 112 DB 136 DB 136 DB 136 DB 136 DB 136 DB 112 DB 0 DB 240 DB 136 DB 136 DB 240 DB 128 DB 128 DB 128 DB 0 DB 112 DB 136 DB 136 DB 136 DB 168 DB 152 DB 120 DB 4 DB 240 DB 136 DB 136 DB 240 DB 160 DB 144 DB 136 DB 0 DB 112 DB 136 DB 64 DB 32 DB 16 DB 136 DB 112 DB 0 DB 248 DB 32 DB 32 DB 32 DB 32 DB 32 DB 32 DB 0 DB 136 DB 136 DB 136 DB 136 DB 136 DB 136 DB 112 DB 0 DB 136 DB 136 DB 136 DB 80 DB 80 DB 80 DB 32 DB 0 DB 136 DB 136 DB 136 DB 168 DB 168 DB 168 DB 80 DB 0 DB 136 DB 136 DB 80 DB 32 DB 80 DB 136 DB 136 DB 0 DB 136 DB 136 DB 80 DB 32 DB 32 DB 32 DB 32 DB 0 DB 248 DB 136 DB 16 DB 32 DB 64 DB 136 DB 248 DB 0 DB 120 DB 64 DB 64 DB 64 DB 64 DB 64 DB 120 DB 0 DB 0 DB 128 DB 64 DB 32 DB 16 DB 8 DB 0 DB 0 DB 120 DB 8 DB 8 DB 8 DB 8 DB 8 DB 120 DB 0 DB 32 DB 80 DB 136 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 252 DB 0 DB 96 DB 96 DB 16 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 240 DB 8 DB 120 DB 136 DB 112 DB 0 DB 128 DB 128 DB 128 DB 240 DB 136 DB 136 DB 240 DB 0 DB 0 DB 0 DB 0 DB 112 DB 128 DB 128 DB 112 DB 0 DB 8 DB 8 DB 8 DB 120 DB 136 DB 136 DB 120 DB 0 DB 0 DB 0 DB 112 DB 136 DB 248 DB 128 DB 112 DB 0 DB 0 DB 48 DB 72 DB 224 DB 64 DB 64 DB 64 DB 0 DB 0 DB 0 DB 56 DB 72 DB 72 DB 56 DB 8 DB 112 DB 0 DB 128 DB 128 DB 176 DB 200 DB 136 DB 136 DB 0 DB 0 DB 0 DB 32 DB 0 DB 96 DB 32 DB 112 DB 0 DB 0 DB 8 DB 0 DB 24 DB 8 DB 8 DB 72 DB 48 DB 128 DB 128 DB 144 DB 160 DB 192 DB 160 DB 144 DB 0 DB 32 DB 32 DB 32 DB 32 DB 32 DB 32 DB 32 DB 0 DB 0 DB 0 DB 0 DB 80 DB 168 DB 168 DB 136 DB 0 DB 0 DB 0 DB 0 DB 176 DB 200 DB 136 DB 136 DB 0 DB 0 DB 0 DB 0 DB 112 DB 136 DB 136 DB 112 DB 0 DB 0 DB 0 DB 112 DB 72 DB 72 DB 112 DB 64 DB 64 DB 0 DB 96 DB 56 DB 72 DB 72 DB 56 DB 8 DB 8 DB 0 DB 0 DB 0 DB 176 DB 200 DB 128 DB 128 DB 0 DB 0 DB 0 DB 96 DB 128 DB 96 DB 16 DB 96 DB 0 DB 0 DB 0 DB 64 DB 224 DB 64 DB 64 DB 32 DB 0 DB 0 DB 0 DB 0 DB 144 DB 144 DB 144 DB 104 DB 0 DB 0 DB 0 DB 0 DB 136 DB 136 DB 80 DB 32 DB 0 DB 0 DB 0 DB 0 DB 136 DB 168 DB 168 DB 80 DB 0 DB 0 DB 0 DB 0 DB 72 DB 48 DB 48 DB 72 DB 0 DB 0 DB 0 DB 136 DB 80 DB 32 DB 64 DB 128 DB 0 DB 0 DB 0 DB 248 DB 16 DB 32 DB 64 DB 248 DB 0 DB 16 DB 32 DB 32 DB 64 DB 32 DB 32 DB 16 DB 0 DB 32 DB 32 DB 32 DB 0 DB 32 DB 32 DB 32 DB 0 DB 64 DB 32 DB 32 DB 16 DB 32 DB 32 DB 64 DB 0 DB 108 DB 144 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 112 DB 80 DB 80 DB 80 DB 80 DB 80 DB 112 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 32 DB 64 DB 240 DB 8 DB 120 DB 136 DB 112 DB 0 DB 16 DB 32 DB 0 DB 96 DB 32 DB 32 DB 248 DB 0 DB 16 DB 32 DB 0 DB 112 DB 136 DB 136 DB 112 DB 0 DB 16 DB 32 DB 0 DB 136 DB 136 DB 136 DB 116 DB 0 DB 16 DB 32 DB 0 DB 176 DB 200 DB 136 DB 136 DB 0 DB 16 DB 32 DB 0 DB 200 DB 168 DB 152 DB 136 DB 0 DB 112 DB 136 DB 136 DB 124 DB 0 DB 252 DB 0 DB 0 DB 112 DB 136 DB 136 DB 112 DB 0 DB 252 DB 0 DB 0 DB 32 DB 0 DB 32 DB 32 DB 64 DB 136 DB 112 DB 0 DB 0 DB 0 DB 0 DB 0 DB 252 DB 128 DB 128 DB 128 DB 0 DB 0 DB 0 DB 0 DB 252 DB 4 DB 4 DB 4 DB 136 DB 144 DB 168 DB 84 DB 136 DB 28 DB 0 DB 0 DB 136 DB 144 DB 168 DB 88 DB 184 DB 8 DB 0 DB 0 DB 48 DB 0 DB 48 DB 120 DB 120 DB 48 DB 0 DB 0 DB 20 DB 40 DB 80 DB 160 DB 80 DB 40 DB 20 DB 0 DB 160 DB 80 DB 40 DB 20 DB 40 DB 80 DB 160 DB 0 DB 84 DB 170 DB 84 DB 170 DB 84 DB 170 DB 84 DB 170 DB 170 DB 84 DB 170 DB 84 DB 170 DB 84 DB 170 DB 84 DB 182 DB 108 DB 218 DB 182 DB 108 DB 218 DB 182 DB 108 DB 24 DB 24 DB 24 DB 24 DB 24 DB 24 DB 24 DB 24 DB 24 DB 24 DB 24 DB 24 DB 248 DB 24 DB 24 DB 24 DB 24 DB 24 DB 24 DB 248 DB 24 DB 248 DB 24 DB 24 DB 108 DB 108 DB 108 DB 108 DB 236 DB 108 DB 108 DB 108 DB 0 DB 0 DB 0 DB 0 DB 252 DB 108 DB 108 DB 108 DB 0 DB 0 DB 0 DB 252 DB 108 DB 236 DB 108 DB 108 DB 108 DB 108 DB 236 DB 12 DB 236 DB 108 DB 108 DB 108 DB 108 DB 108 DB 108 DB 108 DB 108 DB 108 DB 108 DB 108 DB 0 DB 0 DB 252 DB 14 DB 238 DB 108 DB 108 DB 108 DB 108 DB 108 DB 236 DB 12 DB 252 DB 0 DB 0 DB 0 DB 100 DB 100 DB 252 DB 0 DB 0 DB 0 DB 0 DB 0 DB 48 DB 48 DB 240 DB 48 DB 48 DB 240 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 240 DB 48 DB 48 DB 48 DB 48 DB 48 DB 48 DB 48 DB 60 DB 0 DB 0 DB 0 DB 48 DB 48 DB 48 DB 48 DB 252 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 252 DB 48 DB 48 DB 48 DB 48 DB 48 DB 48 DB 48 DB 60 DB 48 DB 48 DB 48 DB 0 DB 0 DB 0 DB 0 DB 252 DB 0 DB 0 DB 0 DB 48 DB 48 DB 48 DB 48 DB 252 DB 48 DB 48 DB 48 DB 48 DB 48 DB 60 DB 48 DB 60 DB 48 DB 48 DB 48 DB 216 DB 216 DB 220 DB 216 DB 216 DB 216 DB 216 DB 216 DB 216 DB 216 DB 216 DB 220 DB 192 DB 252 DB 0 DB 0 DB 0 DB 0 DB 0 DB 252 DB 192 DB 220 DB 216 DB 216 DB 216 DB 216 DB 216 DB 220 DB 192 DB 0 DB 252 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 252 DB 0 DB 216 DB 216 DB 216 DB 220 DB 192 DB 220 DB 216 DB 216 DB 0 DB 0 DB 0 DB 252 DB 0 DB 252 DB 0 DB 0 DB 216 DB 216 DB 216 DB 220 DB 0 DB 220 DB 216 DB 216 DB 48 DB 48 DB 48 DB 252 DB 0 DB 0 DB 252 DB 0 DB 216 DB 216 DB 216 DB 252 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 252 DB 0 DB 0 DB 252 DB 48 DB 48 DB 0 DB 0 DB 0 DB 0 DB 0 DB 252 DB 216 DB 216 DB 216 DB 216 DB 216 DB 252 DB 0 DB 0 DB 0 DB 0 DB 48 DB 48 DB 48 DB 60 DB 48 DB 48 DB 60 DB 0 DB 0 DB 0 DB 0 DB 62 DB 48 DB 62 DB 48 DB 48 DB 0 DB 0 DB 0 DB 0 DB 0 DB 252 DB 216 DB 216 DB 216 DB 216 DB 216 DB 216 DB 220 DB 216 DB 216 DB 216 DB 48 DB 48 DB 252 DB 0 DB 0 DB 252 DB 48 DB 48 DB 48 DB 48 DB 48 DB 240 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 60 DB 48 DB 48 DB 48 DB 48 DB 252 DB 252 DB 252 DB 252 DB 252 DB 252 DB 252 DB 252 DB 0 DB 0 DB 0 DB 252 DB 252 DB 252 DB 192 DB 192 DB 192 DB 192 DB 192 DB 192 DB 192 DB 192 DB 192 DB 192 DB 12 DB 12 DB 12 DB 12 DB 12 DB 12 DB 12 DB 12 DB 12 DB 12 DB 12 DB 12 DB 252 DB 252 DB 252 DB 0 DB 0 DB 0 DB 0 DB 104 DB 144 DB 144 DB 104 DB 0 DB 112 DB 136 DB 136 DB 176 DB 136 DB 136 DB 240 DB 64 DB 240 DB 144 DB 128 DB 128 DB 128 DB 128 DB 128 DB 0 DB 248 DB 80 DB 80 DB 80 DB 80 DB 72 DB 0 DB 0 DB 248 DB 136 DB 64 DB 32 DB 64 DB 136 DB 248 DB 0 DB 0 DB 0 DB 0 DB 124 DB 136 DB 136 DB 112 DB 0 DB 0 DB 0 DB 0 DB 136 DB 136 DB 136 DB 112 DB 128 DB 0 DB 0 DB 116 DB 152 DB 16 DB 16 DB 28 DB 0 DB 252 DB 16 DB 56 DB 68 DB 56 DB 16 DB 252 DB 0 DB 48 DB 204 DB 204 DB 252 DB 204 DB 204 DB 56 DB 0 DB 120 DB 132 DB 132 DB 132 DB 72 DB 72 DB 132 DB 0 DB 60 DB 64 DB 56 DB 68 DB 68 DB 68 DB 56 DB 0 DB 0 DB 0 DB 108 DB 146 DB 146 DB 108 DB 0 DB 0 DB 0 DB 0 DB 0 DB 56 DB 88 DB 104 DB 112 DB 0 DB 56 DB 64 DB 128 DB 248 DB 128 DB 64 DB 56 DB 0 DB 0 DB 0 DB 48 DB 204 DB 204 DB 204 DB 204 DB 0 DB 252 DB 0 DB 0 DB 252 DB 0 DB 0 DB 252 DB 0 DB 16 DB 16 DB 124 DB 16 DB 16 DB 0 DB 254 DB 0 DB 32 DB 16 DB 8 DB 16 DB 32 DB 0 DB 254 DB 0 DB 16 DB 32 DB 64 DB 32 DB 16 DB 0 DB 254 DB 0 DB 24 DB 52 DB 48 DB 48 DB 48 DB 48 DB 48 DB 48 DB 48 DB 48 DB 48 DB 48 DB 48 DB 48 DB 176 DB 112 DB 48 DB 48 DB 0 DB 252 DB 0 DB 48 DB 48 DB 0 DB 0 DB 100 DB 152 DB 0 DB 100 DB 152 DB 0 DB 0 DB 56 DB 68 DB 68 DB 56 DB 0 DB 0 DB 0 DB 0 DB 0 DB 56 DB 56 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 56 DB 0 DB 0 DB 0 DB 0 DB 0 DB 14 DB 8 DB 8 DB 72 DB 40 DB 24 DB 8 DB 0 DB 0 DB 0 DB 0 DB 176 DB 72 DB 72 DB 72 DB 0 DB 0 DB 0 DB 240 DB 60 DB 64 DB 128 DB 248 DB 0 DB 252 DB 252 DB 252 DB 252 DB 252 DB 252 DB 252 DB 252 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 DB 0 CSEG PUBLIC vdp_read_ vdp_read_: lxi d,.2 call csave LXI H,0 XCHG LXI H,3-.2 DAD SP MOV M,E JMP .4 .3: LXI H,3-.2 DAD SP PUSH H MOV L,M INX H XCHG POP H MOV M,E .4: LXI H,3-.2 DAD SP MOV E,M MVI D,0 LXI H,17 CALL .lt JZ .5 LXI H,152 PUSH H CALL in_ POP D XCHG LXI H,2-.2 DAD SP MOV M,E LXI H,2-.2 DAD SP MOV E,M MVI D,0 PUSH D LXI H,.1+0 PUSH H CALL printf_ POP D POP D JMP .3 .5: RET .2 EQU -2 .1: DB 48,120,50,120,32,0 PUBLIC vdp_disp_ vdp_disp_: lxi d,.7 call csave LXI H,8-.7 DAD SP MOV E,M INX H MOV D,M LXI H,40 CALL .ml XCHG LXI H,10-.7 DAD SP MOV A,M INX H MOV H,M MOV L,A DAD D INX H INX H INX H PUSH H CALL vdp_writ_ POP D LXI H,0 XCHG LXI H,3-.7 DAD SP MOV M,E JMP .9 .8: LXI H,3-.7 DAD SP PUSH H MOV L,M INX H XCHG POP H MOV M,E .9: LXI H,12-.7 DAD SP MOV E,M INX H MOV D,M PUSH D CALL strlen_ POP D PUSH H LXI H,5-.7 DAD SP MOV E,M MVI D,0 POP H CALL .lt JZ .10 LXI H,3-.7 DAD SP MOV E,M MVI D,0 LXI H,12-.7 DAD SP MOV A,M INX H MOV H,M MOV L,A DAD D MOV E,M MVI D,0 PUSH D LXI H,152 PUSH H CALL out_ POP D POP D JMP .8 .10: RET .7 EQU -1 PUBLIC vdp_pad_ vdp_pad_: lxi d,.11 call csave LXI H,8-.11 DAD SP MOV E,M INX H MOV D,M LXI H,40 CALL .ml XCHG LXI H,10-.11 DAD SP MOV A,M INX H MOV H,M MOV L,A DAD D INX H INX H INX H PUSH H CALL vdp_writ_ POP D LXI H,0 XCHG LXI H,3-.11 DAD SP MOV M,E JMP .13 .12: LXI H,3-.11 DAD SP PUSH H MOV L,M INX H XCHG POP H MOV M,E .13: LXI H,12-.11 DAD SP MOV E,M INX H MOV D,M PUSH D CALL strlen_ POP D PUSH H LXI H,5-.11 DAD SP MOV E,M MVI D,0 POP H CALL .lt JZ .14 LXI H,3-.11 DAD SP MOV E,M MVI D,0 LXI H,12-.11 DAD SP MOV A,M INX H MOV H,M MOV L,A DAD D MOV E,M MVI D,0 PUSH D LXI H,152 PUSH H CALL out_ POP D POP D JMP .12 .14: LXI H,12-.11 DAD SP MOV E,M INX H MOV D,M PUSH D CALL strlen_ POP D PUSH H LXI H,40 POP D XCHG CALL .gt JZ .15 LXI H,12-.11 DAD SP MOV E,M INX H MOV D,M PUSH D CALL strlen_ POP D XCHG LXI H,3-.11 DAD SP MOV M,E JMP .17 .16: LXI H,3-.11 DAD SP PUSH H MOV L,M INX H XCHG POP H MOV M,E .17: LXI H,3-.11 DAD SP MOV E,M MVI D,0 LXI H,40 CALL .lt JZ .18 LXI H,32 PUSH H LXI H,152 PUSH H CALL out_ POP D POP D JMP .16 .18: .15: RET .11 EQU -1 PUBLIC vdp_hz_j_ vdp_hz_j_: lxi d,.19 call csave LXI H,6 PUSH H LXI H,.6+0 PUSH H LXI H,5-.19 DAD SP PUSH H CALL sprintf_ POP D POP D POP D LXI H,1 XCHG LXI H,3-.19 DAD SP MOV M,E JMP .21 .20: LXI H,3-.19 DAD SP PUSH H MOV L,M INX H XCHG POP H MOV M,E .21: LXI H,3-.19 DAD SP MOV E,M MVI D,0 LXI H,36 CALL .lt JZ .22 LXI H,1-.19 DAD SP PUSH H LXI H,5-.19 DAD SP MOV E,M MVI D,0 PUSH D LXI H,12-.19 DAD SP MOV E,M INX H MOV D,M PUSH D CALL vdp_disp_ POP D POP D POP D JMP .20 .22: LXI H,25 PUSH H LXI H,.6+3 PUSH H LXI H,5-.19 DAD SP PUSH H CALL sprintf_ POP D POP D POP D LXI H,1-.19 DAD SP PUSH H LXI H,0 PUSH H LXI H,12-.19 DAD SP MOV E,M INX H MOV D,M PUSH D CALL vdp_disp_ POP D POP D POP D LXI H,23 PUSH H LXI H,.6+6 PUSH H LXI H,5-.19 DAD SP PUSH H CALL sprintf_ POP D POP D POP D LXI H,1-.19 DAD SP PUSH H LXI H,36 PUSH H LXI H,12-.19 DAD SP MOV E,M INX H MOV D,M PUSH D CALL vdp_disp_ POP D POP D POP D RET .19 EQU -3 .6: DB 37,99,0,37,99,0,37,99,0 PUBLIC vdp_main_ vdp_main_: lxi d,.24 call csave LXI H,6 PUSH H LXI H,.23+0 PUSH H LXI H,-41-.24 DAD SP PUSH H CALL sprintf_ POP D POP D POP D LXI H,1 XCHG LXI H,3-.24 DAD SP MOV M,E JMP .26 .25: LXI H,3-.24 DAD SP PUSH H MOV L,M INX H XCHG POP H MOV M,E .26: LXI H,3-.24 DAD SP MOV E,M MVI D,0 LXI H,36 CALL .lt JZ .27 LXI H,-45-.24 DAD SP PUSH H LXI H,5-.24 DAD SP MOV E,M MVI D,0 PUSH D LXI H,0 PUSH H CALL vdp_disp_ POP D POP D POP D LXI H,-45-.24 DAD SP PUSH H LXI H,5-.24 DAD SP MOV E,M MVI D,0 PUSH D LXI H,23 PUSH H CALL vdp_disp_ POP D POP D POP D JMP .25 .27: LXI H,5 PUSH H LXI H,.23+3 PUSH H LXI H,-41-.24 DAD SP PUSH H CALL sprintf_ POP D POP D POP D LXI H,1 XCHG LXI H,3-.24 DAD SP MOV M,E JMP .29 .28: LXI H,3-.24 DAD SP PUSH H MOV L,M INX H XCHG POP H MOV M,E .29: LXI H,3-.24 DAD SP MOV E,M MVI D,0 LXI H,23 CALL .lt JZ .30 LXI H,-45-.24 DAD SP PUSH H LXI H,0 PUSH H LXI H,7-.24 DAD SP MOV E,M MVI D,0 PUSH D CALL vdp_disp_ POP D POP D POP D LXI H,-45-.24 DAD SP PUSH H LXI H,36 PUSH H LXI H,7-.24 DAD SP MOV E,M MVI D,0 PUSH D CALL vdp_disp_ POP D POP D POP D JMP .28 .30: LXI H,1 PUSH H LXI H,.23+6 PUSH H LXI H,-41-.24 DAD SP PUSH H CALL sprintf_ POP D POP D POP D LXI H,-45-.24 DAD SP PUSH H LXI H,0 PUSH H LXI H,0 PUSH H CALL vdp_disp_ POP D POP D POP D LXI H,2 PUSH H LXI H,.23+9 PUSH H LXI H,-41-.24 DAD SP PUSH H CALL sprintf_ POP D POP D POP D LXI H,-45-.24 DAD SP PUSH H LXI H,36 PUSH H LXI H,0 PUSH H CALL vdp_disp_ POP D POP D POP D LXI H,4 PUSH H LXI H,.23+12 PUSH H LXI H,-41-.24 DAD SP PUSH H CALL sprintf_ POP D POP D POP D LXI H,-45-.24 DAD SP PUSH H LXI H,36 PUSH H LXI H,23 PUSH H CALL vdp_disp_ POP D POP D POP D LXI H,3 PUSH H LXI H,.23+15 PUSH H LXI H,-41-.24 DAD SP PUSH H CALL sprintf_ POP D POP D POP D LXI H,-45-.24 DAD SP PUSH H LXI H,0 PUSH H LXI H,23 PUSH H CALL vdp_disp_ POP D POP D POP D LXI H,0 PUSH H LXI H,2 PUSH H LXI H,2 PUSH H LXI H,2012 PUSH H LXI H,10 PUSH H LXI H,9 PUSH H LXI H,20-.24 DAD SP MOV E,M INX H MOV D,M PUSH D LXI H,.23+18 PUSH H LXI H,-29-.24 DAD SP PUSH H CALL sprintf_ XCHG LXI H,18 DAD SP SPHL LXI H,-45-.24 DAD SP PUSH H LXI H,1 PUSH H LXI H,1 PUSH H CALL vdp_disp_ POP D POP D POP D LXI H,2 PUSH H CALL vdp_hz_j_ POP D LXI H,21 PUSH H CALL vdp_hz_j_ POP D RET .24 EQU -49 .23: DB 37,99,0,37,99,0,37,99,0,37,99,0,37,99,0 DB 37,99,0,37,115,32,37,100,47,37,100,47,37,100,32 DB 86,101,114,32,37,100,46,37,100,46,37,100,0 PUBLIC vdp_clr1_ vdp_clr1_: lxi d,.32 call csave LXI H,0 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D LXI H,64 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D LXI H,0 XCHG LXI H,2-.32 DAD SP MOV M,E INX H MOV M,D JMP .34 .33: LXI H,2-.32 DAD SP PUSH H MOV A,M INX H MOV H,M MOV L,A INX H XCHG POP H MOV M,E INX H MOV M,D .34: LXI H,2-.32 DAD SP MOV E,M INX H MOV D,M LXI H,16384 CALL .ul JZ .35 LXI H,0 PUSH H LXI H,152 PUSH H CALL out_ POP D POP D JMP .33 .35: RET .32 EQU -2 PUBLIC vdp_setr_ vdp_setr_: lxi d,.36 call csave LXI H,0 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D LXI H,128 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D RET .36 EQU 0 PUBLIC vdp_mode_ vdp_mode_: lxi d,.37 call csave LXI H,80 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D LXI H,129 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D RET .37 EQU 0 PUBLIC vdp_pnt_ vdp_pnt_: lxi d,.38 call csave LXI H,0 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D LXI H,130 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D RET .38 EQU 0 PUBLIC vdp_pgt_ vdp_pgt_: lxi d,.39 call csave LXI H,1 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D LXI H,132 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D RET .39 EQU 0 PUBLIC vdp_colo_ vdp_colo_: lxi d,.40 call csave LXI H,240 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D LXI H,135 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D RET .40 EQU 0 PUBLIC vdp_load_ vdp_load_: lxi d,.41 call csave LXI H,0 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D LXI H,72 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D LXI H,0 XCHG LXI H,-2-.41 DAD SP MOV M,E INX H MOV M,D LXI H,0 XCHG LXI H,2-.41 DAD SP MOV M,E INX H MOV M,D JMP .43 .42: LXI H,2-.41 DAD SP PUSH H MOV A,M INX H MOV H,M MOV L,A INX H XCHG POP H MOV M,E INX H MOV M,D .43: LXI H,2-.41 DAD SP MOV E,M INX H MOV D,M LXI H,256 CALL .lt JZ .44 LXI H,0 XCHG LXI H,0-.41 DAD SP MOV M,E INX H MOV M,D JMP .46 .45: LXI H,0-.41 DAD SP PUSH H MOV A,M INX H MOV H,M MOV L,A INX H XCHG POP H MOV M,E INX H MOV M,D .46: LXI H,0-.41 DAD SP MOV E,M INX H MOV D,M LXI H,8 CALL .lt JZ .47 LXI H,-2-.41 DAD SP PUSH H MOV A,M INX H MOV H,M MOV L,A INX H XCHG POP H MOV M,E INX H MOV M,D XCHG DCX H LXI D,charset_ DAD D MOV E,M MVI D,0 PUSH D LXI H,152 PUSH H CALL out_ POP D POP D JMP .45 .47: JMP .42 .44: RET .41 EQU -6 PUBLIC vdp_fill_ vdp_fill_: lxi d,.48 call csave LXI H,0 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D LXI H,64 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D LXI H,0 XCHG LXI H,1-.48 DAD SP MOV M,E LXI H,0 XCHG LXI H,2-.48 DAD SP MOV M,E INX H MOV M,D JMP .50 .49: LXI H,2-.48 DAD SP PUSH H MOV A,M INX H MOV H,M MOV L,A INX H XCHG POP H MOV M,E INX H MOV M,D .50: LXI H,2-.48 DAD SP MOV E,M INX H MOV D,M LXI H,960 CALL .lt JZ .51 LXI H,1-.48 DAD SP MOV E,M MVI D,0 PUSH D LXI H,152 PUSH H CALL out_ POP D POP D LXI H,1-.48 DAD SP PUSH H MOV L,M INX H XCHG POP H MOV M,E LXI H,1-.48 DAD SP MOV E,M MVI D,0 PUSH D LXI H,128 POP D CALL .eq JZ .52 LXI H,0 XCHG LXI H,1-.48 DAD SP MOV M,E .52: JMP .49 .51: RET .48 EQU -3 PUBLIC vdp_sync_ vdp_sync_: lxi d,.53 call csave LXI H,0 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D LXI H,64 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D LXI H,0 XCHG LXI H,0-.53 DAD SP MOV M,E INX H MOV M,D LXI H,0 XCHG LXI H,2-.53 DAD SP MOV M,E INX H MOV M,D JMP .55 .54: LXI H,2-.53 DAD SP PUSH H MOV A,M INX H MOV H,M MOV L,A INX H XCHG POP H MOV M,E INX H MOV M,D .55: LXI H,2-.53 DAD SP MOV E,M INX H MOV D,M LXI H,960 CALL .lt JZ .56 LXI H,2-.53 DAD SP MOV E,M INX H MOV D,M LXI H,vdp_rege_ DAD D MOV E,M MVI D,0 PUSH D LXI H,152 PUSH H CALL out_ POP D POP D JMP .54 .56: RET .53 EQU -4 PUBLIC func700_ func700_: lxi d,.57 call csave LXI H,0 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D LXI H,0 PUSH H LXI H,153 PUSH H CALL out_ POP D POP D RET .57 EQU 0 PUBLIC vdp_clr__ vdp_clr__: lxi d,.58 call csave LXI H,0 XCHG LXI H,2-.58 DAD SP MOV M,E INX H MOV M,D JMP .60 .59: LXI H,2-.58 DAD SP PUSH H MOV A,M INX H MOV H,M MOV L,A INX H XCHG POP H MOV M,E INX H MOV M,D .60: LXI H,2-.58 DAD SP MOV E,M INX H MOV D,M LXI H,960 CALL .ul JZ .61 LXI H,32 PUSH H LXI H,4-.58 DAD SP MOV E,M INX H MOV D,M LXI H,vdp_rege_ DAD D POP D MOV M,E JMP .59 .61: RET .58 EQU -2 PUBLIC vdp_set__ vdp_set__: lxi d,.62 call csave LXI H,0 XCHG LXI H,2-.62 DAD SP MOV M,E INX H MOV M,D JMP .64 .63: LXI H,2-.62 DAD SP PUSH H MOV A,M INX H MOV H,M MOV L,A INX H XCHG POP H MOV M,E INX H MOV M,D .64: LXI H,2-.62 DAD SP MOV E,M INX H MOV D,M LXI H,960 CALL .ul JZ .65 LXI H,2-.62 DAD SP MOV E,M INX H MOV D,M LXI H,127 CALL .an PUSH H LXI H,4-.62 DAD SP MOV E,M INX H MOV D,M LXI H,vdp_rege_ DAD D POP D MOV M,E JMP .63 .65: RET .62 EQU -2 PUBLIC vdp_num__ vdp_num__: lxi d,.66 call csave LXI H,0 XCHG LXI H,2-.66 DAD SP MOV M,E INX H MOV M,D JMP .68 .67: LXI H,2-.66 DAD SP PUSH H MOV A,M INX H MOV H,M MOV L,A INX H XCHG POP H MOV M,E INX H MOV M,D .68: LXI H,2-.66 DAD SP MOV E,M INX H MOV D,M LXI H,960 CALL .ul JZ .69 LXI H,2-.66 DAD SP MOV E,M INX H MOV D,M LXI H,10 CALL .um LXI D,48 DAD D PUSH H LXI H,4-.66 DAD SP MOV E,M INX H MOV D,M LXI H,vdp_rege_ DAD D POP D MOV M,E JMP .67 .69: RET .66 EQU -2 PUBLIC vdp_writ_ vdp_writ_: lxi d,.70 call csave LXI H,8-.70 DAD SP MOV E,M INX H MOV D,M LXI H,255 CALL .an XCHG LXI H,3-.70 DAD SP MOV M,E LXI H,8-.70 DAD SP MOV E,M INX H MOV D,M LXI H,8 CALL .rs LXI D,64 CALL .or XCHG LXI H,2-.70 DAD SP MOV M,E LXI H,3-.70 DAD SP MOV E,M MVI D,0 PUSH D LXI H,153 PUSH H CALL out_ POP D POP D LXI H,2-.70 DAD SP MOV E,M MVI D,0 PUSH D LXI H,153 PUSH H CALL out_ POP D POP D RET .70 EQU -2 global szTemp_,128 global linenum_,1 global counter_,1 global outer_,1 global inner_,1 global limit_,1 PUBLIC main_ main_: lxi d,.71 call csave CALL vdp_clr1_ CALL vdp_setr_ CALL vdp_mode_ CALL vdp_pnt_ CALL vdp_pgt_ CALL vdp_colo_ CALL vdp_load_ LXI H,.31+0 PUSH H CALL vdp_main_ POP D LXI H,0 XCHG LXI H,-63-.71 DAD SP MOV M,E LXI H,0 MOV A,L STA outer_ JMP .73 .72: LDA outer_ MOV L,A INX H MOV A,L STA outer_ .73: LDA outer_ MOV L,A MVI H,0 LXI D,4 XCHG CALL .lt JZ .74 LXI H,4 MOV A,L STA linenum_ LXI H,0 MOV A,L STA inner_ JMP .76 .75: LDA inner_ MOV L,A INX H MOV A,L STA inner_ .76: LDA inner_ MOV L,A MVI H,0 LXI D,6 XCHG CALL .lt JZ .77 LDA inner_ MOV L,A MVI H,0 LXI D,5 XCHG CALL .lt JZ .78 LXI H,11 MOV A,L STA limit_ JMP .79 .78: LXI H,9 MOV A,L STA limit_ .79: LXI H,0 XCHG LXI H,2-.71 DAD SP MOV M,E INX H MOV M,D JMP .81 .80: LXI H,2-.71 DAD SP PUSH H MOV A,M INX H MOV H,M MOV L,A INX H XCHG POP H MOV M,E INX H MOV M,D .81: LDA limit_ MOV L,A MVI H,0 PUSH H LXI H,4-.71 DAD SP MOV E,M INX H MOV D,M POP H CALL .lt JZ .82 LXI H,-63-.71 DAD SP MOV E,M MVI D,0 PUSH D LXI H,.31+12 PUSH H LXI H,-58-.71 DAD SP PUSH H CALL sprintf_ POP D POP D POP D LXI H,-62-.71 DAD SP PUSH H LXI H,4-.71 DAD SP MOV E,M INX H MOV D,M LXI H,3 CALL .ml INX H INX H PUSH H LDA linenum_ MOV L,A MVI H,0 PUSH H CALL vdp_disp_ POP D POP D POP D LXI H,-63-.71 DAD SP PUSH H MOV L,M INX H XCHG POP H MOV M,E XCHG DCX H MVI H,0 PUSH H LXI H,.31+15 PUSH H LXI H,-58-.71 DAD SP PUSH H CALL sprintf_ POP D POP D POP D LXI H,-62-.71 DAD SP PUSH H LXI H,4-.71 DAD SP MOV E,M INX H MOV D,M LXI H,3 CALL .ml INX H INX H PUSH H LDA linenum_ MOV L,A MVI H,0 INX H PUSH H CALL vdp_disp_ POP D POP D POP D JMP .80 .82: LXI H,3 XCHG LDA linenum_ MOV L,A mvi h,0 DAD D MOV A,L STA linenum_ LDA inner_ MOV L,A MVI H,0 LXI D,5 CALL .eq JZ .83 LDA outer_ MOV L,A MVI H,0 INX H PUSH H LXI H,.31+20 PUSH H LXI H,-58-.71 DAD SP PUSH H CALL sprintf_ POP D POP D POP D LXI H,-62-.71 DAD SP PUSH H LXI H,29 PUSH H LXI H,20 PUSH H CALL vdp_disp_ POP D POP D POP D .83: JMP .75 .77: LDA outer_ MOV L,A MVI H,0 LXI D,3 XCHG CALL .lt JZ .84 LXI H,.31+28 PUSH H LXI H,2 PUSH H LXI H,22 PUSH H CALL vdp_disp_ POP D POP D POP D LXI H,-62-.71 DAD SP PUSH H CALL gets_ POP D .84: JMP .72 .74: LXI H,.31+55 PUSH H LXI H,1 PUSH H LXI H,22 PUSH H CALL vdp_disp_ POP D POP D POP D LXI H,8-.71 DAD SP MOV E,M INX H MOV D,M LXI H,2 CALL .eq JZ .85 LXI H,10-.71 DAD SP MOV E,M INX H MOV D,M XCHG INX H INX H MOV E,M INX H MOV D,M PUSH D CALL atoi_ POP D PUSH H LXI H,.31+91 PUSH H LXI H,-58-.71 DAD SP PUSH H CALL sprintf_ POP D POP D POP D LXI H,-62-.71 DAD SP PUSH H LXI H,35 PUSH H LXI H,1 PUSH H CALL vdp_disp_ POP D POP D POP D .85: RET .71 EQU -67 .31: DB 78,56,86,73,68,69,79,46,67,79,77,0,37,99,0 DB 37,48,50,120,0,80,103,32,37,100,47,52,0,32,80 DB 114,101,115,115,32,97,110,121,32,107,101,121,32,116,111 DB 32,99,111,110,116,105,110,117,101,0,69,120,101,99,117 DB 116,105,111,110,32,99,111,109,112,108,101,116,101,44,114 DB 101,116,117,114,110,101,100,32,116,111,32,67,80,47,77 DB 0,37,99,0 extrn atoi_ extrn gets_ extrn sprintf_ extrn out_ extrn strlen_ extrn printf_ extrn in_ extrn .or extrn .an extrn .eq extrn .lt extrn .ul extrn .gt extrn .rs extrn .ml extrn .um END