Mercurial > hg > Members > kono > nitros9-code
view lib/kreiderclib/adump.as @ 2981:9550602c9a0b
sierra/objs_lsl/mnln.asm: Use division quotient, not remainder
It calls a routine twice to make a division (L125C) but doesn't check
the right register for the result. The result is returned in reg U and
the remainder in reg D but the procedure expect the result to be returned
in reg D. The divison routine seems to be correct because it is properly
used elsewhere in the code.
Patch by Guillaume Major and Robert Gault.
author | Guillaume Major <guillaume.major@gmail.com> |
---|---|
date | Sat, 12 Apr 2014 15:30:03 +0200 |
parents | 1647f1874cdf |
children |
line wrap: on
line source
* Disassembly by Os9disasm of adump.r section code * class X standard named label equates D.Tasks equ $0020 * class D external label equates D0000 equ $0000 D000d equ $000d D0020 equ $0020 _dump: pshs u leas -5,s ldd 9,s pshs d leax L0192,pcr pshs x leax _iob+26,y pshs x lbsr fprintf leas 6,s leax L0197,pcr pshs x leax _iob+26,y pshs x lbsr fprintf leas 4,s clra clrb std 2,s ldu 11,s bra L005a L0032 stu ,s tfr u,d clra andb #$0f pshs d leax L019e,pcr pshs x leax _iob+26,y pshs x lbsr fprintf leas 6,s ldd 2,s addd #1 std 2,s subd #1 tfr u,d leau 1,u L005a ldd 2,s cmpd #$0010 blt L0032 leax L01a4,pcr pshs x leax _iob+26,y pshs x lbsr fprintf leas 4,s clra clrb std 2,s ldu 11,s bra L00a3 L007b stu ,s tfr u,d clra andb #$0f pshs d leax L01a6,pcr pshs x leax _iob+26,y pshs x lbsr fprintf leas 6,s ldd 2,s addd #1 std 2,s subd #1 tfr u,d leau 1,u L00a3 ldd 2,s cmpd #$0010 blt L007b leax _iob+26,y pshs x ldd #$000d pshs d lbsr putc leas 4,s leax L01aa,pcr pshs x leax _iob+26,y pshs x lbsr fprintf leas 4,s lbra L0178 L00cf ldd 11,s pshs d leax L01f3,pcr pshs x leax _iob+26,y pshs x lbsr fprintf leas 6,s clra clrb std 2,s ldu 11,s bra L0109 L00ec ldb ,u+ clra pshs d leax L01fa,pcr pshs x leax _iob+26,y pshs x lbsr fprintf leas 6,s ldd 2,s addd #1 std 2,s L0109 ldd 2,s cmpd #$0010 blt L00ec leax L0200,pcr pshs x leax _iob+26,y pshs x lbsr fprintf leas 4,s clra clrb std 2,s ldu 11,s bra L0157 L012a ldb ,u+ clra andb #$7f stb 4,s cmpb #$20 blt L013a ldb 4,s sex bra L013d L013a ldd #$002e L013d pshs d leax L0202,pcr pshs x leax _iob+26,y pshs x lbsr fprintf leas 6,s ldd 2,s addd #1 std 2,s L0157 ldd 2,s cmpd #$0010 blt L012a leax _iob+26,y pshs x ldd #$000d pshs d lbsr putc leas 4,s stu 11,s ldd 13,s subd #$0010 std 13,s L0178 ldd 13,s lbgt L00cf leax _iob+26,y pshs x ldd #$000d pshs d lbsr putc leas 4,s leas 5,s puls u,pc *L0192 bcs L0207 * tst D000d * neg D0020 *L0197 equ *-1 * bra L01ba * bra L01bc * bra L019e *L019e bra L01c5 * leay -8,s * bra L01a4 *L01a4 bra L01a6 *L01a6 bcs L01d9 * asl D.Tasks *L01aa equ *-1 * bra L01cd * bra L01cf * bra L01de * blt L01d3 * blt L01e2 * bra L01e4 * blt L01d9 * blt L01e8 *L01ba equ *-1 * bra L01ea *L01bc equ *-1 * blt L01df * blt L01ee * bra L01f0 * blt L01e5 *L01c5 blt L01f4 * bra L01f6 * blt L01eb * blt L01fa *L01cd bra L01fc *L01cf blt L01f1 * blt L0200 *L01d3 bra L0202 * blt L01f7 * blt L0206 *L01d9 bra L0208 * blt L01fd * blt L020c *L01de equ *-1 *L01df bra L0201 * blt L0210 *L01e2 equ *-1 * blt L0212 *L01e4 equ *-1 *L01e5 blt L0214 * blt L0216 *L01e8 equ *-1 * blt L0218 L01ea equ *-1 *L01eb blt L021a * blt L021c *L01ee equ *-1 * blt L021e *L01f0 equ *-1 *L01f1 tst D0000 *L01f3 bcs L0225 *L01f4 equ *-1 * pshs dp,x,y,u *L01f6 equ *-1 *L01f7 abx * bra L01fa *L01fa bcs L022c *L01fc leas -8,s *L01fd equ *-1 * bra L0200 *L0200 bra L0202 *L0201 equ *-1 *L0202 bcs L0267 * fcb $00 * endsect