)DЯw#
 REM HELPMKR.ASM  PASS 2;GOSUB 70( PASS 1;GOSUB 702 EXIT< F ASM-BP Z .CODE #2000d .OPTION #40n .TABLE #2400x ┌ :HANDLE = #80▄ :TREFWOORD1 = #82√ :TREFWOORD2 = #84═ :TELLER = #86╙ :INDEX_TAB = #88Є :TREF_TAB = #8AЎ :POINTER = #8Cх :TELLER1 = #8Cр :TELLER2 = #8Eэ :HULP1 = #70Ф :HULP2 = #72П :HULP3 = #74З  :HELPMKR    JMP BEGIN :IN_FILE    .AS "ATOMHELP.TXT",#0D :OUT_FILE   .AS "ATOMHELP.IDX",#0D" , :PRT_DEC    LDA TELLER          \ BRENG GETAL OVER NAAR BASIC STACK6             STA #16@             LDA TELLER+1J             STA #25T             LDA @#00^             STA #34h             STA #43r             JMP #C589           \ DRUK BASIC STACK DECIMAAL AF| ├ :VERGELIJK  LDY @#00░ :VERG1      LDA (TREFWOORD1),Y              STA HULP1,Yє             LDA (TREFWOORD2),Yў             STA HULP2,Y╦             INYб             CPY @2л             BNE VERG1ж             LDY @0Ю :VERG_LUS   LDA (HULP1),Y       \ VERGELIJK TWEE KARAKTERSЙ             CMP (HULP2),YТ             BNE VERG_EXIT       \ SPRING INDIEN VERSCHILLENDЧ             INY             CMP @#0D            \ TEST OP EINDE TREFWOORD             BNE VERG_LUS :VERG_EXIT  RTS& 0 :LEES_PTR   LDX @POINTER        \ LAADT ADRES WAAR FILEPOINTER STAAT:             LDA @0D             LDY HANDLEN             JSR #FFDA           \ VRAAG FILE POINTER OPX             RTSb l :DUBBEL_TW  JSR #F7D1           \ DRUK WAARSCHUWING AFv             .BY #0A,#0D─             .AS "*** Dubbel trefwoord : ",#EA┼             LDY @0■ :DUBBEL1    LDA (TREFWOORD1),Y·             STA HULP3,Y╗             INY╡             CPY @2╪             BNE DUBBEL1ф             LDY @0п :DUBBEL2    LDA (HULP3),Yз             JSR #FFE9Д             INYН             CMP @#0DЬ             BNE DUBBEL2             JMP #FFED  :BEGIN      LDA @<IN_FILE       \ ZET ADRES FILENAAM IN ZEROPAGE              STA HANDLE*             LDA @>IN_FILE4             STA HANDLE+1>             LDX @HANDLE         \ X WIJST NAAR ADRES IN ZEROPAGEH             SEC                 \ TOEGANGSMODE IS LEZENR             JSR #FFCE           \ OPEN DE INPUT FILE\             BNE FILE_OPENf             JSR #F7D1           \ DRUK FOUTMELDING AFp             .AS "File ATOMHELP.TXT niet gevonden",#0D,#0A,#EAz             RTS└ :FILE_OPEN  STA HANDLE          \ FILE HANDLE NAAR ZEROPAGE▌             LDA @#00            \ INITIALISEER TABELLEN≤             STA TELLER╒             STA TELLER+1╛             STA INDEX_TABІ             STA TREF_TABю             LDA @#40й             STA INDEX_TAB+1т             LDA @#50ч             STA TREF_TAB+1Х :LEES_BYTE  LDY HANDLEР :LEES_BYTE1 JSR #FFD4Э             BCS EOF             CMP @CH"~"             BNE LEES_BYTE1      \ SPRING INDIEN NIET BEGIN VAN TREFWOORD             LDY @0$             LDA TREF_TAB        \ ZET ADRES VAN TREFWOORD IN TABEL.             STA (INDEX_TAB),Y8             INYB             LDA TREF_TAB+1L             STA (INDEX_TAB),YV             CLC`             LDA INDEX_TABj             ADC @2t             STA INDEX_TAB~             LDA INDEX_TAB+1┬             ADC @0▓             STA INDEX_TAB+1°             INC TELLERі             BNE P+4╟             INC TELLER+1╨             JSR #F7D1д             .BY #0Dн             .AS "Aantal trefwoorden = ",#EAь             JSR PRT_DECБ             JSR LEES_PTRЛ :LEES_TREF  LDY HANDLEЖ             JSR #FFD4           \ LEES KARAKTER VAN TREFWOORD             BCS EOF
             CMP @CH" "          \ TEST OP EINDE TREFWOORD             BEQ ZET_PTR             CMP @#0D(             BEQ ZET_PTR2             LDY @#00<             STA (TREF_TAB),Y    \ SCHRIJF NAAR TREFWOORDEN TABELF             INC TREF_TABP             BNE P+4Z             INC TREF_TAB+1d             JMP LEES_TREFn :ZET_PTR    LDA @#0D            \ SLUIT TREFWOORD AFx             LDY @#00┌             STA (TREF_TAB),Y▄             INY√ :ZET_PTR1   LDA POINTER-1,Y     \ LEES BYTE UIT FILEPOINTER═             STA (TREF_TAB),Y╙             INYЄ             CPY @5Ў             BNE ZET_PTR1х             CLCр             LDA TREF_TABэ             ADC @5Ф             STA TREF_TABП             LDA TREF_TAB+1З             ADC @0             STA TREF_TAB+1             JMP LEES_BYTE :EOF        LDY HANDLE"             JSR #FFCB           \ SLUIT INPUT FILE,             SEC6             LDA TELLER          \ VERLAAG AANTAL TREFWOORDEN MET 1@             SBC @1J             STA TELLERT             LDA TELLER+1^             SBC @0h             STA TELLER+1r             JSR #F7D1|             .BY #0D,#0A├             .AS "Trefwoorden worden gesorteerd ... ",#EA░             LDA TELLER               STA TELLER1є             LDA TELLER+1ў             STA TELLER1+1╦ :SORTEER    LDA @1              \ ZET WISSELVLAGб             STA HANDLEл             LDA TELLERж             STA TELLER2Ю             LDA TELLER+1Й             STA TELLER2+1Т             SECЧ             LDA TELLER1         \ TELLER1 := TELLER1-1             SBC @1             STA TELLER1             LDA TELLER1+1&             SBC @00             STA TELLER1+1:             ORA TELLER1         \ TEST OF TELLER1=0D             BEQ SORT_KLAARN             LDA @#00            \ ZET BEGIN ADRES INDEXTABEL IN POINTERX             STA TREFWOORD1b             LDA @#40l             STA TREFWOORD1+1v :VOLGENDE   CLC                 \ ZET VOLGENDE POINTER IN TREFWOORD2─             LDA TREFWOORD1┼             ADC @2■             STA TREFWOORD2·             LDA TREFWOORD1+1╗             ADC @0╡             STA TREFWOORD2+1╪             JSR VERGELIJK       \ VERGELIJK DE TREFWOORDEN MET ELKAARф             BNE VERSCHIL        \ SPRING INDIEN VERSCHILLENDп             JMP DUBBEL_TW       \ GEEF WAARSCHUWINGз :VERSCHIL   BMI VERDER          \ SPRING INDIEN VOLGENDE GROTER ISД             LDY @0              \ VERWISSEL DE TWEE INDEXENН :WISSEL_OM  LDA (TREFWOORD1),YЬ             PHA             LDA (TREFWOORD2),Y             STA (TREFWOORD1),Y             PLA              STA (TREFWOORD2),Y*             INY4             CPY @2>             BNE WISSEL_OMH             LDA @0R             STA HANDLE          \ ZET WISSELVLAG OM\ :VERDER     LDA TREFWOORD2      \ ZET POINTER NAAR VOLGENDE INDEXf             STA TREFWOORD1p             LDA TREFWOORD2+1z             STA TREFWOORD1+1└             SEC                 \ VERLAAG TELLER2▌             LDA TELLER2≤             SBC @1╒             STA TELLER2╛             LDA TELLER2+1І             SBC @0ю             STA TELLER2+1й             ORA TELLER2         \ TEST OP 0т             BNE VOLGENDEч             LDA HANDLE          \ KIJK OF ER GEWISSELD ISХ             BEQ SORTEER         \ JA, DAN VOLGENDE SORTEERSLAG UITVOERENР :SORT_KLAAR LDA @<OUT_FILE      \ OPEN DE INDEX-FILEЭ             STA HANDLE	             LDA @>OUT_FILE	             STA HANDLE+1	             LDX @HANDLE	$             CLC	.             JSR #FFCE	8             STA HANDLE	B             LDA @#00            \ RESET POINTER NAAR INDEX TABEL	L             STA INDEX_TAB	V             LDA @#40	`             STA INDEX_TAB+1	j :NAAM2FILE  LDY @0	t             LDA (INDEX_TAB),Y	~             STA TREFWOORD1	┬             INY	▓             LDA (INDEX_TAB),Y	°             STA TREFWOORD1+1	і :NAAM2FILE1 LDY @0              \ ZET INDEX	╟             LDA (TREFWOORD1),Y	╨             LDY HANDLE          \ SCHRIJF TEKEN NAAR BESTAND	д             JSR #FFD1	н             CMP @#0D            \ TEST OP EINDE VAN TREFWOORD	ь             BEQ PRT2FILE	Б             INC TREFWOORD1	Л             BNE P+4	Ж             INC TREFWOORD1+1
             JMP NAAM2FILE1

 :PRT2FILE   LDY @1              \ ZET INDEX
             STY HANDLE+1
 :PRT2FILE1  LDY HANDLE+1
(             CPY @5
2             BEQ VLG_WOORD
<             LDA (TREFWOORD1),Y  \ LEES POINTER
F             LDY HANDLE
P             JSR #FFD1           \ SCHRIJF NAAR BESTAND
Z             INC HANDLE+1
d             BNE PRT2FILE1
n :VLG_WOORD  CLC
x             LDA INDEX_TAB
┌             ADC @2
▄             STA INDEX_TAB
√             LDA INDEX_TAB+1
═             ADC @0
╙             STA INDEX_TAB+1
Є             SEC
Ў             LDA TELLER
х             SBC @1
р             STA TELLER
э             LDA TELLER+1
Ф             SBC @0
П             STA TELLER+1
З             ORA TELLER             BNE NAAM2FILE :EINDE      LDY HANDLE          \ SLUIT BESTAND             JSR #FFCB"             JSR #F7D1,             .BY #0A,#0D6             .AS "Help indexfile is aangemaakt !",#0D,#0A,#0A,#EA@             RTSJ .ENDT RETURNЪ
Ў .END
х RETURNЪ
Ў .END
х RETURNЪ0ЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪ