[go: up one dir, main page]

Menu

[r132]: / psrp / tech2a.txt  Maximize  Restore  History

Download this file

152 lines (102 with data), 10.9 kB

  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
2a. Items in the windows (inventory)
; Set bank
[003664] 3664 21 FF FF LD HL,FFFFh AF=03BB BC=0214 DE=792C HL=BAF7 SP=CAF6 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[003667] 3667 36 02 LD (HL),02h AF=03BB BC=0214 DE=792C HL=FFFF SP=CAF6 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; Grab item #
[003669] 3669 3A 99 C2 LD A,(C299h) AF=03BB BC=0214 DE=792C HL=FFFF SP=CAF6 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; Index into item list
[00366C] 366c 21 C0 C4 LD HL,C4C0h AF=00BB BC=0214 DE=792C HL=FFFF SP=CAF6 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[00366F] 366f 85 ADD A,L AF=00BB BC=0214 DE=792C HL=C4C0 SP=CAF6 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[003670] 3670 6F LD L,A AF=C080 BC=0214 DE=792C HL=C4C0 SP=CAF6 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; 8-letters
[003671] 3671 06 08 LD B,08h AF=C080 BC=0214 DE=792C HL=C4C0 SP=CAF6 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; Sound marks
[003673] 3673 0E 00 LD C,00h AF=C080 BC=0814 DE=792C HL=C4C0 SP=CAF6 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[003675] 3675 CD 8A 36 CALL 368Ah AF=C080 BC=0800 DE=792C HL=C4C0 SP=CAF6 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; Kana text
[003678] 3678 0E 01 LD C,01h AF=0044 BC=0800 DE=796C HL=C4C0 SP=CAF6 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[00367A] 367a CD 8A 36 CALL 368Ah AF=0044 BC=0801 DE=796C HL=C4C0 SP=CAF6 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; Next item
[00367D] 367d 23 INC HL AF=0044 BC=0801 DE=79AC HL=C4C0 SP=CAF6 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[00367E] 367e 10 F3 DJNZ 3673h AF=0044 BC=0801 DE=79AC HL=C4C1 SP=CAF6 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[003680] 3680 21 E3 BA LD HL,BAE3h AF=0044 BC=0001 DE=7D2C HL=C4C8 SP=CAF6 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[003683] 3683 01 14 01 LD BC,0114h AF=0044 BC=0001 DE=7D2C HL=BAE3 SP=CAF6 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[003686] 3686 CD 81 3B CALL 3B81h AF=0044 BC=0114 DE=7D2C HL=BAE3 SP=CAF6 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[003689] 3689 C9 RET AF=0244 BC=0014 DE=7D6C HL=BAF7 SP=CAF6 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; --------------------------------------------------------
; Window items
; Set VRAM address
[00368A] 368a F3 DI AF=C482 BC=0300 DE=7ACC HL=C40A SP=CAF2 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[00368B] 368b C5 PUSH BC AF=C482 BC=0300 DE=7ACC HL=C40A SP=CAF2 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[00368C] 368c E5 PUSH HL AF=C482 BC=0300 DE=7ACC HL=C40A SP=CAF0 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[00368D] 368d D5 PUSH DE AF=C482 BC=0300 DE=7ACC HL=C40A SP=CAEE IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[00368E] 368e CF RST 08 AF=C482 BC=0300 DE=7ACC HL=C40A SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; Get item and locate
[00368F] 368f 6E LD L,(HL) AF=7A82 BC=0300 DE=7ACC HL=C40A SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[003690] 3690 26 00 LD H,00h AF=7A82 BC=0300 DE=7ACC HL=C402 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[003692] 3692 29 ADD HL,HL AF=7A82 BC=0300 DE=7ACC HL=0002 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[003693] 3693 29 ADD HL,HL AF=7A80 BC=0300 DE=7ACC HL=0004 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[003694] 3694 29 ADD HL,HL AF=7A80 BC=0300 DE=7ACC HL=0008 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; Base + offset
[003695] 3695 11 94 BD LD DE,BD94h AF=7A80 BC=0300 DE=7ACC HL=0010 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[003698] 3698 19 ADD HL,DE AF=7A80 BC=0300 DE=BD94 HL=0010 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; Write out side window
[003699] 3699 F5 PUSH AF AF=7A80 BC=0300 DE=BD94 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[00369A] 369a F1 POP AF AF=7A80 BC=0300 DE=BD94 HL=BDA4 SP=CAEA IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[00369B] 369b 3E F3 LD A,F3h AF=7A80 BC=0300 DE=BD94 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[00369D] 369d D3 BE OUT (BEh),A AF=F380 BC=0300 DE=BD94 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[00369F] 369f F5 PUSH AF AF=F380 BC=0300 DE=BD94 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036A0] 36a0 F1 POP AF AF=F380 BC=0300 DE=BD94 HL=BDA4 SP=CAEA IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036A1] 36a1 3E 11 LD A,11h AF=F380 BC=0300 DE=BD94 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036A3] 36a3 D3 BE OUT (BEh),A AF=1180 BC=0300 DE=BD94 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; Fixed-width 8 characters
[0036A5] 36a5 06 08 LD B,08h AF=1180 BC=0300 DE=BD94 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; Read character
[0036A7] 36a7 7E LD A,(HL) AF=1180 BC=0800 DE=BD94 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; Use NT tile lookup table ($59 * 2 = $B2)
;
; C=0 --> Sound mark tiles
; C=1 --> Kana tiles
[0036A8] 36a8 87 ADD A,A AF=0C80 BC=0800 DE=BD94 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036A9] 36a9 81 ADD A,C AF=1818 BC=0800 DE=BD94 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036AA] 36aa 11 00 80 LD DE,8000h AF=1808 BC=0800 DE=BD94 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036AD] 36ad 83 ADD A,E AF=1808 BC=0800 DE=8000 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036AE] 36ae 5F LD E,A AF=1808 BC=0800 DE=8000 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036AF] 36af 8A ADC A,D AF=1808 BC=0800 DE=8018 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036B0] 36b0 93 SUB E AF=9888 BC=0800 DE=8018 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036B1] 36b1 57 LD D,A AF=8082 BC=0800 DE=8018 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; Write NT + VDP delay...
[0036B2] 36b2 1A LD A,(DE) AF=8082 BC=0800 DE=8018 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036B3] 36b3 D3 BE OUT (BEh),A AF=C082 BC=0800 DE=8018 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036B5] 36b5 F5 PUSH AF AF=C082 BC=0800 DE=8018 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036B6] 36b6 F1 POP AF AF=C082 BC=0800 DE=8018 HL=BDA4 SP=CAEA IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; Assume $0C0-0FF range...
[0036B7] 36b7 3E 10 LD A,10h AF=C082 BC=0800 DE=8018 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036B9] 36b9 D3 BE OUT (BEh),A AF=1082 BC=0800 DE=8018 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036BB] 36bb 23 INC HL AF=1082 BC=0800 DE=8018 HL=BDA4 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036BC] 36bc 10 E9 DJNZ 36A7h AF=1082 BC=0800 DE=8018 HL=BDA5 SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; Write out other side window
[0036BE] 36be F5 PUSH AF AF=1087 BC=0000 DE=80B0 HL=BDAC SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036BF] 36bf F1 POP AF AF=1087 BC=0000 DE=80B0 HL=BDAC SP=CAEA IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036C0] 36c0 3E F3 LD A,F3h AF=1087 BC=0000 DE=80B0 HL=BDAC SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036C2] 36c2 D3 BE OUT (BEh),A AF=F387 BC=0000 DE=80B0 HL=BDAC SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036C4] 36c4 F5 PUSH AF AF=F387 BC=0000 DE=80B0 HL=BDAC SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036C5] 36c5 F1 POP AF AF=F387 BC=0000 DE=80B0 HL=BDAC SP=CAEA IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036C6] 36c6 3E 13 LD A,13h AF=F387 BC=0000 DE=80B0 HL=BDAC SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036C8] 36c8 D3 BE OUT (BEh),A AF=1387 BC=0000 DE=80B0 HL=BDAC SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; Newline
[0036CA] 36ca D1 POP DE AF=1387 BC=0000 DE=80B0 HL=BDAC SP=CAEC IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036CB] 36cb 21 40 00 LD HL,0040h AF=1387 BC=0000 DE=7ACC HL=BDAC SP=CAEE IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036CE] 36ce 19 ADD HL,DE AF=1387 BC=0000 DE=7ACC HL=0040 SP=CAEE IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036CF] 36cf EB EX DE,HL AF=1384 BC=0000 DE=7ACC HL=7B0C SP=CAEE IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036D0] 36d0 E1 POP HL AF=1384 BC=0000 DE=7B0C HL=7ACC SP=CAEE IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036D1] 36d1 C1 POP BC AF=1384 BC=0000 DE=7B0C HL=C40A SP=CAF0 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; Wait for VBlank
[0036D2] 36d2 FB EI AF=1384 BC=0300 DE=7B0C HL=C40A SP=CAF2 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036D5] 36d5 CD 56 00 CALL 0056h AF=0A84 BC=0300 DE=7B0C HL=C40A SP=CAF2 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
[0036D8] 36d8 C9 RET AF=0044 BC=0300 DE=7B0C HL=C40A SP=CAF2 IX=C430 IY=C800 V P0=00000 P1=04000 P2=08000 [ROM]
; _____________________________________________________________
$BD94-BF9B = whole list ($208), fixed-width 8-chars
Uses actual tile #s, not relative to $00 narrative.
NT reminder:
(Screen priority bit / Palette + V-flip + H-flip + 1-bit tile #) | (8-bits tile #)