|
DataMuseum.dkPresents historical artifacts from the history of: Commodore CBM-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Commodore CBM-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 1659 (0x67b) Types: TextFile Notes: UNIX file Names: »twds.s«
└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code └─⟦2d53db1df⟧ UNIX Filesystem └─ ⟦this⟧ »frankh/format/twds.s« └─ ⟦this⟧ »sys/z8001/diag/twds.s«
/ (lgl- / The information contained herein is a trade secret of Mark Williams / Company, and is confidential information. It is provided under a / license agreement, and may be copied or disclosed only under the / terms of that agreement. Any reproduction or disclosure of this / material without the express written authorization of Mark Williams / Company or persuant to the license agreement is unlawful. / / COHERENT Version 0.7.3 / Copyright (c) 1982, 1983, 1984. / An unpublished work by Mark Williams Company, Chicago. / All rights reserved. / -lgl) .shri .globl wdcheck_ wdcheck_: ld r0, rr14(8) / get character value to compare ldb rh0, rl0 / duplicate so we can use word mode ldl rr2, rr14(4) / get pointer to buffer ld r1, $256 / words per buffer cpir r0, @rr2, r1, ne / search for mismatch jr z, 1f / z == found it clr r1 / indicate all OK ret un / 1: ldk r1, $1 / indicate error ret un / .globl wdcompare_ wdcompare_: ld r0, $512 / bytes per block ldl rr2, rr14(4) / first pointer ldl rr4, rr14(8) / second pointer cpsirb @rr2, @rr4, r0, ne / check to make sure they match jr z, 1f / z == found mismatch clr r1 / indicate all is OK ret un / 1: ldk r1, $1 / indicate error ret un / .globl wdblkinit_ / fills a block with a char value wdblkinit_: ld r0, rr14(8) / get character value ldb rh0, rl0 / duplicate so we can use word mode ldl rr2, rr14(4) / get pointer to buffer ld @rr2, r0 / store seed ldl rr4, rr2 / destination pointer inc r5, $2 / adjust pointer ld r1, $256-1 / number of words in block ldir @rr4, @rr2, r1 / block move to fill memory ret un