dos33fsprogs/mist/zp.inc
Vince Weaver 428b62e937 mist: redo directions (make them bitmask instead of ordinal)
this might break subtle things :(
2020-04-15 15:05:21 -04:00

177 lines
3.3 KiB
PHP

;; Zero Page
;; LZSA addresses
NIBCOUNT = $00
WHICH_LOAD = $05
;; Zero page monitor routines addresses
WNDLFT = $20
WNDWDTH = $21
WNDTOP = $22
WNDBTM = $23
CH = $24
CV = $25
GBASL = $26
GBASH = $27
BASL = $28
BASH = $29
H2 = $2C
X_LEFT = $2C
V2 = $2D
MASK = $2E
COLOR_MASK = $2F
COLOR = $30
SEEDL = $4e
SEEDH = $4f
XMAX = $50
; MIST zero page addresses
FRAMEL = $60
FRAMEH = $61
CURSOR_X= $62
CURSOR_Y= $63
XPOS = $64
YPOS = $65
DIRECTION = $66
DIRECTION_N = $1
DIRECTION_S = $2
DIRECTION_E = $4
DIRECTION_W = $8
DIRECTION_ANY=$f
DIRECTION_ONLY_POINT = $40 ; do not change pointer to grab
DIRECTION_SPLIT = $80 ; split text/graphics
LOCATION = $67
LOCATION_STRUCT_L = $68
LOCATION_STRUCT_H = $69
IN_SPECIAL = $6A
CURSOR_VISIBLE = $6B
IN_LEFT = $6C
IN_RIGHT = $6D
BTC_L = $6E
BTC_H = $6F
; If we ever support save to disk, we'd have to save/restore
; the following values
RED_PAGES_TAKEN = $80
OCTOGON_PAGE = 1
MECHE_PAGE = 2
SELENA_PAGE = 4
STONEY_PAGE = 8
CHANNEL_PAGE = 16
BLUE_PAGES_TAKEN= $81
CLOCK_BRIDGE = $82
GEAR_OPEN = $83
MARKER_SWITCHES = $84
MARKER_DOCK = $01
MARKER_GEARS = $02
MARKER_SPACESHIP = $04
MARKER_GENERATOR = $08
MARKER_CLOCK = $10
MARKER_TREE = $20
MARKER_POOL = $40
MARKER_DENTIST = $80
CLOCK_HOUR = $85
CLOCK_MINUTE = $86
TREE_FURNACE_ON = $87
FIREPLACE_GRID0 = $88
FIREPLACE_GRID1 = $89
FIREPLACE_GRID2 = $8A
FIREPLACE_GRID3 = $8B
FIREPLACE_GRID4 = $8C
FIREPLACE_GRID5 = $8D
CLOCK_COUNT = $8E
CLOCK_TOP = $8F
CLOCK_MIDDLE = $90
CLOCK_BOTTOM = $91
CLOCK_LAST = $92
BREAKER_TRIPPED = $93
GENERATOR_VOLTS = $94
ROCKET_VOLTS = $95
SWITCH_TOP_ROW = $96
SWITCH_BOTTOM_ROW = $97
GENERATOR_VOLTS_DISP = $98
ROCKET_VOLTS_DISP = $99
ROCKET_HANDLE_STEP = $9A
ROCKET_NOTE1 = $9B
ROCKET_NOTE2 = $9C
ROCKET_NOTE3 = $9D
ROCKET_NOTE4 = $9E
MECHE_ELEVATOR = $9F
MECHE_ROTATION = $A0
MECHE_LEVERS = $A1
LEFT_LEVER = 1
RIGHT_LEVER = 2
MECHE_LOCK1 = $A2
MECHE_LOCK2 = $A3
MECHE_LOCK3 = $A4
MECHE_LOCK4 = $A5
HOLDING_PAGE = $A6
HOLDING_RED_PAGE = 1
HOLDING_BLUE_PAGE = 2
HOLDING_WHITE_PAGE = 3
RED_PAGE_COUNT = $A7
BLUE_PAGE_COUNT = $A8
VIEWER_CHANNEL = $A9
VIEWER_LATCHED = $AA
TOWER_ROTATION = $AB
ROTATION_GEARS = 2
ROTATION_DOCK = 3
ROTATION_TREE = 4
ROTATION_SPACESHIP = 8
SHIP_RAISED = $AC
; done game puzzle state
ANIMATE_FRAME = $E0
LEVEL_OVER = $E1
DISP_PAGE = $ED ; ALL
DRAW_PAGE = $EE ; ALL
TINL = $F0
TINH = $F1
BINL = $F2
BINH = $F3
SCROLL_COUNT = $F9
TEMP = $FA
TEMPY = $FB
INL = $FC
INH = $FD
OUTL = $FE
OUTH = $FF
; read any file slot 6 version
; based on FASTLD6 and RTS copyright (c) Peter Ferrie 2011-2013,2018
; modified to assembled with ca64 -- vmw
; added code to patch it to run from current disk slot -- vmw
adrlo = $26 ; constant from boot prom
adrhi = $27 ; constant from boot prom
tmpsec = $3c ; constant from boot prom
reqsec = $3d ; constant from boot prom
sizelo = $44
sizehi = $45
secsize = $46
ldsizel = $70
ldsizeh = $71
namlo = $7b
namhi = $7c
step = $7d ; state for stepper motor
tmptrk = $7e ; temporary copy of current track
phase = $7f ; current phase for /seek