update things

This commit is contained in:
Nishi 2026-08-04 20:27:51 +09:00
commit eac07282a6
5 changed files with 83 additions and 20 deletions

View file

@ -1,26 +1,13 @@
section CODE
public _memset
;;
;; string.h
;;
; memset:
; 4(sp): dst
; 8(sp): value
; 12(sp): int
_memset:
move.l 4(sp),a0
move.l 8(sp),d0
move.l 12(sp),d1
.loop:
cmpi #0,d1
beq.s .done
move.b d0,(a0)+
sub #1,d1
bra.s .loop
.done:
rts
public _memcpy
public _memset
public _strcat
public _strcpy
public _strlen
; memcpy:
; 4(sp): dst
@ -29,21 +16,92 @@ _memset:
_memcpy:
move.l 4(sp),a0
move.l 8(sp),a1
move.l 12(sp),d1
move.l 12(sp),d0
.loop:
cmpi #0,d1
cmpi.l #0,d0
beq.s .done
move.b (a1)+,(a0)+
sub #1,d1
sub.l #1,d0
bra.s .loop
.done:
move.l 4(sp),d0
rts
; memset:
; 4(sp): dst
; 8(sp): value
; 12(sp): int
_memset:
move.l 4(sp),a0
move.l 8(sp),d0
move.l 12(sp),d0
.loop:
cmpi.l #0,d0
beq.s .done
move.b d0,(a0)+
sub.l #1,d0
bra.s .loop
.done:
move.l 4(sp),d0
rts
; strcat:
; 4(sp): dst
; 8(sp): src
_strcat:
move.l 4(sp),a0
move.l 8(sp),a1
.loop_incr:
move.b (a0),d0
cmpi.b #0,d0
beq.s .loop_copy
add.l #1,a0
bra.s .loop_incr
.loop_copy:
move.b (a1),d0
cmpi.b #0,d0
beq.s .done
move.b (a1)+,(a0)+
bra.s .loop_copy
.done:
move.b #0,(a0)
move.l 4(sp),d0
rts
; strcpy:
; 4(sp): dst
; 8(sp): src
_strcpy:
move.l 4(sp),a0
move.l 8(sp),a1
.loop:
move.b (a1),d0
cmpi.b #0,d0
beq.s .done
move.b (a1)+,(a0)+
bra.s .loop
.done:
move.b #0,(a0)
move.l 4(sp),d0
rts
; strlen:
; 4(sp): src
_strlen:
move.l 4(sp),a0
move.l #0,d0
.loop:
move.b (a0)+,d1
cmpi.b #0,d1
beq.s .done
add.l #1,d0
bra.s .loop
.done:
rts
;;
;; 32-bit div/mod: taken from vc.lib
;;
public __divu
public __divs
public __modu