Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Jan Bruns Newsgroups: de.comp.lang.assembler Subject: Re: 6502 gunzip Date: 21 Oct 2020 10:23:24 GMT Lines: 69 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Trace: individual.net FV1YbBaOz8oIOW10n7pewADPCNjzOMLs/4bApbStTq1fhQ3PIp Cancel-Lock: sha1:k2andWvJZizK1dEIPCX2xukaQ4g= User-Agent: Pan/0.145 (Duplicitous mercenary valetism; d7e168a git.gnome.org/pan2) Xref: csiph.com de.comp.lang.assembler:1209 Jan Bruns: > Ich glaube, da hat die Welt drauf gewartet, nicht? > Nur deshalb ging's nicht voran. Es war noch ein offensichtlicher bug in Lgz_prepare_default_tabs. Ich habe grad nochmal überdacht, ob man Lgz_take_lencode (also das Ding, das diese "(HCLEN + 4) x 3 bits" [Zitat RFC 1951] entgegen nimmt) nicht irgendwie so gestalten kann, daß es die Daten erstmal irgendwo zwischenspeichert, und hinterher erst alles in einem Rutsch über Lgz_put_lencode läuft, wie bei den andren Tabellen auch. Scheint aber eher schlechter zu sein: Lgz_init_initial_codelen: // irgendwo in BTYPE, oder so lda Lgz_tabpages sta Lgz_save_initial_codelen_point+2 sta Lgz_init_initial_codelen_loop+2 sta Lgz_copy_initial_codelens_loop+2 ldx #12 lda #00 Lgz_init_initial_codelen_loop: sta ff00,x dex bpl Lgz_init_initial_codelen_loop rts Lgz_save_initial_codelen: // statt Lgz_take_lencode ldx Lgz_codes_loaded ldy Lgz_hclenorder,x lda Lgz_indat Lgz_save_initial_codelen_point: sta ff00,y inc Lgz_codes_loaded lda Lgz_codes_loaded cmp Lgz_HCLEN bcs Lgz_copy_initial_codelens lda #05 ldx #03 jmp Lgz_expectbits Lgz_copy_initial_codelens: ldx #00 stx Lgz_codes_loaded stx Lgz_copy_initial_codelens_loop+1 dex stx Lgz_putwhat Lgz_copy_initial_codelens_loop: lda ff00 sta Lgz_indat jsr Lgz_put_lencode inc Lgz_copy_initial_codelens_loop+1 lda Lgz_copy_initial_codelens_loop+1 cmp #13 bne Lgz_copy_initial_codelens_loop Lgz_take_lencode_final: // wie bei Lgz_take_lencode ... Mag aber sein, daß das mit kompakterem, kompletten Zerofill bei der Initialisierung noch anderswo wieder was spart, und dann doch besser oder zumindest geringfügig kürzer ist. Ich weiss es nicht. Gruss Jan Bruns