This repository has been archived by the owner on Mar 9, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathboard_condition.LST
485 lines (465 loc) · 26.4 KB
/
board_condition.LST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
A51 MACRO ASSEMBLER BOARD_CONDITION 02/16/2015 01:26:31 PAGE 1
MACRO ASSEMBLER A51 V8.02b
OBJECT MODULE PLACED IN board_condition.OBJ
ASSEMBLER INVOKED BY: C:\Keil_v5\C51\BIN\A51.EXE board_condition.a51 NOMOD51 SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;#include <89c51rx2.inc>
+1 2 +1 $save
+1 191 +1 $restore
192
193 ;#include "battleship.inc"
+1 194 +1 $save
+1 230 +1 $restore
231
232
233 NAME BOARDCONDITION
234
235 PUBLIC ALREADY_COORD
236 PUBLIC HIT_MISS_COORD
237 PUBLIC INSERT_SHIP
238 PUBLIC CHECK_SHIP
239
240
241
242 BOARDCONDITION SEGMENT CODE
---- 243 RSEG BOARDCONDITION
244
245 ;/**
246 ; * FUNCTION_PURPOSE:Inserir o barco.
247 ; * FUNCTION_INPUTS:R1-Tabuleiro de inserção, SHIP_NUMBER
248 ; * FUNCTION_OUTPUTS:R1-Tabuleiro de inserção
249 ; */
0000 250 INSERT_SHIP:
0000 C001 251 PUSH AR1
0002 E9 252 MOV A,R1
0003 2532 253 ADD A,POSY ;ADICIONA AO A O VALOR DA LINHA, (80H + LIN
HA)
0005 F9 254 MOV R1,A ;GUARDO NO R1 ESSA LINHA
0006 AD38 255 MOV R5,SHIP_NUMBER ;GUARDO NO R5 O NUMERO DO BARCO
0008 20030C 256 JB SHIP_ORI,INSERT_VERTI ;VERIFICO SE É VERTICAL. SE SHIP_ORI==1, INSERE BAR
CO VERTICAL. SE SHIP_ORI==0, INSERE BARCO HORIZONTAL
000B AF33 257 MOV R7,POSX ;*****INSERCAO HORIZONTAL**** GUARD
A EM R7 O VALOR DA COLUNA PARA USAR NA MASCARA DINAMICA
000D AE38 258 MOV R6,SHIP_NUMBER ;GUARDA EM R6 O NUMERO DO BARCO PARA USAR N
A MASCARA DINAMICA
000F 120000 F 259 CALL CREATE_MASK ;CRIA MASCARA DINANMICA
0012 47 260 ORL A,@R1 ;COLOCA O RESPECTIVO BIT A 1
0013 F7 261 MOV @R1,A ;MOVE PARA A RESPECTIVA LINHA O VAL
OR
262
0014 D001 263 POP AR1 ;RETORNA TABULEIRO ALTERADO(primeira linha)
0016 22 264 RET
265
0017 266 INSERT_VERTI: ;*****INSERCAO VERTICAL*****
0017 120000 F 267 LCALL LOCATE_XCOORD ;CHAMO A FUNCAO LOCATE_XCOORD PORQUE SO QUE
RO ALTERAR UM BIT NUMA LINHA
001A 47 268 ORL A,@R1 ;COLOCO O BIT A 1
001B F7 269 MOV @R1,A ;MOVO PARA A RESPECTIVA LINHA
001C 09 270 INC R1 ;INCREMENTE A LINHA
001D DDF8 271 DJNZ R5,INSERT_VERTI ;DECREMENTE O NUMERO DE VEZES DO TAMANHO DO BARCO
272
001F D001 273 POP AR1 ;RETORNA TABULEIRO ALTERADO(primeira linha)
0021 22 274 RET
275
A51 MACRO ASSEMBLER BOARD_CONDITION 02/16/2015 01:26:31 PAGE 2
276 ;/**
277 ; * FUNCTION_PURPOSE:Verificar e preparar R1,R4 (Y).
278 ; * FUNCTION_INPUTS:R2-MASCARA, R1-tabuleiro para verificar colocação,R4 quantas inc Y R7-X
0,R6-quantas inc ao X
279 ; * FUNCTION_OUTPUTS:VALID_SHIP,R1
280 ; */
0022 281 CHECK_SHIP:
0022 C001 282 PUSH AR1 ;indice do jogador presente
0024 AF33 283 MOV R7,POSX
0026 300321 284 JNB SHIP_ORI,HORIZONTAL_CHECK ;se SHIP_ORI==0 verifica-se entao as condiç
ões horizontais, senao verificam-se as condicoes verticais
285 ;VERTICAL_CHECK:
0029 AC38 286 MOV R4,SHIP_NUMBER ;prepara r4(numero x que va
i pecorrer no eixo Y com o numero do barco
287
288 ;preparar a nivel do eixo Y(R1,R4)
002B E532 289 MOV A,POSY ;inputs da função S
TATUS_LIMIT
002D AB04 290 MOV R3,AR4
002F 120000 F 291 LCALL STATUS_LIMIT
0032 300545 292 JNB VLD_LMT,INVALID_SHIP ;caso fora os limites
0035 E9 293 MOV A, R1 ;outputs da função,
0036 2A 294 ADD A,R2 ;indice do jogador
presente + POSY
0037 F9 295 MOV R1,A
0038 AC03 296 MOV R4,AR3
297
298 ;preparar a nivel do eixo X (R7,R6)
003A E533 299 MOV A,POSX ;imputs da função S
TATUS_LIMIT
003C 7B01 300 MOV R3,#1
003E 120000 F 301 LCALL STATUS_LIMIT
0041 300536 302 JNB VLD_LMT,INVALID_SHIP
0044 AF02 303 MOV R7,AR2 ;outputs da função
0046 AE03 304 MOV R6,AR3
305
0048 801F 306 JMP CHECKING_SHIP
307
004A 308 HORIZONTAL_CHECK:
004A AE38 309 MOV R6,SHIP_NUMBER ;prepara o n_vezes do X per
correr o barco a nivel do eixo X
310
311 ;preparar a nivel do eixo Y
004C E532 312 MOV A,POSY
004E 7B01 313 MOV R3,#1
0050 120000 F 314 LCALL STATUS_LIMIT
0053 300524 315 JNB VLD_LMT,INVALID_SHIP
0056 E9 316 MOV A, R1
0057 2A 317 ADD A,R2
0058 F9 318 MOV R1,A
0059 AC03 319 MOV R4,AR3
320
321 ;preparar a nivel do eixo dos X
005B E533 322 MOV A,POSX
005D AB06 323 MOV R3,AR6
005F 120000 F 324 LCALL STATUS_LIMIT
0062 300515 325 JNB VLD_LMT,INVALID_SHIP
0065 AF02 326 MOV R7,AR2
0067 AE03 327 MOV R6,AR3
328 ;/**
329 ; * FUNCTION_PURPOSE:Verificar se é possivel colocar o barco assumindo que está nos limites
.
330 ; * FUNCTION_INPUTS:R2-MASCARA R1-Y0,R4 quantas inc Y R7-X0,R6-quantas inc ao X
331 ; * FUNCTION_OUTPUTS:VALID_SHIP
332 ; */
A51 MACRO ASSEMBLER BOARD_CONDITION 02/16/2015 01:26:31 PAGE 3
0069 333 CHECKING_SHIP:
334 ;CREATE_SHIPMASK:
0069 0C 335 INC R4 ;fará no minimo numero do barco/vizinhança
+1 casa
006A 0E 336 INC R6
006B 1100 F 337 ACALL CREATE_MASK ;cria mascara
006D FA 338 MOV R2,A
006E 339 LOOP_CHECKING:
006E EA 340 MOV A,R2 ;o acumulador fica com a máscara
006F 57 341 ANL A,@R1 ;caso algo dos valores da var. posx
estiver a 1-> inválida colocação
0070 7008 342 JNZ INVALID_SHIP
0072 09 343 INC R1
0073 DCF9 344 DJNZ R4,LOOP_CHECKING
0075 D204 345 SETB VALID_SHIP
346
0077 D001 347 POP AR1 ;RETORNA TABULEIRO ALTERADO(primeira linha)
0079 22 348 RET
349
007A 350 INVALID_SHIP:
007A C204 351 CLR VALID_SHIP
352
007C D001 353 POP AR1 ;RETORNA TABULEIRO ALTERADO(primeira linha)
007E 22 354 RET
355 ;/**
356 ; * FUNCTION_PURPOSE:Verificar e converter coordenadas de forma a verificar a colocação do
barco.
357 ; * FUNCTION_INPUTS:ACC com POS_X/Y,R3-quantos inc são precisos no minimo
358 ; * FUNCTION_OUTPUTS:R2-X_Yinicial,R3-quantos inc ao XouY serão feitos VALD_LMIT
359 ; */
360
007F 361 STATUS_LIMIT:
007F FA 362 MOV R2,A ;verificar se está na borda de localização
0080 600A 363 JZ SKIP_INCR
0082 1A 364 DEC R2 ;caso não: começar a verificação a R2--
0083 2B 365 ADD A,R3 ;verificar no outro limite e se não a ultrapassa
0084 C3 366 CLR C
0085 9408 367 SUBB A,#8
0087 6003 368 JZ SKIP_INCR ;caso ficar na borda
0089 5004 369 JNC INVALID_LIMIT ;caso ultrapassar
008B 0B 370 INC R3 ;caso não estiver em nenhuma borda executar vezes
008C 371 SKIP_INCR:
008C D205 372 SETB VLD_LMT ;dentro do limite
008E 22 373 RET
008F 374 INVALID_LIMIT:
008F C205 375 CLR VLD_LMT ;fora dos limites
0091 22 376 RET
377
378 ;/**
379 ; * FUNCTION_PURPOSE:cria mascara para que seja possivel ir a POSX sem alterar valores vizi
nhos.
380 ; * FUNCTION_INPUTS:ACC-BOARD,POSX, R6-numero de 1s, R7 POSIÇÃO MAIS A ESQUERDA
381 ; * FUNCTION_OUTPUTS:ACC-MASCARA
382 ; */
0092 383 LOCATE_XCOORD:
0092 AF33 384 MOV R7,POSX
0094 7E01 385 MOV R6,#1
0096 386 CREATE_MASK:
0096 E4 387 CLR A ;limpo o acumulador para na
o utilizar lixo ao rodar
0097 388 LOOP_N1s:
0097 D3 389 SETB C ;Carry precisa de f
icar a 1 porque vou rodar o acumulador com o carry
0098 13 390 RRC A
0099 DEFC 391 DJNZ R6,LOOP_N1s
A51 MACRO ASSEMBLER BOARD_CONDITION 02/16/2015 01:26:31 PAGE 4
392 ;R7 fica com o numero de vezes que pretendo shiftar o byte à esquerda
009B BF0002 393 CJNE R7,#0,LOOP_TO_INVERT
009E 8003 394 JMP RET_CREATE
00A0 395 LOOP_TO_INVERT:
00A0 03 396 RR A ;dependendo do valor de POS
X, o Acumulador ficara com o valor de 2^POSX
00A1 DFFD 397 DJNZ R7,LOOP_TO_INVERT
00A3 398 RET_CREATE:
00A3 22 399 RET ;da linha da matriz eu faço
esta instrucao
400 ;/**
401 ; * FUNCTION_PURPOSE: Verificar se certa posição já foi atacada
402 ; * FUNCTION_INPUTS:R1-BOARD,POSX,POSY
403 ; * FUNCTION_OUTPUTS:ACC-MASCARA,R1
404 ; */
00A4 405 ALREADY_COORD:
00A4 C001 406 PUSH AR1
00A6 E9 407 MOV A,R1 ;vai buscar o endereço da primeira
linha da matriz DE ATAQUE para o acumulador
00A7 2532 408 ADD A,POSY ;adiciona à primeira linha a var PO
SY (0-7) para descobrir qual linha trabalhar
00A9 F9 409 MOV R1,A ;guarda o endereço da linha da matr
iz no R1
00AA 1100 F 410 ACALL LOCATE_XCOORD
00AC 57 411 ANL A,@R1
00AD 7005 412 JNZ EXISTCOORD
00AF C202 413 CLR ALRCOORD
414
00B1 D001 415 POP AR1 ;RETORNA TABULEIRO ALTERADO(primeira linha)
00B3 22 416 RET
00B4 417 EXISTCOORD:
00B4 D202 418 SETB ALRCOORD
00B6 D001 419 POP AR1 ;RETORNA TABULEIRO ALTERADO(primeira linha)
00B8 22 420 RET
421
422 ;/**
423 ; * FUNCTION_PURPOSE:ativa bit da coord no tabuleiro de ATAQUE.
424 ; * FUNCTION_INPUTS:R0(DEFESA),R1(ATAQUE)
425 ; * FUNCTION_OUTPUTS:FHIT,BOARD ATAQUE
426 ; */
00B9 427 HIT_MISS_COORD:
00B9 C001 428 PUSH AR1
429
00BB E9 430 MOV A,R1 ;vai buscar o endereço da primeira linha da
matriz DE ATAQUE para o acumulador
00BC 2532 431 ADD A,POSY ;adiciona à primeira linha a var PO
SY (0-7) para descobrir qual linha trabalhar
00BE F9 432 MOV R1,A ;guarda o endereço da linha da matr
iz no R0
00BF 2410 433 ADD A,#10H ;salta por cima de um tabuleiro par
a atingir o tabuleiro de DEFESA do oponente
00C1 F8 434 MOV R0,A ;guarda o endereço da linha da matr
iz no R0
435
00C2 1100 F 436 ACALL LOCATE_XCOORD ;CRIA MASCARA PARA LOCALIZAR
437
00C4 C0E0 438 PUSH ACC ;guardou a MASCARA
00C6 47 439 ORL A,@R1 ;ativa bit no tabuleiro de ATAQUE
00C7 F7 440 MOV @R1,A
00C8 D0E0 441 POP ACC ;verifica se foi hit ou miss
00CA 56 442 ANL A,@R0 ;Verifica que bit se localiza na PO
SY POSX da primeira matriz
00CB 7005 443 JNZ HIT_COORD ;CASO estiver a 1 significa que se localiza
barco (HIT)
00CD C201 444 CLR FHIT ;miss
445
A51 MACRO ASSEMBLER BOARD_CONDITION 02/16/2015 01:26:31 PAGE 5
00CF D001 446 POP AR1
00D1 22 447 RET
448
00D2 449 HIT_COORD:
450 ;XRL A,@R0 ;XOR para inverter o bit que escolh
i atraves das coordenadas no tabuleiro de DEFESA
451 ;MOV @R0,A
00D2 D201 452 SETB FHIT
453
00D4 D001 454 POP AR1
00D6 22 455 RET
456
457 END
A51 MACRO ASSEMBLER BOARD_CONDITION 02/16/2015 01:26:31 PAGE 6
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
AC . . . . . . . . B ADDR 00D0H.6 A
ACC. . . . . . . . D ADDR 00E0H A
ALRCOORD . . . . . B ADDR 0020H.2 A
ALREADY_COORD. . . C ADDR 00A4H R SEG=BOARDCONDITION
AR1. . . . . . . . D ADDR 0001H A
AR2. . . . . . . . D ADDR 0002H A
AR3. . . . . . . . D ADDR 0003H A
AR4. . . . . . . . D ADDR 0004H A
AR6. . . . . . . . D ADDR 0006H A
AUTOGAME . . . . . B ADDR 0020H.6 A
AUTOINSRT. . . . . B ADDR 0020H.7 A
AUTOREG. . . . . . D ADDR 003AH A
AUXR . . . . . . . D ADDR 008EH A
AUXR1. . . . . . . D ADDR 00A2H A
B. . . . . . . . . D ADDR 00F0H A
BDRCON . . . . . . D ADDR 009BH A
BOARDCONDITION . . C SEG 00D7H REL=UNIT
BOARDS . . . . . . N NUMB 0080H A
BOARD_1DEF . . . . I ADDR 0098H A
BOARD_1HIT . . . . I ADDR 0080H A
BOARD_2DEF . . . . I ADDR 0090H A
BOARD_2HIT . . . . I ADDR 0088H A
BRL. . . . . . . . D ADDR 009AH A
BSHIPREG . . . . . D ADDR 0020H A
CCAP0H . . . . . . D ADDR 00FAH A
CCAP0L . . . . . . D ADDR 00EAH A
CCAP1H . . . . . . D ADDR 00FBH A
CCAP1L . . . . . . D ADDR 00EBH A
CCAP2H . . . . . . D ADDR 00FCH A
CCAP2L . . . . . . D ADDR 00ECH A
CCAP3H . . . . . . D ADDR 00FDH A
CCAP3L . . . . . . D ADDR 00EDH A
CCAP4H . . . . . . D ADDR 00FEH A
CCAP4L . . . . . . D ADDR 00EEH A
CCAPM0 . . . . . . D ADDR 00DAH A
CCAPM1 . . . . . . D ADDR 00DBH A
CCAPM2 . . . . . . D ADDR 00DCH A
CCAPM3 . . . . . . D ADDR 00DDH A
CCAPM4 . . . . . . D ADDR 00DEH A
CCF0 . . . . . . . D ADDR 00D8H A
CCF1 . . . . . . . D ADDR 00D9H A
CCF2 . . . . . . . D ADDR 00DAH A
CCF3 . . . . . . . D ADDR 00DBH A
CCF4 . . . . . . . D ADDR 00DCH A
CCON . . . . . . . D ADDR 00D8H A
CF . . . . . . . . D ADDR 00DFH A
CH . . . . . . . . D ADDR 00F9H A
CHECKING_SHIP. . . C ADDR 0069H R SEG=BOARDCONDITION
CHECK_SHIP . . . . C ADDR 0022H R SEG=BOARDCONDITION
CKCON0 . . . . . . D ADDR 008FH A
CKCON1 . . . . . . D ADDR 00AFH A
CKRL . . . . . . . D ADDR 0096H A
CL . . . . . . . . D ADDR 00E9H A
CMOD . . . . . . . D ADDR 00D9H A
COD_ASCII. . . . . D ADDR 0031H A
CP_RL2 . . . . . . B ADDR 00C8H.0 A
CR . . . . . . . . D ADDR 00DEH A
CREATE_MASK. . . . C ADDR 0096H R SEG=BOARDCONDITION
CY . . . . . . . . B ADDR 00D0H.7 A
C_T2 . . . . . . . B ADDR 00C8H.1 A
A51 MACRO ASSEMBLER BOARD_CONDITION 02/16/2015 01:26:31 PAGE 7
DPH. . . . . . . . D ADDR 0083H A
DPL. . . . . . . . D ADDR 0082H A
EA . . . . . . . . B ADDR 00A8H.7 A
EC . . . . . . . . B ADDR 00A8H.6 A
ES . . . . . . . . B ADDR 00A8H.4 A
ET0. . . . . . . . B ADDR 00A8H.1 A
ET1. . . . . . . . B ADDR 00A8H.3 A
ET2. . . . . . . . B ADDR 00A8H.5 A
EX0. . . . . . . . B ADDR 00A8H.0 A
EX1. . . . . . . . B ADDR 00A8H.2 A
EXEN2. . . . . . . B ADDR 00C8H.3 A
EXF2 . . . . . . . B ADDR 00C8H.6 A
EXISTCOORD . . . . C ADDR 00B4H R SEG=BOARDCONDITION
F0 . . . . . . . . B ADDR 00D0H.5 A
FCON . . . . . . . D ADDR 00D1H A
FHIT . . . . . . . B ADDR 0020H.1 A
HIT_COORD. . . . . C ADDR 00D2H R SEG=BOARDCONDITION
HIT_MISS_COORD . . C ADDR 00B9H R SEG=BOARDCONDITION
HORIZONTAL_CHECK . C ADDR 004AH R SEG=BOARDCONDITION
IE0. . . . . . . . B ADDR 0088H.1 A
IE1. . . . . . . . B ADDR 0088H.3 A
IEN0 . . . . . . . D ADDR 00A8H A
IEN1 . . . . . . . D ADDR 00B1H A
INSERT_SHIP. . . . C ADDR 0000H R SEG=BOARDCONDITION
INSERT_VERTI . . . C ADDR 0017H R SEG=BOARDCONDITION
INT0 . . . . . . . B ADDR 00B0H.2 A
INT1 . . . . . . . B ADDR 00B0H.3 A
INVALID_LIMIT. . . C ADDR 008FH R SEG=BOARDCONDITION
INVALID_SHIP . . . C ADDR 007AH R SEG=BOARDCONDITION
IPH0 . . . . . . . D ADDR 00B7H A
IPH1 . . . . . . . D ADDR 00B3H A
IPL0 . . . . . . . D ADDR 00B8H A
IPL1 . . . . . . . D ADDR 00B2H A
IPOSX. . . . . . . D ADDR 0037H A
IPOSY. . . . . . . D ADDR 0036H A
IT0. . . . . . . . B ADDR 0088H.0 A
IT1. . . . . . . . B ADDR 0088H.2 A
KBE. . . . . . . . D ADDR 009DH A
KBF. . . . . . . . D ADDR 009EH A
KBLS . . . . . . . D ADDR 009CH A
LOCATE_XCOORD. . . C ADDR 0092H R SEG=BOARDCONDITION
LOOPS1SEC. . . . . D ADDR 003DH A
LOOP_CHECKING. . . C ADDR 006EH R SEG=BOARDCONDITION
LOOP_N1S . . . . . C ADDR 0097H R SEG=BOARDCONDITION
LOOP_TO_INVERT . . C ADDR 00A0H R SEG=BOARDCONDITION
LPOSX. . . . . . . D ADDR 0035H A
LPOSY. . . . . . . D ADDR 0034H A
MINUTO . . . . . . D ADDR 003CH A
OV . . . . . . . . B ADDR 00D0H.2 A
P. . . . . . . . . B ADDR 00D0H.0 A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . D ADDR 00B0H A
PCON . . . . . . . D ADDR 0087H A
POSX . . . . . . . D ADDR 0033H A
POSY . . . . . . . D ADDR 0032H A
PPCL . . . . . . . B ADDR 00B8H.6 A
PSL. . . . . . . . B ADDR 00B8H.4 A
PSW. . . . . . . . D ADDR 00D0H A
PT0L . . . . . . . B ADDR 00B8H.1 A
PT1L . . . . . . . B ADDR 00B8H.3 A
PT2L . . . . . . . B ADDR 00B8H.5 A
PX0L . . . . . . . B ADDR 00B8H.0 A
PX1L . . . . . . . B ADDR 00B8H.2 A
RAND8REG . . . . . D ADDR 0039H A
A51 MACRO ASSEMBLER BOARD_CONDITION 02/16/2015 01:26:31 PAGE 8
RB8. . . . . . . . B ADDR 0098H.2 A
RCAP2H . . . . . . D ADDR 00CBH A
RCAP2L . . . . . . D ADDR 00CAH A
RCLK . . . . . . . B ADDR 00C8H.5 A
RD . . . . . . . . B ADDR 00B0H.7 A
REN. . . . . . . . B ADDR 0098H.4 A
RET_CREATE . . . . C ADDR 00A3H R SEG=BOARDCONDITION
RI . . . . . . . . B ADDR 0098H.0 A
RS0. . . . . . . . B ADDR 00D0H.3 A
RS1. . . . . . . . B ADDR 00D0H.4 A
RXD. . . . . . . . B ADDR 00B0H.0 A
SADDR. . . . . . . D ADDR 00A9H A
SADEN. . . . . . . D ADDR 00B9H A
SBUF . . . . . . . D ADDR 0099H A
SCON . . . . . . . D ADDR 0098H A
SEGUNDO. . . . . . D ADDR 003BH A
SHIP_NUMBER. . . . D ADDR 0038H A
SHIP_ORI . . . . . B ADDR 0020H.3 A
SKIP_INCR. . . . . C ADDR 008CH R SEG=BOARDCONDITION
SM0. . . . . . . . B ADDR 0098H.7 A
SM1. . . . . . . . B ADDR 0098H.6 A
SM2. . . . . . . . B ADDR 0098H.5 A
SP . . . . . . . . D ADDR 0081H A
SPCON. . . . . . . D ADDR 00C3H A
SPDAT. . . . . . . D ADDR 00C5H A
SPSTA. . . . . . . D ADDR 00C4H A
STATUS_LIMIT . . . C ADDR 007FH R SEG=BOARDCONDITION
T0 . . . . . . . . B ADDR 00B0H.4 A
T1 . . . . . . . . B ADDR 00B0H.5 A
T2CON. . . . . . . D ADDR 00C8H A
T2MOD. . . . . . . D ADDR 00C9H A
TB8. . . . . . . . B ADDR 0098H.3 A
TCLK . . . . . . . B ADDR 00C8H.4 A
TCON . . . . . . . D ADDR 0088H A
TF0. . . . . . . . B ADDR 0088H.5 A
TF1. . . . . . . . B ADDR 0088H.7 A
TF2. . . . . . . . B ADDR 00C8H.7 A
TH0. . . . . . . . D ADDR 008CH A
TH1. . . . . . . . D ADDR 008DH A
TH2. . . . . . . . D ADDR 00CDH A
TI . . . . . . . . B ADDR 0098H.1 A
TL0. . . . . . . . D ADDR 008AH A
TL1. . . . . . . . D ADDR 008BH A
TL2. . . . . . . . D ADDR 00CCH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
TR1. . . . . . . . B ADDR 0088H.6 A
TR2. . . . . . . . B ADDR 00C8H.2 A
TXD. . . . . . . . B ADDR 00B0H.1 A
VALID_COORD. . . . B ADDR 0020H.0 A
VALID_SHIP . . . . B ADDR 0020H.4 A
VLD_LMT. . . . . . B ADDR 0020H.5 A
WDTPRG . . . . . . D ADDR 00A7H A
WDTRST . . . . . . D ADDR 00A6H A
WR . . . . . . . . B ADDR 00B0H.6 A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)