1; GEOS KERNAL by Berkeley Softworks 2; reverse engineered by Maciej Witkowiak, Michael Steil 3; 4; BAM/VLIR filesystem driver 5 6.include "const.inc" 7.include "geossym.inc" 8.include "geosmac.inc" 9.include "config.inc" 10.include "gkernal.inc" 11.include "c64.inc" 12 13.import Add2 14 15.global _BldGDirEntry 16 17.segment "files9" 18 19_BldGDirEntry: 20 ldy #$1d 21 lda #0 22@1: sta dirEntryBuf,y 23 dey 24 bpl @1 25.ifdef wheels 26 ldy #1 27 lda (r9),y 28 sta r3H 29 dey 30 lda (r9),y 31 sta r3L 32@2: lda (r3),y 33 beq @3 34 sta dirEntryBuf+OFF_FNAME,y 35 iny 36 cpy #16 37 bcc @2 38 bcs @5 39@3: lda #$a0 40@4: sta dirEntryBuf+OFF_FNAME,y 41 iny 42 cpy #16 43 bcc @4 44.else 45 tay 46 lda (r9),y 47 sta r3L 48 iny 49 lda (r9),y 50 sta r3H 51 sty r1H 52 dey 53 ldx #OFF_FNAME 54@2: lda (r3),y 55 bne @4 56 sta r1H 57@3: lda #$a0 58@4: sta dirEntryBuf,x 59 inx 60 iny 61 cpy #16 62 beq @5 63 lda r1H 64 bne @2 65 beq @3 66.endif 67@5: ldy #O_GHCMDR_TYPE 68 lda (r9),y 69 sta dirEntryBuf+OFF_CFILE_TYPE 70.ifndef wheels 71 ldy #O_GHSTR_TYPE 72 lda (r9),y 73 sta dirEntryBuf+OFF_GSTRUC_TYPE 74.endif 75 ldy #NULL 76 sty fileHeader 77 dey 78 sty fileHeader+1 79 MoveW fileTrScTab, dirEntryBuf+OFF_GHDR_PTR 80 jsr Add2 81 MoveW fileTrScTab+2, dirEntryBuf+OFF_DE_TR_SC 82.ifdef wheels 83 ldy #O_GHSTR_TYPE 84 lda (r9),y 85 sta dirEntryBuf+OFF_GSTRUC_TYPE 86 cmp #VLIR 87.else 88 CmpBI dirEntryBuf+OFF_GSTRUC_TYPE, VLIR 89.endif 90 bne @6 91 jsr Add2 92@6: ldy #O_GHGEOS_TYPE 93 lda (r9),y 94 sta dirEntryBuf+OFF_GFILE_TYPE 95 MoveW r2, dirEntryBuf+OFF_SIZE 96 rts 97 98