; ; File generated by cc65 v 2.11.0 ; .fopt compiler,"cc65 v 2.11.0" .setcpu "6502" .smart on .autoimport on .case on .debuginfo on .importzp sp, sreg, regsave, regbank, tmp1, ptr1, ptr2 .macpack longbranch .dbg file, "localtime.c", 3622, 1037177805 .dbg file, "../../include/time.h", 4812, 1121601586 .export _localtime .import _mktime ; --------------------------------------------------------------- ; struct tm* __fastcall__ localtime (const unsigned long*) ; --------------------------------------------------------------- .segment "CODE" .proc _localtime .segment "BSS" L0005: .res 18,$00 .segment "CODE" ; ; { ; .dbg line, "localtime.c", 47 jsr pushax ; ; if (timep == 0 || (long) (t = *timep) < 0) { ; .dbg line, "localtime.c", 52 jsr decsp4 ldy #$04 lda (sp),y iny ora (sp),y beq L0007 jsr ldaxysp ldy #$03 jsr ldeaxidx ldy #$00 jsr steaxysp lda sreg+1 bpl L0006 ; ; return 0; ; .dbg line, "localtime.c", 54 L0007: ldx #$00 txa jmp incsp6 ; ; timebuf.tm_sec = t % 3600; ; .dbg line, "localtime.c", 61 L0006: ldy #$03 jsr ldeaxysp jsr pusheax ldx #$0E lda #$00 sta sreg sta sreg+1 lda #$10 jsr tosumodeax sta L0005 stx L0005+1 ; ; timebuf.tm_min = 0; ; .dbg line, "localtime.c", 62 lda #$00 sta L0005+2 sta L0005+2+1 ; ; timebuf.tm_hour = (t / 3600) % 24; ; .dbg line, "localtime.c", 63 ldy #$03 jsr ldeaxysp jsr pusheax ldx #$0E lda #$00 sta sreg sta sreg+1 lda #$10 jsr tosudiveax jsr pusheax ldx #$00 stx sreg stx sreg+1 lda #$18 jsr tosumodeax sta L0005+4 stx L0005+4+1 ; ; timebuf.tm_mday = (t / (3600UL * 24UL)) + 1; ; .dbg line, "localtime.c", 64 ldy #$03 jsr ldeaxysp jsr pusheax ldx #$51 lda #$01 sta sreg lda #$00 sta sreg+1 lda #$80 jsr tosudiveax ldy #$01 jsr inceaxy sta L0005+6 stx L0005+6+1 ; ; timebuf.tm_mon = 0; ; .dbg line, "localtime.c", 65 ldx #$00 txa sta L0005+8 sta L0005+8+1 ; ; timebuf.tm_year = 70; /* Base value is 1/1/1970 */ ; .dbg line, "localtime.c", 66 lda #$46 sta L0005+10 stx L0005+10+1 ; ; mktime (&timebuf); ; .dbg line, "localtime.c", 69 lda #<(L0005) ldx #>(L0005) jsr _mktime ; ; return &timebuf; ; .dbg line, "localtime.c", 72 lda #<(L0005) ldx #>(L0005) ; ; } ; .dbg line, "localtime.c", 73 jmp incsp6 .dbg line .endproc