_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

WORD

FILE INFORMATION

FILENAME(S): WORD

FILE TYPE(S): PRG

FILE SIZE: 1.7K

FIRST SEEN: 2025-11-30 21:11:34

APPEARS ON: 1 disk(s)

FILE HASH

a32f6d884404680ebc34dede30d10e93798fbf6d01b5b09caf1afe0b2c0dd16d

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
NOG UITZOEKEN WORD PRG DuncanTwain 31 8 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 3B 20 57 4F 52 44 20 2D  20 31 36 2D 42 49 54 20  |; WORD - 16-BIT |
00000010: 41 52 49 54 48 45 4D 41  54 49 43 0D 3B 0D 20 44  |ARITHEMATIC.;. D|
00000020: 45 46 20 57 41 44 44 20  53 59 54 4D 50 25 20 2C  |EF WADD SYTMP% ,|
00000030: 20 53 59 54 4D 50 31 25  20 2C 20 2E 53 59 50 4E  | SYTMP1% , .SYPN|
00000040: 54 0D 20 20 4C 44 59 20  23 30 0D 20 20 4C 45 54  |T.  LDY #0.  LET|
00000050: 20 53 59 54 4D 50 20 2B  20 53 59 54 4D 50 31 20  | SYTMP + SYTMP1 |
00000060: 2D 3E 20 28 53 59 50 4E  54 29 2C 59 0D 20 20 4C  |-> (SYPNT),Y.  L|
00000070: 44 41 20 53 59 54 4D 50  2B 31 20 3A 20 41 44 43  |DA SYTMP+1 : ADC|
00000080: 20 53 59 54 4D 50 31 2B  31 20 3A 20 49 4E 59 0D  | SYTMP1+1 : INY.|
00000090: 20 20 53 54 41 20 28 53  59 50 4E 54 29 2C 59 0D  |  STA (SYPNT),Y.|
000000A0: 20 20 52 45 54 55 52 4E  0D 20 45 4E 44 44 45 46  |  RETURN. ENDDEF|
000000B0: 20 57 41 44 44 0D 3B 0D  20 44 45 46 20 57 53 55  | WADD.;. DEF WSU|
000000C0: 42 20 53 59 54 4D 50 25  20 2C 20 53 59 54 4D 50  |B SYTMP% , SYTMP|
000000D0: 31 25 20 2C 20 2E 53 59  50 4E 54 0D 20 20 4C 44  |1% , .SYPNT.  LD|
000000E0: 59 20 23 30 0D 20 20 4C  45 54 20 53 59 54 4D 50  |Y #0.  LET SYTMP|
000000F0: 20 2D 20 53 59 54 4D 50  31 20 2D 3E 20 28 53 59  | - SYTMP1 -> (SY|
00000100: 50 4E 54 29 2C 59 0D 20  20 4C 44 41 20 53 59 54  |PNT),Y.  LDA SYT|
00000110: 4D 50 2B 31 20 3A 20 53  42 43 20 53 59 54 4D 50  |MP+1 : SBC SYTMP|
00000120: 31 2B 31 20 3A 20 49 4E  59 0D 20 20 53 54 41 20  |1+1 : INY.  STA |
00000130: 28 53 59 50 4E 54 29 2C  59 0D 20 20 52 45 54 55  |(SYPNT),Y.  RETU|
00000140: 52 4E 0D 20 45 4E 44 44  45 46 20 57 53 55 42 0D  |RN. ENDDEF WSUB.|
00000150: 3B 0D 20 44 45 46 20 57  49 4E 43 20 2E 53 59 50  |;. DEF WINC .SYP|
00000160: 4E 54 0D 20 20 4C 44 59  20 23 30 0D 20 20 4C 45  |NT.  LDY #0.  LE|
00000170: 54 20 28 53 59 50 4E 54  29 2C 59 20 2B 20 31 20  |T (SYPNT),Y + 1 |
00000180: 2D 3E 20 28 53 59 50 4E  54 29 2C 59 0D 20 20 50  |-> (SYPNT),Y.  P|
00000190: 48 50 20 3A 20 49 4E 59  20 3A 20 50 4C 50 0D 20  |HP : INY : PLP. |
000001A0: 20 4C 44 41 20 28 53 59  50 4E 54 29 2C 59 20 3A  | LDA (SYPNT),Y :|
000001B0: 20 41 44 43 20 23 30 20  3A 20 53 54 41 20 28 53  | ADC #0 : STA (S|
000001C0: 59 50 4E 54 29 2C 59 0D  20 20 52 45 54 55 52 4E  |YPNT),Y.  RETURN|
000001D0: 0D 20 45 4E 44 44 45 46  20 57 49 4E 43 0D 3B 0D  |. ENDDEF WINC.;.|
000001E0: 20 44 45 46 20 57 44 45  43 20 2E 53 59 50 4E 54  | DEF WDEC .SYPNT|
000001F0: 0D 20 20 4C 44 59 20 23  30 0D 20 20 4C 45 54 20  |.  LDY #0.  LET |
00000200: 28 53 59 50 4E 54 29 2C  59 20 2D 20 31 20 2D 3E  |(SYPNT),Y - 1 ->|
00000210: 20 28 53 59 50 4E 54 29  2C 59 0D 20 20 50 48 50  | (SYPNT),Y.  PHP|
00000220: 20 3A 20 49 4E 59 20 3A  20 50 4C 50 0D 20 20 4C  | : INY : PLP.  L|
00000230: 44 41 20 28 53 59 50 4E  54 29 2C 59 20 3A 20 53  |DA (SYPNT),Y : S|
00000240: 42 43 20 23 30 20 3A 20  53 54 41 20 28 53 59 50  |BC #0 : STA (SYP|
00000250: 4E 54 29 2C 59 0D 20 20  52 45 54 55 52 4E 0D 20  |NT),Y.  RETURN. |
00000260: 45 4E 44 44 45 46 20 57  44 45 43 0D 3B 0D 20 44  |ENDDEF WDEC.;. D|
00000270: 45 46 20 57 50 52 49 4E  54 20 53 59 54 4D 50 25  |EF WPRINT SYTMP%|
00000280: 0D 20 20 4C 45 54 20 30  20 2D 3E 20 53 59 54 4D  |.  LET 0 -> SYTM|
00000290: 50 31 2B 31 20 2D 3E 20  53 59 46 4C 47 0D 53 59  |P1+1 -> SYFLG.SY|
000002A0: 57 50 31 20 49 46 20 53  59 54 4D 50 31 2B 31 20  |WP1 IF SYTMP1+1 |
000002B0: 3D 20 38 20 54 48 45 4E  20 47 4F 53 55 42 20 50  |= 8 THEN GOSUB P|
000002C0: 55 54 20 27 30 27 20 2B  20 53 59 54 4D 50 20 3A  |UT '0' + SYTMP :|
000002D0: 20 52 45 54 55 52 4E 0D  20 20 54 41 59 0D 20 20  | RETURN.  TAY.  |
000002E0: 4C 45 54 20 53 59 50 4E  54 20 3D 20 53 59 57 50  |LET SYPNT = SYWP|
000002F0: 54 2C 59 20 3A 20 49 4E  59 0D 20 20 4C 45 54 20  |T,Y : INY.  LET |
00000300: 53 59 50 4E 54 2B 31 20  3D 20 53 59 57 50 54 2C  |SYPNT+1 = SYWPT,|
00000310: 59 20 3A 20 49 4E 59 0D  20 20 53 54 59 20 53 59  |Y : INY.  STY SY|
00000320: 54 4D 50 31 2B 31 0D 20  20 4C 45 54 20 53 59 54  |TMP1+1.  LET SYT|
00000330: 4D 50 31 20 3D 20 27 30  27 0D 53 59 57 50 32 20  |MP1 = '0'.SYWP2 |
00000340: 4C 45 54 20 53 59 54 4D  50 20 3D 20 53 59 54 4D  |LET SYTMP = SYTM|
00000350: 50 20 2D 20 53 59 50 4E  54 0D 20 20 4C 44 41 20  |P - SYPNT.  LDA |
00000360: 53 59 54 4D 50 2B 31 20  3A 20 53 42 43 20 53 59  |SYTMP+1 : SBC SY|
00000370: 50 4E 54 2B 31 20 3A 20  53 54 41 20 53 59 54 4D  |PNT+1 : STA SYTM|
00000380: 50 2B 31 0D 20 20 42 43  43 20 53 59 57 50 33 0D  |P+1.  BCC SYWP3.|
00000390: 20 20 49 4E 43 20 53 59  54 4D 50 31 20 3A 20 47  |  INC SYTMP1 : G|
000003A0: 4F 54 4F 20 53 59 57 50  32 0D 53 59 57 50 33 20  |OTO SYWP2.SYWP3 |
000003B0: 4C 45 54 20 53 59 54 4D  50 20 3D 20 53 59 54 4D  |LET SYTMP = SYTM|
000003C0: 50 20 2B 20 53 59 50 4E  54 0D 20 20 4C 44 41 20  |P + SYPNT.  LDA |
000003D0: 53 59 54 4D 50 2B 31 20  3A 20 41 44 43 20 53 59  |SYTMP+1 : ADC SY|
000003E0: 50 4E 54 2B 31 20 3A 20  53 54 41 20 53 59 54 4D  |PNT+1 : STA SYTM|
000003F0: 50 2B 31 0D 20 20 49 46  20 53 59 54 4D 50 31 20  |P+1.  IF SYTMP1 |
00000400: 3D 20 27 30 27 20 54 48  45 4E 0D 20 20 20 49 46  |= '0' THEN.   IF|
00000410: 20 53 59 46 4C 47 20 3D  20 30 20 47 4F 54 4F 20  | SYFLG = 0 GOTO |
00000420: 53 59 57 50 31 0D 20 20  45 4E 44 49 46 0D 20 20  |SYWP1.  ENDIF.  |
00000430: 47 4F 53 55 42 20 50 55  54 20 53 59 54 4D 50 31  |GOSUB PUT SYTMP1|
00000440: 0D 20 20 4C 45 54 20 53  59 46 4C 47 20 3D 20 31  |.  LET SYFLG = 1|
00000450: 20 3A 20 47 4F 54 4F 20  53 59 57 50 31 0D 53 59  | : GOTO SYWP1.SY|
00000460: 57 50 54 0D 20 20 2E 57  4F 52 44 20 31 30 30 30  |WPT.  .WORD 1000|
00000470: 30 0D 20 20 2E 57 4F 52  44 20 31 30 30 30 0D 20  |0.  .WORD 1000. |
00000480: 20 2E 57 4F 52 44 20 31  30 30 0D 20 20 2E 57 4F  | .WORD 100.  .WO|
00000490: 52 44 20 31 30 0D 20 45  4E 44 44 45 46 20 57 50  |RD 10. ENDDEF WP|
000004A0: 52 49 4E 54 0D 3B 0D 20  44 45 46 20 57 49 4E 50  |RINT.;. DEF WINP|
000004B0: 55 54 20 2E 53 59 43 4E  54 0D 20 20 47 4F 53 55  |UT .SYCNT.  GOSU|
000004C0: 42 20 49 4E 50 55 54 20  53 59 42 55 46 24 0D 20  |B INPUT SYBUF$. |
000004D0: 20 4C 45 54 20 30 20 2D  3E 20 53 59 54 4D 50 20  | LET 0 -> SYTMP |
000004E0: 2D 3E 20 53 59 54 4D 50  2B 31 20 3A 20 54 41 59  |-> SYTMP+1 : TAY|
000004F0: 0D 20 20 57 48 49 4C 45  20 53 59 42 55 46 2C 59  |.  WHILE SYBUF,Y|
00000500: 20 3C 3E 20 30 0D 20 20  20 49 46 20 3D 20 23 45  | <> 0.   IF = #E|
00000510: 4F 4C 20 47 4F 54 4F 20  53 59 57 49 44 0D 20 20  |OL GOTO SYWID.  |
00000520: 20 41 53 4C 20 53 59 54  4D 50 20 3A 20 52 4F 4C  | ASL SYTMP : ROL|
00000530: 20 53 59 54 4D 50 2B 31  0D 20 20 20 4C 45 54 20  | SYTMP+1.   LET |
00000540: 53 59 54 4D 50 31 20 3D  20 53 59 54 4D 50 0D 20  |SYTMP1 = SYTMP. |
00000550: 20 20 4C 45 54 20 53 59  54 4D 50 31 2B 31 20 3D  |  LET SYTMP1+1 =|
00000560: 20 53 59 54 4D 50 2B 31  0D 20 20 20 4C 44 58 20  | SYTMP+1.   LDX |
00000570: 23 34 0D 53 59 57 49 31  20 4C 45 54 20 53 59 54  |#4.SYWI1 LET SYT|
00000580: 4D 50 20 3D 20 53 59 54  4D 50 20 2B 20 53 59 54  |MP = SYTMP + SYT|
00000590: 4D 50 31 0D 20 20 20 4C  44 41 20 53 59 54 4D 50  |MP1.   LDA SYTMP|
000005A0: 2B 31 20 3A 20 41 44 43  20 53 59 54 4D 50 31 2B  |+1 : ADC SYTMP1+|
000005B0: 31 20 3A 20 53 54 41 20  53 59 54 4D 50 2B 31 0D  |1 : STA SYTMP+1.|
000005C0: 20 20 20 44 45 58 20 3A  20 42 4E 45 20 53 59 57  |   DEX : BNE SYW|
000005D0: 49 31 0D 20 20 20 4C 45  54 20 53 59 42 55 46 2C  |I1.   LET SYBUF,|
000005E0: 59 20 2D 20 27 30 27 20  2B 20 53 59 54 4D 50 20  |Y - '0' + SYTMP |
000005F0: 2D 3E 20 53 59 54 4D 50  0D 20 20 20 4C 44 41 20  |-> SYTMP.   LDA |
00000600: 53 59 54 4D 50 2B 31 20  3A 20 41 44 43 20 23 30  |SYTMP+1 : ADC #0|
00000610: 20 3A 20 53 54 41 20 53  59 54 4D 50 2B 31 0D 20  | : STA SYTMP+1. |
00000620: 20 20 49 4E 59 0D 20 20  45 4E 44 57 48 49 4C 45  |  INY.  ENDWHILE|
00000630: 0D 53 59 57 49 44 20 4C  44 59 20 23 30 0D 20 20  |.SYWID LDY #0.  |
00000640: 4C 45 54 20 53 59 50 4E  54 20 3D 20 53 59 43 4E  |LET SYPNT = SYCN|
00000650: 54 0D 20 20 4C 45 54 20  53 59 50 4E 54 2B 31 20  |T.  LET SYPNT+1 |
00000660: 3D 20 53 59 43 4E 54 2B  31 0D 20 20 4C 45 54 20  |= SYCNT+1.  LET |
00000670: 28 53 59 50 4E 54 29 2C  59 20 3D 20 53 59 54 4D  |(SYPNT),Y = SYTM|
00000680: 50 0D 20 20 49 4E 59 20  3A 20 4C 45 54 20 28 53  |P.  INY : LET (S|
00000690: 59 50 4E 54 29 2C 59 20  3D 20 53 59 54 4D 50 2B  |YPNT),Y = SYTMP+|
000006A0: 31 0D 20 20 52 45 54 55  52 4E 0D 20 45 4E 44 44  |1.  RETURN. ENDD|
000006B0: 45 46 20 57 49 4E 50 55  54 0D 00 00 00 00        |EF WINPUT.....  |
; WORD - 16-BIT ARITHEMATIC.;. DEF WADD 
SYTMP% , SYTMP1% , .SYPNT.  LDY #0.  LET
 SYTMP + SYTMP1 -> (SYPNT),Y.  LDA SYTMP
+1 : ADC SYTMP1+1 : INY.  STA (SYPNT),Y.
  RETURN. ENDDEF WADD.;. DEF WSUB SYTMP%
 , SYTMP1% , .SYPNT.  LDY #0.  LET SYTMP
 - SYTMP1 -> (SYPNT),Y.  LDA SYTMP+1 : S
BC SYTMP1+1 : INY.  STA (SYPNT),Y.  RETU
RN. ENDDEF WSUB.;. DEF WINC .SYPNT.  LDY
 #0.  LET (SYPNT),Y + 1 -> (SYPNT),Y.  P
HP : INY : PLP.  LDA (SYPNT),Y : ADC #0 
: STA (SYPNT),Y.  RETURN. ENDDEF WINC.;.
 DEF WDEC .SYPNT.  LDY #0.  LET (SYPNT),
Y - 1 -> (SYPNT),Y.  PHP : INY : PLP.  L
DA (SYPNT),Y : SBC #0 : STA (SYPNT),Y.  
RETURN. ENDDEF WDEC.;. DEF WPRINT SYTMP%
.  LET 0 -> SYTMP1+1 -> SYFLG.SYWP1 IF S
YTMP1+1 = 8 THEN GOSUB PUT '0' + SYTMP :
 RETURN.  TAY.  LET SYPNT = SYWPT,Y : IN
Y.  LET SYPNT+1 = SYWPT,Y : INY.  STY SY
TMP1+1.  LET SYTMP1 = '0'.SYWP2 LET SYTM
P = SYTMP - SYPNT.  LDA SYTMP+1 : SBC SY
PNT+1 : STA SYTMP+1.  BCC SYWP3.  INC SY
TMP1 : GOTO SYWP2.SYWP3 LET SYTMP = SYTM
P + SYPNT.  LDA SYTMP+1 : ADC SYPNT+1 : 
STA SYTMP+1.  IF SYTMP1 = '0' THEN.   IF
 SYFLG = 0 GOTO SYWP1.  ENDIF.  GOSUB PU
T SYTMP1.  LET SYFLG = 1 : GOTO SYWP1.SY
WPT.  .WORD 10000.  .WORD 1000.  .WORD 1
00.  .WORD 10. ENDDEF WPRINT.;. DEF WINP
UT .SYCNT.  GOSUB INPUT SYBUF$.  LET 0 -
> SYTMP -> SYTMP+1 : TAY.  WHILE SYBUF,Y
 <> 0.   IF = #EOL GOTO SYWID.   ASL SYT
MP : ROL SYTMP+1.   LET SYTMP1 = SYTMP. 
  LET SYTMP1+1 = SYTMP+1.   LDX #4.SYWI1
 LET SYTMP = SYTMP + SYTMP1.   LDA SYTMP
+1 : ADC SYTMP1+1 : STA SYTMP+1.   DEX :
 BNE SYWI1.   LET SYBUF,Y - '0' + SYTMP 
-> SYTMP.   LDA SYTMP+1 : ADC #0 : STA S
YTMP+1.   INY.  ENDWHILE.SYWID LDY #0.  
LET SYPNT = SYCNT.  LET SYPNT+1 = SYCNT+
1.  LET (SYPNT),Y = SYTMP.  INY : LET (S
YPNT),Y = SYTMP+1.  RETURN. ENDDEF WINPU
T.....
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL