|
|
1.1 root 1: .long
2: .dc.l codeend - _ref2_start
3: _ref2_start::
4: .gpu
5: .org $f03100
6: DIVCONTROL .equ $f0211c
7:
8:
9: S_LE .ccdef $14 ; PL
10: U_LE .ccdef $04 ; CC
11: S_GT .ccdef $18 ; MI
12: U_GT .ccdef $08 ; CS
13:
14: S_LT .ccdef $15 ; PL+NE
15: U_LT .ccdef $05 ; CC+NE
16:
17: FP .equr r14
18: scratch .equr r10
19: scratch2 .equr r11
20: RETURNVALUE .equr r29
21: RETURNPOINT .equr r28
22: MATH_A .equr r27
23: MATH_B .equr r26
24: MATH_C .equr r25
25: MATH_RTS .equr r24
26: MATH_SIGN .equr r23
27:
28:
29: ;====================
30: _R_WallPrep::
31: ;4 dag registers 8 register variables
32: ;localoffset:0 regoffset:56 argoffset:56
33: ;====================
34: movei #56,scratch
35: sub scratch,FP
36:
37: movei #_viswalls,r0
38: move r0,r15 ;(segl)
39:
40: movei #L55,r0
41: jump T,(r0)
42: nop
43:
44: L52:
45:
46: load (r15),r0 ;(segl)
47: move r0,r22 ;(seg)
48: move FP,r0
49: addq #20,r0 ; &li
50: move r22,r1 ;(seg)
51: addq #20,r1
52: load (r1),r1
53: store r1,(r0)
54: move FP,r1
55: addq #8,r1 ; &si
56: moveq #16,r2
57: move r22,r3 ;(seg)
58: add r2,r3
59: load (r3),r3
60: store r3,(r1)
61: load (r0),r0
62: add r2,r0
63: load (r0),r1
64: movei #256,r2
65: or r2,r1
66: store r1,(r0)
67:
68: move r22,r0 ;(seg)
69: addq #24,r0
70: load (r0),r0
71: move r0,r21 ;(front_sector)
72: move FP,r0 ; &f_ceilingpic
73: move r21,r1 ;(front_sector)
74: addq #12,r1
75: load (r1),r1
76: store r1,(r0)
77: move FP,r0
78: addq #16,r0 ; &f_lightlevel
79: moveq #16,r1
80: move r21,r2 ;(front_sector)
81: add r1,r2
82: load (r2),r2
83: store r2,(r0)
84: load (r21),r0 ;(front_sector)
85: movei #_viewz,r2
86: load (r2),r2
87: sub r2,r0
88: move r0,r18 ;(f_floorheight)
89: move r21,r0 ;(front_sector)
90: addq #4,r0
91: load (r0),r0
92: sub r2,r0
93: move r0,r16 ;(f_ceilingheight)
94: move r15,r0 ;(segl)
95: add r1,r0
96: move r21,r1 ;(front_sector)
97: addq #8,r1
98: load (r1),r1
99: shlq #2,r1
100: movei #_flattranslation,r2
101: load (r2),r2
102: add r2,r1
103: load (r1),r1
104: store r1,(r0)
105:
106: load (FP),r0 ; local f_ceilingpic
107: movei #-1,r1
108: cmp r0,r1
109: movei #L56,scratch
110: jump NE,(scratch)
111: nop
112:
113: move r15,r0 ;(segl)
114: addq #20,r0
115: movei #-1,r1
116: store r1,(r0)
117:
118: movei #L57,r0
119: jump T,(r0)
120: nop
121:
122: L56:
123:
124: move r15,r0 ;(segl)
125: addq #20,r0
126: load (FP),r1 ; local f_ceilingpic
127: shlq #2,r1
128: movei #_flattranslation,r2
129: load (r2),r2
130: add r2,r1
131: load (r1),r1
132: store r1,(r0)
133:
134: L57:
135:
136: move r22,r0 ;(seg)
137: addq #28,r0
138: load (r0),r0
139: move r0,r17 ;(back_sector)
140: move r17,r0 ;(back_sector)
141: moveq #0,r1
142: cmp r0,r1
143: movei #L58,scratch
144: jump NE,(scratch)
145: nop
146:
147: movei #_emptysector,r0
148: move r0,r17 ;(back_sector)
149:
150: L58:
151:
152: move FP,r0
153: addq #32,r0 ; &b_ceilingpic
154: move r17,r1 ;(back_sector)
155: addq #12,r1
156: load (r1),r1
157: store r1,(r0)
158: movei #36,r0
159: add FP,r0 ; &b_lightlevel
160: move r17,r1 ;(back_sector)
161: addq #16,r1
162: load (r1),r1
163: store r1,(r0)
164: load (r17),r0 ;(back_sector)
165: movei #_viewz,r1
166: load (r1),r1
167: sub r1,r0
168: move r0,r19 ;(b_floorheight)
169: moveq #4,r0
170: move r17,r2 ;(back_sector)
171: add r0,r2
172: load (r2),r2
173: sub r1,r2
174: move r2,r20 ;(b_ceilingheight)
175: move FP,r1
176: addq #28,r1 ; &b_texturemid
177: moveq #0,r2
178: store r2,(r1)
179: move FP,r1
180: addq #12,r1 ; &t_texturemid
181: store r2,(r1)
182: move FP,r1
183: addq #4,r1 ; &actionbits
184: store r2,(r1)
185: movei #40,r1
186: add FP,r1 ; &rw_x
187: move r15,r2 ;(segl)
188: add r0,r2
189: load (r2),r0
190: store r0,(r1)
191: movei #44,r0
192: add FP,r0 ; &rw_stopx
193: move r15,r1 ;(segl)
194: addq #8,r1
195: load (r1),r1
196: addq #1,r1
197: store r1,(r0)
198: load (FP),r0 ; local f_ceilingpic
199: movei #-1,r1
200: cmp r0,r1
201: movei #L61,scratch
202: jump NE,(scratch)
203: nop
204: load (FP+8),r0 ; local b_ceilingpic
205: cmp r0,r1
206: movei #L61,scratch
207: jump NE,(scratch)
208: nop
209: movei #48,r0
210: add FP,r0 ; &60
211: moveq #1,r1
212: store r1,(r0)
213: movei #L62,r0
214: jump T,(r0)
215: nop
216: L61:
217: movei #48,r0
218: add FP,r0 ; &60
219: moveq #0,r1
220: store r1,(r0)
221: L62:
222: move FP,r0
223: addq #24,r0 ; &skyhack
224: load (FP+12),r1 ; local 60
225: store r1,(r0)
226: moveq #0,r0
227: cmp r18,r0 ;(f_floorheight)
228: movei #L63,scratch
229: jump EQ,(scratch)
230: nop
231: jump MI,(scratch)
232: nop
233: moveq #8,r0
234: move r21,r1 ;(front_sector)
235: add r0,r1
236: load (r1),r1
237: move r17,r2 ;(back_sector)
238: add r0,r2
239: load (r2),r0
240: cmp r1,r0
241: movei #L67,scratch
242: jump NE,(scratch)
243: nop
244: cmp r18,r19 ;(f_floorheight)(b_floorheight)
245: movei #L67,scratch
246: jump NE,(scratch)
247: nop
248: load (FP+4),r0 ; local f_lightlevel
249: load (FP+9),r1 ; local b_lightlevel
250: cmp r0,r1
251: movei #L67,scratch
252: jump NE,(scratch)
253: nop
254: cmp r20,r19 ;(b_ceilingheight)(b_floorheight)
255: movei #L63,scratch
256: jump NE,(scratch)
257: nop
258: L67:
259:
260: movei #64,r0
261: move r15,r1 ;(segl)
262: add r0,r1
263: move r18,r0 ;(f_floorheight)
264: sharq #10,r0
265: store r0,(r1)
266: movei #60,r1
267: move r15,r2 ;(segl)
268: add r1,r2
269: store r0,(r2)
270:
271: move FP,r0
272: addq #4,r0 ; &actionbits
273: load (r0),r1
274: movei #33,r2
275: or r2,r1
276: store r1,(r0)
277:
278: L63:
279:
280: load (FP+6),r0 ; local skyhack
281: moveq #0,r1
282: cmp r0,r1
283: movei #L68,scratch
284: jump NE,(scratch)
285: nop
286: cmp r16,r1 ;(f_ceilingheight)
287: movei #L70,scratch
288: jump MI,(scratch)
289: nop
290: load (FP),r0 ; local f_ceilingpic
291: movei #-1,r1
292: cmp r0,r1
293: movei #L68,scratch
294: jump NE,(scratch)
295: nop
296: L70:
297: load (FP),r0 ; local f_ceilingpic
298: load (FP+8),r1 ; local b_ceilingpic
299: cmp r0,r1
300: movei #L73,scratch
301: jump NE,(scratch)
302: nop
303: cmp r16,r20 ;(f_ceilingheight)(b_ceilingheight)
304: movei #L73,scratch
305: jump NE,(scratch)
306: nop
307: load (FP+4),r0 ; local f_lightlevel
308: load (FP+9),r1 ; local b_lightlevel
309: cmp r0,r1
310: movei #L73,scratch
311: jump NE,(scratch)
312: nop
313: cmp r20,r19 ;(b_ceilingheight)(b_floorheight)
314: movei #L68,scratch
315: jump NE,(scratch)
316: nop
317: L73:
318:
319: movei #72,r0
320: move r15,r1 ;(segl)
321: add r0,r1
322: move r16,r0 ;(f_ceilingheight)
323: sharq #10,r0
324: store r0,(r1)
325: movei #68,r1
326: move r15,r2 ;(segl)
327: add r1,r2
328: store r0,(r2)
329:
330: load (FP),r0 ; local f_ceilingpic
331: movei #-1,r1
332: cmp r0,r1
333: movei #L74,scratch
334: jump NE,(scratch)
335: nop
336:
337: move FP,r0
338: addq #4,r0 ; &actionbits
339: load (r0),r1
340: movei #80,r2
341: or r2,r1
342: store r1,(r0)
343:
344: movei #L75,r0
345: jump T,(r0)
346: nop
347:
348: L74:
349:
350: move FP,r0
351: addq #4,r0 ; &actionbits
352: load (r0),r1
353: moveq #18,r2
354: or r2,r1
355: store r1,(r0)
356:
357: L75:
358:
359: L68:
360:
361: move r15,r0 ;(segl)
362: addq #28,r0
363: move r16,r1 ;(f_ceilingheight)
364: sharq #10,r1
365: store r1,(r0)
366:
367: move r17,r0 ;(back_sector)
368: movei #_emptysector,r1
369: cmp r0,r1
370: movei #L76,scratch
371: jump NE,(scratch)
372: nop
373:
374: movei #40,r0
375: move r15,r1 ;(segl)
376: add r0,r1
377: load (FP+2),r0 ; local si
378: addq #16,r0
379: load (r0),r0
380: shlq #2,r0
381: movei #_texturetranslation,r2
382: load (r2),r2
383: add r2,r0
384: load (r0),r0
385: shlq #5,r0
386: movei #_textures,r2
387: add r2,r0
388: store r0,(r1)
389:
390: load (FP+5),r0 ; local li
391: addq #16,r0
392: load (r0),r0
393: moveq #16,r1
394: and r1,r0
395: moveq #0,r1
396: cmp r0,r1
397: movei #L78,scratch
398: jump EQ,(scratch)
399: nop
400:
401: move FP,r0
402: addq #12,r0 ; &t_texturemid
403: movei #40,r1
404: move r15,r2 ;(segl)
405: add r1,r2
406: load (r2),r1
407: addq #12,r1
408: load (r1),r1
409: shlq #16,r1
410: move r18,r2 ;(f_floorheight)
411: add r1,r2
412: store r2,(r0)
413:
414: movei #L79,r0
415: jump T,(r0)
416: nop
417:
418: L78:
419:
420: move FP,r0
421: addq #12,r0 ; &t_texturemid
422: store r16,(r0) ;(f_ceilingheight)
423:
424: L79:
425:
426: move FP,r0
427: addq #12,r0 ; &t_texturemid
428: load (r0),r1
429: load (FP+2),r2 ; local si
430: addq #4,r2
431: load (r2),r2
432: add r2,r1
433: store r1,(r0)
434: move r15,r0 ;(segl)
435: addq #32,r0
436: move r18,r1 ;(f_floorheight)
437: sharq #10,r1
438: store r1,(r0)
439:
440: move FP,r0
441: addq #4,r0 ; &actionbits
442: load (r0),r1
443: movei #1028,r2
444: or r2,r1
445: store r1,(r0)
446:
447: movei #L80,r0
448: jump T,(r0)
449: nop
450:
451: L76:
452:
453: cmp r19,r18 ;(b_floorheight)(f_floorheight)
454: movei #L81,scratch
455: jump PL,(scratch)
456: nop
457:
458: movei #56,r0
459: move r15,r1 ;(segl)
460: add r0,r1
461: load (FP+2),r0 ; local si
462: addq #12,r0
463: load (r0),r0
464: shlq #2,r0
465: movei #_texturetranslation,r2
466: load (r2),r2
467: add r2,r0
468: load (r0),r0
469: shlq #5,r0
470: movei #_textures,r2
471: add r2,r0
472: store r0,(r1)
473:
474: load (FP+5),r0 ; local li
475: addq #16,r0
476: load (r0),r0
477: moveq #16,r1
478: and r1,r0
479: moveq #0,r1
480: cmp r0,r1
481: movei #L83,scratch
482: jump EQ,(scratch)
483: nop
484:
485: move FP,r0
486: addq #28,r0 ; &b_texturemid
487: store r16,(r0) ;(f_ceilingheight)
488:
489: movei #L84,r0
490: jump T,(r0)
491: nop
492:
493: L83:
494:
495: move FP,r0
496: addq #28,r0 ; &b_texturemid
497: store r19,(r0) ;(b_floorheight)
498:
499: L84:
500:
501: move FP,r0
502: addq #28,r0 ; &b_texturemid
503: load (r0),r1
504: load (FP+2),r2 ; local si
505: addq #4,r2
506: load (r2),r2
507: add r2,r1
508: store r1,(r0)
509: movei #64,r0
510: move r15,r1 ;(segl)
511: add r0,r1
512: move r19,r0 ;(b_floorheight)
513: sharq #10,r0
514: store r0,(r1)
515: movei #44,r1
516: move r15,r2 ;(segl)
517: add r1,r2
518: store r0,(r2)
519:
520: movei #48,r0
521: move r15,r1 ;(segl)
522: add r0,r1
523: move r18,r0 ;(f_floorheight)
524: sharq #10,r0
525: store r0,(r1)
526:
527: move FP,r0
528: addq #4,r0 ; &actionbits
529: load (r0),r1
530: movei #40,r2
531: or r2,r1
532: store r1,(r0)
533:
534: L81:
535:
536: cmp r20,r16 ;(b_ceilingheight)(f_ceilingheight)
537: movei #L85,scratch
538: jump EQ,(scratch)
539: nop
540: jump MI,(scratch)
541: nop
542: load (FP+6),r0 ; local skyhack
543: moveq #0,r1
544: cmp r0,r1
545: movei #L85,scratch
546: jump NE,(scratch)
547: nop
548:
549: movei #40,r0
550: move r15,r1 ;(segl)
551: add r0,r1
552: load (FP+2),r0 ; local si
553: addq #8,r0
554: load (r0),r0
555: shlq #2,r0
556: movei #_texturetranslation,r2
557: load (r2),r2
558: add r2,r0
559: load (r0),r0
560: shlq #5,r0
561: movei #_textures,r2
562: add r2,r0
563: store r0,(r1)
564:
565: load (FP+5),r0 ; local li
566: addq #16,r0
567: load (r0),r0
568: moveq #8,r1
569: and r1,r0
570: moveq #0,r1
571: cmp r0,r1
572: movei #L87,scratch
573: jump EQ,(scratch)
574: nop
575:
576: move FP,r0
577: addq #12,r0 ; &t_texturemid
578: store r16,(r0) ;(f_ceilingheight)
579:
580: movei #L88,r0
581: jump T,(r0)
582: nop
583:
584: L87:
585:
586: move FP,r0
587: addq #12,r0 ; &t_texturemid
588: movei #40,r1
589: move r15,r2 ;(segl)
590: add r1,r2
591: load (r2),r1
592: addq #12,r1
593: load (r1),r1
594: shlq #16,r1
595: move r20,r2 ;(b_ceilingheight)
596: add r1,r2
597: store r2,(r0)
598:
599: L88:
600:
601: move FP,r0
602: addq #12,r0 ; &t_texturemid
603: load (r0),r1
604: load (FP+2),r2 ; local si
605: addq #4,r2
606: load (r2),r2
607: add r2,r1
608: store r1,(r0)
609: movei #72,r0
610: move r15,r1 ;(segl)
611: add r0,r1
612: move r20,r0 ;(b_ceilingheight)
613: sharq #10,r0
614: store r0,(r1)
615: move r15,r1 ;(segl)
616: addq #32,r1
617: store r0,(r1)
618:
619: move FP,r0
620: addq #4,r0 ; &actionbits
621: load (r0),r1
622: moveq #20,r2
623: or r2,r1
624: store r1,(r0)
625:
626: L85:
627:
628: cmp r19,r16 ;(b_floorheight)(f_ceilingheight)
629: movei #L91,scratch
630: jump EQ,(scratch)
631: nop
632: jump MI,(scratch)
633: nop
634: cmp r20,r18 ;(b_ceilingheight)(f_floorheight)
635: movei #L89,scratch
636: jump MI,(scratch)
637: nop
638: L91:
639:
640: move FP,r0
641: addq #4,r0 ; &actionbits
642: load (r0),r1
643: movei #1024,r2
644: or r2,r1
645: store r1,(r0)
646:
647: movei #L90,r0
648: jump T,(r0)
649: nop
650:
651: L89:
652:
653: movei #52,r0
654: add FP,r0 ; &width
655: load (FP+11),r1 ; local rw_stopx
656: load (FP+10),r2 ; local rw_x
657: sub r2,r1
658: addq #1,r1
659: shrq #1,r1
660: store r1,(r0)
661: moveq #0,r0
662: cmp r19,r0 ;(b_floorheight)
663: movei #L95,scratch
664: jump PL,(scratch)
665: nop
666: cmp r19,r18 ;(b_floorheight)(f_floorheight)
667: movei #L94,scratch
668: jump MI,(scratch)
669: nop
670: L95:
671: moveq #0,r0
672: cmp r18,r0 ;(f_floorheight)
673: movei #L92,scratch
674: jump EQ,(scratch)
675: nop
676: jump MI,(scratch)
677: nop
678: cmp r18,r19 ;(f_floorheight)(b_floorheight)
679: movei #L92,scratch
680: jump PL,(scratch)
681: nop
682: L94:
683:
684: move FP,r0
685: addq #4,r0 ; &actionbits
686: load (r0),r1
687: movei #512,r2
688: or r2,r1
689: store r1,(r0)
690: movei #80,r0
691: move r15,r1 ;(segl)
692: add r0,r1
693: movei #_lastopening,r0
694: load (r0),r0
695: load (FP+10),r2 ; local rw_x
696: sub r2,r0
697: store r0,(r1)
698:
699: movei #_lastopening,r0
700: load (FP+13),r1 ; local width
701: shlq #1,r1
702: load (r0),r2
703: add r2,r1
704: store r1,(r0)
705:
706: L92:
707:
708: load (FP+6),r0 ; local skyhack
709: moveq #0,r1
710: cmp r0,r1
711: movei #L96,scratch
712: jump EQ,(scratch)
713: nop
714:
715: movei #L98,r0
716: jump T,(r0)
717: nop
718:
719: L96:
720:
721: moveq #0,r0
722: cmp r20,r0 ;(b_ceilingheight)
723: movei #L102,scratch
724: jump MI,(scratch)
725: nop
726: cmp r20,r16 ;(b_ceilingheight)(f_ceilingheight)
727: movei #L101,scratch
728: jump S_LT,(scratch)
729: nop
730: L102:
731: moveq #0,r0
732: cmp r16,r0 ;(f_ceilingheight)
733: movei #L99,scratch
734: jump PL,(scratch)
735: nop
736: cmp r20,r16 ;(b_ceilingheight)(f_ceilingheight)
737: movei #L99,scratch
738: jump PL,(scratch)
739: nop
740: L101:
741:
742: move FP,r0
743: addq #4,r0 ; &actionbits
744: load (r0),r1
745: movei #256,r2
746: or r2,r1
747: store r1,(r0)
748: movei #76,r0
749: move r15,r1 ;(segl)
750: add r0,r1
751: movei #_lastopening,r0
752: load (r0),r0
753: load (FP+10),r2 ; local rw_x
754: sub r2,r0
755: store r0,(r1)
756:
757: movei #_lastopening,r0
758: load (FP+13),r1 ; local width
759: shlq #1,r1
760: load (r0),r2
761: add r2,r1
762: store r1,(r0)
763:
764: L99:
765:
766: L98:
767:
768: L90:
769:
770: L80:
771:
772: move r15,r0 ;(segl)
773: addq #24,r0
774: load (FP+1),r1 ; local actionbits
775: store r1,(r0)
776:
777: movei #36,r0
778: move r15,r1 ;(segl)
779: add r0,r1
780: load (FP+3),r0 ; local t_texturemid
781: store r0,(r1)
782:
783: movei #52,r0
784: move r15,r1 ;(segl)
785: add r0,r1
786: load (FP+7),r0 ; local b_texturemid
787: store r0,(r1)
788:
789: movei #108,r0
790: move r15,r1 ;(segl)
791: add r0,r1
792: load (FP+4),r0 ; local f_lightlevel
793: store r0,(r1)
794:
795: movei #100,r0
796: move r15,r1 ;(segl)
797: add r0,r1
798: load (FP+2),r0 ; local si
799: load (r0),r0
800: move r22,r2 ;(seg)
801: addq #8,r2
802: load (r2),r2
803: add r2,r0
804: store r0,(r1)
805:
806: L53:
807:
808: movei #112,r0
809: move r15,r1 ;(segl)
810: add r0,r1
811: move r1,r15 ;(segl)
812:
813: L55:
814:
815: move r15,r0 ;(segl)
816: movei #_lastwallcmd,r1
817: load (r1),r1
818: cmp r0,r1
819: movei #L52,scratch
820: jump U_LT,(scratch)
821: nop
822:
823: movei #_phasetime+8,r0
824: movei #_samplecount,r1
825: load (r1),r1
826: store r1,(r0)
827:
828: movei #_gpucodestart,r0
829: movei #_ref3_start,r1
830: store r1,(r0)
831:
832:
833: L51:
834: movei #56,scratch
835: jump T,(RETURNPOINT)
836: add scratch,FP ; delay slot
837: .long
838: _emptysector::
839: .dc.l 0
840: .dc.l 0
841: .dc.l -2
842: .dc.l -2
843: .dc.l -2
844: .dc.l 0
845: .dc.l 0
846: .dc.l 0
847: .dc.l 0
848: .dc.l 0
849: .dc.l 0
850: .dc.l 0
851: .dc.l 0
852: .dc.l 0
853: .dc.l 0
854: .dc.l 0
855: .dc.l 0
856: .dc.l 0
857: .dc.l 0
858: .dc.l 0
859: .dc.l 0
860: .dc.l 0
861: .dc.l 0
862: .dc.l 0
863:
864: ;=======================
865:
866: .extern _lastopening
867: .extern _lastwallcmd
868: .extern _viswalls
869: .extern _texturetranslation
870: .extern _flattranslation
871: .extern _textures
872: .extern _phasetime
873: .extern _viewz
874: .extern _gpucodestart
875: .extern _samplecount
876: .extern _ref3_start
877:
878: .phrase
879: .68000
880: codeend:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.