mirror of https://github.com/wwarthen/RomWBW.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3710 lines
33 KiB
3710 lines
33 KiB
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
|
|
|