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

64.ASM

FILE INFORMATION

FILENAME(S): 64.ASM

FILE TYPE(S): PRG

FILE SIZE: 5.4K

FIRST SEEN: 2025-12-01 19:06:23

APPEARS ON: 1 disk(s)

FILE HASH

3c18abbc57287857b9bd29a268ec8c20803fdb97dd1106bbca078050b51dc380

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
DA ALTERNET DEMO 64.ASM PRG Icebreaker 30 0 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 09 3B 6A 6B 2D 6E 65 74  20 76 30 2E 36 0A 09 3B  |.;jk-net v0.6..;|
00000010: 63 6F 70 79 72 69 67 68  74 20 62 79 20 69 6E 66  |copyright by inf|
00000020: 69 6E 69 74 79 20 31 39  39 33 2C 39 34 0A 0A 0A  |inity 1993,94...|
00000030: 46 4E 4C 45 4E 09 65 71  75 09 24 62 37 09 09 3B  |FNLEN.equ.$b7..;|
00000040: 66 69 6C 65 20 6E 61 6D  65 20 6C 65 6E 67 68 74  |file name lenght|
00000050: 0A 46 41 09 65 71 75 09  24 62 61 09 09 3B 64 65  |.FA.equ.$ba..;de|
00000060: 76 69 63 65 20 6E 75 6D  62 65 72 0A 46 4E 41 44  |vice number.FNAD|
00000070: 52 09 65 71 75 09 24 62  62 09 09 3B 6E 61 6D 65  |R.equ.$bb..;name|
00000080: 20 61 64 64 72 65 73 73  0A 0A 49 45 52 52 4F 52  | address..IERROR|
00000090: 09 65 71 75 09 24 30 33  30 30 09 09 3B 65 72 72  |.equ.$0300..;err|
000000A0: 6F 72 0A 49 4C 4F 41 44  09 65 71 75 09 24 30 33  |or.ILOAD.equ.$03|
000000B0: 33 30 09 09 3B 6C 6F 61  64 0A 49 53 41 56 45 09  |30..;load.ISAVE.|
000000C0: 65 71 75 09 24 30 33 33  32 09 09 3B 73 61 76 65  |equ.$0332..;save|
000000D0: 0A 0A 43 48 4B 49 4E 09  65 71 75 09 24 66 66 63  |..CHKIN.equ.$ffc|
000000E0: 36 09 09 3B 6F 70 65 6E  20 66 6F 72 20 69 6E 70  |6..;open for inp|
000000F0: 75 74 0A 43 48 4B 4F 55  54 09 65 71 75 09 24 66  |ut.CHKOUT.equ.$f|
00000100: 66 63 39 09 09 3B 6F 70  65 6E 20 66 6F 72 20 6F  |fc9..;open for o|
00000110: 75 74 70 75 74 20 0A 43  48 52 49 4E 09 65 71 75  |utput .CHRIN.equ|
00000120: 09 24 66 66 63 66 09 09  3B 67 65 74 20 63 68 61  |.$ffcf..;get cha|
00000130: 72 20 66 72 6F 6D 20 69  6E 70 75 74 0A 43 48 52  |r from input.CHR|
00000140: 4F 55 54 09 65 71 75 09  24 66 66 64 32 09 09 3B  |OUT.equ.$ffd2..;|
00000150: 70 75 74 20 63 68 61 72  20 74 6F 20 6F 75 74 70  |put char to outp|
00000160: 75 74 0A 0A 6F 72 67 5F  49 4C 4F 41 44 09 65 71  |ut..org_ILOAD.eq|
00000170: 75 09 24 66 34 61 35 09  09 3B 6F 72 67 69 6E 61  |u.$f4a5..;orgina|
00000180: 6C 20 6C 6F 61 64 0A 6F  72 67 5F 49 53 41 56 45  |l load.org_ISAVE|
00000190: 09 65 71 75 09 24 66 35  65 64 09 09 3B 6F 72 67  |.equ.$f5ed..;org|
000001A0: 69 6E 61 6C 20 73 61 76  65 0A 0A 73 65 61 72 63  |inal save..searc|
000001B0: 5F 6D 09 65 71 75 09 24  66 35 61 66 09 09 3B 70  |_m.equ.$f5af..;p|
000001C0: 72 69 6E 74 20 73 65 61  72 63 68 69 6E 67 20 66  |rint searching f|
000001D0: 6F 72 20 27 6E 61 6D 65  27 20 6D 65 73 73 61 67  |or 'name' messag|
000001E0: 65 0A 6C 6F 61 64 5F 6D  09 65 71 75 09 24 66 35  |e.load_m.equ.$f5|
000001F0: 64 32 09 09 3B 70 72 69  6E 74 20 6C 6F 61 64 69  |d2..;print loadi|
00000200: 6E 67 20 6D 65 73 73 61  67 65 0A 73 61 76 65 5F  |ng message.save_|
00000210: 6D 09 65 71 75 09 24 66  36 38 66 09 09 3B 70 72  |m.equ.$f68f..;pr|
00000220: 69 6E 74 20 73 61 76 69  6E 67 20 27 6E 61 6D 65  |int saving 'name|
00000230: 27 20 6D 65 73 73 61 67  65 0A 70 72 69 6E 74 5F  |' message.print_|
00000240: 73 74 72 09 65 71 75 09  24 61 62 31 65 09 09 3B  |str.equ.$ab1e..;|
00000250: 70 72 69 6E 74 20 73 74  72 69 6E 67 20 65 6E 64  |print string end|
00000260: 69 6E 67 20 6E 75 6C 6C  0A 0A 65 5F 66 6E 66 09  |ing null..e_fnf.|
00000270: 65 71 75 09 24 30 34 09  09 3B 46 49 4C 45 20 4E  |equ.$04..;FILE N|
00000280: 4F 54 20 46 4F 55 4E 44  0A 65 5F 6D 66 6E 09 65  |OT FOUND.e_mfn.e|
00000290: 71 75 09 24 30 38 09 09  3B 4D 49 53 53 49 4E 47  |qu.$08..;MISSING|
000002A0: 20 46 49 4C 45 20 4E 41  4D 45 0A 0A 61 64 64 72  | FILE NAME..addr|
000002B0: 09 65 71 75 09 24 66 63  09 09 3B 73 74 61 72 74  |.equ.$fc..;start|
000002C0: 20 61 64 64 72 65 73 73  0A 6C 65 6E 09 65 71 75  | address.len.equ|
000002D0: 09 24 66 65 09 09 3B 6C  65 6E 67 68 74 20 61 6E  |.$fe..;lenght an|
000002E0: 64 20 65 6E 64 20 61 64  64 72 65 73 73 0A 0A 4C  |d end address..L|
000002F0: 4F 41 44 5F 63 6F 64 65  09 65 71 75 09 24 30 31  |OAD_code.equ.$01|
00000300: 0A 53 41 56 45 5F 63 6F  64 65 09 65 71 75 09 24  |.SAVE_code.equ.$|
00000310: 30 32 0A 44 49 52 5F 63  6F 64 65 09 65 71 75 09  |02.DIR_code.equ.|
00000320: 24 30 33 0A 51 55 49 54  5F 63 6F 64 65 09 65 71  |$03.QUIT_code.eq|
00000330: 75 09 24 30 34 0A 0A 0A  0A 2A 09 65 71 75 09 35  |u.$04....*.equ.5|
00000340: 32 37 38 30 0A 0A 3B 20  6D 61 69 6E 20 2D 2D 2D  |2780..; main ---|
00000350: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |----------------|
00000360: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 0A 0A 09  |-------------...|
00000370: 6C 64 61 20 23 3C 6C 6F  61 64 5F 6D 61 69 6E 09  |lda #<load_main.|
00000380: 09 3B 69 6E 73 74 61 6C  6C 20 6A 6B 2D 6E 65 74  |.;install jk-net|
00000390: 0A 09 73 74 61 20 49 4C  4F 41 44 0A 09 6C 64 61  |..sta ILOAD..lda|
000003A0: 20 23 3E 6C 6F 61 64 5F  6D 61 69 6E 0A 09 73 74  | #>load_main..st|
000003B0: 61 20 49 4C 4F 41 44 2B  31 0A 09 6C 64 61 20 23  |a ILOAD+1..lda #|
000003C0: 3C 73 61 76 65 5F 6D 61  69 6E 0A 09 73 74 61 20  |<save_main..sta |
000003D0: 49 53 41 56 45 0A 09 6C  64 61 20 23 3E 73 61 76  |ISAVE..lda #>sav|
000003E0: 65 5F 6D 61 69 6E 0A 09  73 74 61 20 49 53 41 56  |e_main..sta ISAV|
000003F0: 45 2B 31 0A 0A 09 6A 73  72 20 69 6E 69 74 5F 70  |E+1...jsr init_p|
00000400: 6F 72 74 09 09 3B 69 6E  69 74 5F 70 6F 72 74 0A  |ort..;init_port.|
00000410: 0A 09 6C 64 61 20 23 3C  6D 5F 63 72 0A 09 6C 64  |..lda #<m_cr..ld|
00000420: 79 20 23 3E 6D 5F 63 72  0A 09 6A 6D 70 20 70 72  |y #>m_cr..jmp pr|
00000430: 69 6E 74 5F 73 74 72 09  09 3B 70 72 69 6E 74 20  |int_str..;print |
00000440: 63 6F 70 79 72 69 67 68  74 0A 0A 3B 20 63 68 6B  |copyright..; chk|
00000450: 20 6E 61 6D 65 20 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  | name ----------|
00000460: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |----------------|
00000470: 2D 2D 0A 0A 63 68 6B 5F  6E 61 6D 65 09 6C 64 61  |--..chk_name.lda|
00000480: 20 46 4E 4C 45 4E 09 09  09 3B 63 68 65 63 6B 20  | FNLEN...;check |
00000490: 66 69 6C 65 20 6E 61 6D  65 20 6C 65 6E 67 68 74  |file name lenght|
000004A0: 0A 09 62 6E 65 20 6E 6F  74 5F 30 09 09 09 3B 6E  |..bne not_0...;n|
000004B0: 75 6C 6C 20 3F 2C 6E 6F  20 2D 3E 20 6E 6F 74 5F  |ull ?,no -> not_|
000004C0: 30 0A 09 70 6C 61 0A 09  70 6C 61 0A 09 6C 64 78  |0..pla..pla..ldx|
000004D0: 20 23 65 5F 6D 66 6E 09  09 3B 6D 69 73 73 69 67  | #e_mfn..;missig|
000004E0: 6E 20 66 69 6C 65 20 6E  61 6D 65 0A 09 6A 6D 70  |n file name..jmp|
000004F0: 20 28 49 45 52 52 4F 52  29 09 09 3B 65 72 72 6F  | (IERROR)..;erro|
00000500: 72 0A 6E 6F 74 5F 30 09  63 6D 70 20 23 31 37 0A  |r.not_0.cmp #17.|
00000510: 09 62 63 63 20 6E 6F 74  5F 31 36 09 09 3B 6F 76  |.bcc not_16..;ov|
00000520: 65 72 20 31 36 20 3F 2C  20 6E 6F 20 2D 3E 20 6E  |er 16 ?, no -> n|
00000530: 6F 74 5F 31 36 0A 09 6C  64 61 20 23 31 36 0A 09  |ot_16..lda #16..|
00000540: 73 74 61 20 46 4E 4C 45  4E 0A 6E 6F 74 5F 31 36  |sta FNLEN.not_16|
00000550: 0A 09 72 74 73 0A 0A 3B  20 73 65 6E 64 20 6E 61  |..rts..; send na|
00000560: 6D 65 20 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |me -------------|
00000570: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 0A 0A  |--------------..|
00000580: 73 65 6E 64 5F 6E 61 6D  65 09 6C 64 79 20 23 30  |send_name.ldy #0|
00000590: 09 09 09 3B 73 65 6E 64  20 6E 61 6D 65 20 74 6F  |...;send name to|
000005A0: 20 61 6D 69 67 61 0A 73  65 6E 64 5F 6C 6F 6F 70  | amiga.send_loop|
000005B0: 09 6C 64 61 20 28 46 4E  41 44 52 29 2C 79 0A 09  |.lda (FNADR),y..|
000005C0: 6A 73 72 20 70 75 74 5F  63 68 61 72 0A 09 69 6E  |jsr put_char..in|
000005D0: 79 0A 09 63 70 79 20 46  4E 4C 45 4E 0A 09 62 6E  |y..cpy FNLEN..bn|
000005E0: 65 20 73 65 6E 64 5F 6C  6F 6F 70 0A 09 6C 64 61  |e send_loop..lda|
000005F0: 20 23 33 32 0A 63 5F 73  5F 6E 61 6D 65 0A 09 63  | #32.c_s_name..c|
00000600: 70 79 20 23 31 36 0A 09  62 65 71 20 6E 61 6D 65  |py #16..beq name|
00000610: 5F 73 65 6E 74 0A 09 6A  73 72 20 70 75 74 5F 63  |_sent..jsr put_c|
00000620: 68 61 72 0A 09 69 6E 79  0A 09 6A 6D 70 20 63 5F  |har..iny..jmp c_|
00000630: 73 5F 6E 61 6D 65 0A 6E  61 6D 65 5F 73 65 6E 74  |s_name.name_sent|
00000640: 0A 09 72 74 73 0A 0A 3B  20 73 61 76 65 20 6D 61  |..rts..; save ma|
00000650: 69 6E 20 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |in -------------|
00000660: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 0A 0A  |--------------..|
00000670: 73 61 76 65 5F 6D 61 69  6E 09 70 68 61 09 09 09  |save_main.pha...|
00000680: 3B 70 75 73 68 20 61 63  63 75 0A 09 6C 64 61 20  |;push accu..lda |
00000690: 46 41 09 09 09 3B 64 65  76 69 63 65 20 6E 75 6D  |FA...;device num|
000006A0: 62 65 72 0A 09 63 6D 70  20 23 37 0A 09 62 65 71  |ber..cmp #7..beq|
000006B0: 20 73 5F 79 65 73 5F 37  09 09 3B 37 20 3F 2C 79  | s_yes_7..;7 ?,y|
000006C0: 65 73 20 2D 3E 20 73 5F  79 65 73 5F 37 0A 09 70  |es -> s_yes_7..p|
000006D0: 6C 61 0A 09 6A 6D 70 20  6F 72 67 5F 49 53 41 56  |la..jmp org_ISAV|
000006E0: 45 09 09 3B 6F 72 67 69  6E 61 6C 20 73 61 76 65  |E..;orginal save|
000006F0: 0A 0A 73 5F 79 65 73 5F  37 09 73 65 69 09 09 09  |..s_yes_7.sei...|
00000700: 3B 6E 6F 20 69 6E 74 65  72 72 75 70 74 73 0A 09  |;no interrupts..|
00000710: 6A 73 72 20 63 68 6B 5F  6E 61 6D 65 09 09 3B 63  |jsr chk_name..;c|
00000720: 68 65 63 6B 20 6E 61 6D  65 20 6C 65 6E 67 68 74  |heck name lenght|
00000730: 0A 09 6A 73 72 20 73 61  76 65 5F 6D 09 09 3B 70  |..jsr save_m..;p|
00000740: 72 69 6E 74 20 73 61 76  69 6E 67 20 27 6E 61 6D  |rint saving 'nam|
00000750: 65 27 20 6D 65 73 73 61  67 65 0A 09 6A 73 72 20  |e' message..jsr |
00000760: 70 6F 72 74 5F 70 75 74  09 09 3B 70 6F 72 74 20  |port_put..;port |
00000770: 6F 75 74 70 75 74 0A 09  6C 64 61 20 23 53 41 56  |output..lda #SAV|
00000780: 45 5F 63 6F 64 65 09 09  3B 53 41 56 45 5F 63 6F  |E_code..;SAVE_co|
00000790: 64 65 20 74 6F 20 61 6D  69 67 61 0A 09 6A 73 72  |de to amiga..jsr|
000007A0: 20 70 75 74 5F 63 68 61  72 0A 09 6A 73 72 20 73  | put_char..jsr s|
000007B0: 65 6E 64 5F 6E 61 6D 65  09 09 3B 73 65 6E 64 20  |end_name..;send |
000007C0: 6E 61 6D 65 20 74 6F 20  61 6D 69 67 61 0A 0A 09  |name to amiga...|
000007D0: 6C 64 61 20 34 33 09 09  09 3B 73 74 61 72 74 20  |lda 43...;start |
000007E0: 61 64 64 72 65 73 73 0A  09 73 74 61 20 61 64 64  |address..sta add|
000007F0: 72 0A 09 6C 64 61 20 34  34 0A 09 73 74 61 20 61  |r..lda 44..sta a|
00000800: 64 64 72 2B 31 0A 0A 09  73 65 63 09 09 09 3B 63  |ddr+1...sec...;c|
00000810: 61 6C 63 75 6C 61 74 65  20 6C 65 6E 67 68 74 0A  |alculate lenght.|
00000820: 09 6C 64 61 20 34 35 0A  09 73 62 63 20 61 64 64  |.lda 45..sbc add|
00000830: 72 0A 09 73 74 61 20 6C  65 6E 0A 09 6C 64 61 20  |r..sta len..lda |
00000840: 34 36 0A 09 73 62 63 20  61 64 64 72 2B 31 0A 09  |46..sbc addr+1..|
00000850: 73 74 61 20 6C 65 6E 2B  31 0A 0A 09 6C 64 61 20  |sta len+1...lda |
00000860: 6C 65 6E 2B 31 09 09 09  3B 73 65 6E 64 20 6C 65  |len+1...;send le|
00000870: 6E 67 68 74 20 21 55 50  50 45 52 21 20 62 79 74  |nght !UPPER! byt|
00000880: 65 20 0A 09 6A 73 72 20  70 75 74 5F 63 68 61 72  |e ..jsr put_char|
00000890: 0A 09 6C 64 61 20 6C 65  6E 09 09 09 3B 73 65 6E  |..lda len...;sen|
000008A0: 64 20 6C 65 6E 67 68 74  20 21 4C 4F 57 45 52 21  |d lenght !LOWER!|
000008B0: 20 62 79 74 65 0A 09 6A  73 72 20 70 75 74 5F 63  | byte..jsr put_c|
000008C0: 68 61 72 0A 0A 09 6C 64  61 20 61 64 64 72 09 09  |har...lda addr..|
000008D0: 09 3B 73 65 6E 64 20 61  64 64 72 65 73 73 0A 09  |.;send address..|
000008E0: 6A 73 72 20 70 75 74 5F  63 68 61 72 0A 09 6C 64  |jsr put_char..ld|
000008F0: 61 20 61 64 64 72 2B 31  0A 09 6A 73 72 20 70 75  |a addr+1..jsr pu|
00000900: 74 5F 63 68 61 72 0A 0A  09 6C 64 61 20 23 31 31  |t_char...lda #11|
00000910: 09 09 09 3B 62 6C 61 6E  63 6B 20 73 63 72 65 65  |...;blanck scree|
00000920: 6E 0A 09 73 74 61 20 35  33 32 36 35 0A 09 6C 64  |n..sta 53265..ld|
00000930: 61 20 23 24 33 36 09 09  09 3B 62 61 73 69 63 20  |a #$36...;basic |
00000940: 52 4F 4D 20 6F 66 66 0A  09 73 74 61 20 24 30 31  |ROM off..sta $01|
00000950: 0A 0A 09 6C 64 79 20 23  24 30 30 0A 73 61 76 65  |...ldy #$00.save|
00000960: 5F 6C 6F 6F 70 0A 09 6C  64 61 20 28 61 64 64 72  |_loop..lda (addr|
00000970: 29 2C 79 09 09 3B 67 65  74 20 63 68 61 72 20 66  |),y..;get char f|
00000980: 72 6F 6D 20 6D 65 6D 6F  72 79 0A 09 6A 73 72 20  |rom memory..jsr |
00000990: 70 75 74 5F 63 68 61 72  09 09 3B 73 65 6E 64 20  |put_char..;send |
000009A0: 69 74 20 74 6F 20 61 6D  69 67 61 0A 0A 09 69 6E  |it to amiga...in|
000009B0: 63 20 24 64 30 32 30 0A  09 64 65 63 20 24 64 30  |c $d020..dec $d0|
000009C0: 32 30 0A 0A 09 69 6E 63  20 61 64 64 72 09 09 09  |20...inc addr...|
000009D0: 3B 69 6E 63 72 65 6D 65  6E 74 20 70 6F 69 6E 74  |;increment point|
000009E0: 65 72 20 6C 6F 77 65 72  20 62 79 74 65 0A 09 62  |er lower byte..b|
000009F0: 6E 65 20 73 5F 63 68 6B  5F 6C 65 6E 09 09 3B 6E  |ne s_chk_len..;n|
00000A00: 75 6C 6C 20 3F 2C 20 6E  6F 20 2D 3E 20 73 5F 63  |ull ?, no -> s_c|
00000A10: 68 6B 5F 6C 65 6E 0A 09  69 6E 63 20 61 64 64 72  |hk_len..inc addr|
00000A20: 2B 31 09 09 3B 61 6E 64  20 75 70 70 65 72 20 62  |+1..;and upper b|
00000A30: 79 74 65 0A 73 5F 63 68  6B 5F 6C 65 6E 0A 09 6C  |yte.s_chk_len..l|
00000A40: 64 61 20 61 64 64 72 2B  31 0A 09 63 6D 70 20 34  |da addr+1..cmp 4|
00000A50: 36 0A 09 62 6E 65 20 73  61 76 65 5F 6C 6F 6F 70  |6..bne save_loop|
00000A60: 0A 09 6C 64 61 20 61 64  64 72 0A 09 63 6D 70 20  |..lda addr..cmp |
00000A70: 34 35 0A 09 62 6E 65 20  73 61 76 65 5F 6C 6F 6F  |45..bne save_loo|
00000A80: 70 0A 0A 09 6C 64 61 20  23 24 33 37 09 09 09 3B  |p...lda #$37...;|
00000A90: 62 61 73 69 63 20 52 4F  4D 20 6F 6E 0A 09 73 74  |basic ROM on..st|
00000AA0: 61 20 24 30 31 0A 09 6C  64 61 20 23 32 37 09 09  |a $01..lda #27..|
00000AB0: 09 3B 73 63 72 65 65 6E  20 74 6F 20 6E 6F 72 6D  |.;screen to norm|
00000AC0: 61 6C 0A 09 73 74 61 20  35 33 32 36 35 0A 0A 09  |al..sta 53265...|
00000AD0: 63 6C 69 0A 09 6A 6D 70  20 24 61 34 37 34 09 09  |cli..jmp $a474..|
00000AE0: 09 3B 62 61 63 6B 20 74  6F 20 62 61 73 69 63 0A  |.;back to basic.|
00000AF0: 0A 3B 20 6C 6F 61 64 20  6D 61 69 6E 20 2D 2D 2D  |.; load main ---|
00000B00: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |----------------|
00000B10: 2D 2D 2D 2D 2D 2D 2D 2D  0A 0A 6C 6F 61 64 5F 6D  |--------..load_m|
00000B20: 61 69 6E 09 70 68 61 09  09 09 3B 70 75 73 68 20  |ain.pha...;push |
00000B30: 61 63 63 75 0A 09 6C 64  61 20 46 41 09 09 09 3B  |accu..lda FA...;|
00000B40: 67 65 74 20 64 65 76 69  63 65 20 6E 75 6D 62 65  |get device numbe|
00000B50: 72 0A 09 63 6D 70 20 23  37 0A 09 62 65 71 20 79  |r..cmp #7..beq y|
00000B60: 65 73 5F 37 09 09 09 3B  37 20 3F 2C 79 65 73 20  |es_7...;7 ?,yes |
00000B70: 2D 3E 20 79 65 73 5F 37  0A 09 70 6C 61 09 09 09  |-> yes_7..pla...|
00000B80: 3B 70 75 6C 6C 20 61 63  63 75 0A 09 6A 6D 70 20  |;pull accu..jmp |
00000B90: 6F 72 67 5F 49 4C 4F 41  44 09 09 3B 6E 6F 74 20  |org_ILOAD..;not |
00000BA0: 37 20 2D 3E 20 6F 72 67  69 6E 61 6C 20 6C 6F 61  |7 -> orginal loa|
00000BB0: 64 0A 0A 79 65 73 5F 37  09 6A 73 72 20 63 68 6B  |d..yes_7.jsr chk|
00000BC0: 5F 6E 61 6D 65 09 09 3B  63 68 65 63 6B 20 6E 61  |_name..;check na|
00000BD0: 6D 65 20 6C 65 6E 67 68  74 0A 09 6C 64 79 20 23  |me lenght..ldy #|
00000BE0: 30 0A 09 6C 64 61 20 28  46 4E 41 44 52 29 2C 79  |0..lda (FNADR),y|
00000BF0: 09 09 3B 67 65 74 20 66  69 72 73 74 20 63 68 61  |..;get first cha|
00000C00: 72 20 6F 66 20 6E 61 6D  65 0A 09 63 6D 70 20 23  |r of name..cmp #|
00000C10: 33 36 09 09 09 3B 69 66  20 69 74 20 27 24 27 0A  |36...;if it '$'.|
00000C20: 09 62 6E 65 20 6C 6F 61  64 09 09 09 3B 6E 6F 20  |.bne load...;no |
00000C30: 2D 3E 20 6C 6F 61 64 0A  09 6A 6D 70 20 6C 6F 61  |-> load..jmp loa|
00000C40: 64 5F 64 69 72 09 09 3B  79 65 73 20 2D 3E 20 6C  |d_dir..;yes -> l|
00000C50: 6F 61 64 5F 64 69 72 0A  0A 3B 20 6C 6F 61 64 20  |oad_dir..; load |
00000C60: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |----------------|
00000C70: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |----------------|
00000C80: 0A 0A 6C 6F 61 64 09 73  65 69 09 09 09 3B 6E 6F  |..load.sei...;no|
00000C90: 20 69 6E 74 65 72 72 75  70 74 73 0A 09 6A 73 72  | interrupts..jsr|
00000CA0: 20 70 6F 72 74 5F 70 75  74 09 09 3B 70 6F 72 74  | port_put..;port|
00000CB0: 20 6F 75 74 70 75 74 0A  09 6C 64 61 20 23 4C 4F  | output..lda #LO|
00000CC0: 41 44 5F 63 6F 64 65 0A  09 6A 73 72 20 70 75 74  |AD_code..jsr put|
00000CD0: 5F 63 68 61 72 09 09 3B  73 65 6E 64 20 4C 4F 41  |_char..;send LOA|
00000CE0: 44 5F 63 6F 64 65 20 74  6F 20 61 6D 69 67 61 0A  |D_code to amiga.|
00000CF0: 09 6A 73 72 20 73 65 6E  64 5F 6E 61 6D 65 09 09  |.jsr send_name..|
00000D00: 3B 73 65 6E 64 20 6E 61  6D 65 20 74 6F 20 61 6D  |;send name to am|
00000D10: 69 67 61 0A 09 6A 73 72  20 73 65 61 72 63 5F 6D  |iga..jsr searc_m|
00000D20: 09 09 3B 70 72 69 6E 74  20 73 65 61 72 63 68 69  |..;print searchi|
00000D30: 6E 67 20 66 6F 72 20 27  6E 61 6D 65 27 20 6D 65  |ng for 'name' me|
00000D40: 73 73 61 67 65 0A 09 6A  73 72 20 70 6F 72 74 5F  |ssage..jsr port_|
00000D50: 67 65 74 09 09 3B 70 6F  72 74 20 69 6E 70 75 74  |get..;port input|
00000D60: 0A 09 6A 73 72 20 67 65  74 5F 63 68 61 72 09 09  |..jsr get_char..|
00000D70: 3B 67 65 74 20 6C 6F 77  65 72 20 6C 65 6E 67 68  |;get lower lengh|
00000D80: 74 0A 09 73 74 61 20 6C  65 6E 09 09 09 3B 73 74  |t..sta len...;st|
00000D90: 6F 72 65 20 69 74 0A 09  6A 73 72 20 67 65 74 5F  |ore it..jsr get_|
00000DA0: 63 68 61 72 09 09 3B 67  65 74 20 75 70 70 65 72  |char..;get upper|
00000DB0: 20 6C 65 6E 67 68 74 0A  09 73 74 61 20 6C 65 6E  | lenght..sta len|
00000DC0: 2B 31 09 09 09 3B 73 74  6F 72 65 20 69 74 0A 0A  |+1...;store it..|
00000DD0: 09 6C 64 61 20 6C 65 6E  09 09 09 3B 63 68 65 63  |.lda len...;chec|
00000DE0: 6B 20 6C 65 6E 67 68 74  0A 09 62 6E 65 20 6C 65  |k lenght..bne le|
00000DF0: 6E 5F 6E 6F 74 5F 30 0A  09 6C 64 61 20 6C 65 6E  |n_not_0..lda len|
00000E00: 2B 31 0A 09 62 6E 65 20  6C 65 6E 5F 6E 6F 74 5F  |+1..bne len_not_|
00000E10: 30 09 09 3B 69 66 20 6E  6F 74 20 6E 75 6C 6C 20  |0..;if not null |
00000E20: 2D 3E 20 6C 65 6E 5F 6E  6F 74 5F 30 0A 0A 09 6C  |-> len_not_0...l|
00000E30: 64 78 20 23 65 5F 66 6E  66 09 09 3B 65 72 72 6F  |dx #e_fnf..;erro|
00000E40: 72 20 66 69 6C 65 20 6E  6F 74 20 66 6F 75 6E 64  |r file not found|
00000E50: 0A 09 63 6C 69 0A 09 6A  6D 70 20 28 49 45 52 52  |..cli..jmp (IERR|
00000E60: 4F 52 29 09 09 3B 70 72  69 6E 74 20 69 74 0A 6C  |OR)..;print it.l|
00000E70: 65 6E 5F 6E 6F 74 5F 30  0A 09 6A 73 72 20 6C 6F  |en_not_0..jsr lo|
00000E80: 61 64 5F 6D 09 09 3B 70  72 69 6E 74 20 6C 6F 61  |ad_m..;print loa|
00000E90: 64 69 6E 67 20 6D 65 73  73 61 67 65 0A 09 6A 73  |ding message..js|
00000EA0: 72 20 67 65 74 5F 63 68  61 72 09 09 3B 67 65 74  |r get_char..;get|
00000EB0: 20 6C 6F 77 65 72 20 61  64 64 72 65 73 73 0A 09  | lower address..|
00000EC0: 73 74 61 20 61 64 64 72  09 09 09 3B 73 74 6F 72  |sta addr...;stor|
00000ED0: 65 20 69 74 0A 09 6A 73  72 20 67 65 74 5F 63 68  |e it..jsr get_ch|
00000EE0: 61 72 09 09 3B 67 65 74  20 75 70 70 65 72 20 61  |ar..;get upper a|
00000EF0: 64 64 72 65 73 73 0A 09  73 74 61 20 61 64 64 72  |ddress..sta addr|
00000F00: 2B 31 09 09 3B 73 74 6F  72 65 20 69 74 0A 0A 09  |+1..;store it...|
00000F10: 63 6C 63 0A 09 6C 64 61  20 61 64 64 72 09 09 09  |clc..lda addr...|
00000F20: 3B 63 61 6C 63 75 6C 61  74 65 20 65 6E 64 20 61  |;calculate end a|
00000F30: 64 64 72 65 73 73 0A 09  61 64 63 20 6C 65 6E 0A  |ddress..adc len.|
00000F40: 09 73 74 61 20 6C 65 6E  0A 09 6C 64 61 20 61 64  |.sta len..lda ad|
00000F50: 64 72 2B 31 0A 09 61 64  63 20 6C 65 6E 2B 31 0A  |dr+1..adc len+1.|
00000F60: 09 73 74 61 20 6C 65 6E  2B 31 0A 0A 09 6C 64 61  |.sta len+1...lda|
00000F70: 20 23 31 31 09 09 09 3B  62 6C 61 6E 63 6B 20 73  | #11...;blanck s|
00000F80: 63 72 65 65 6E 0A 09 73  74 61 20 35 33 32 36 35  |creen..sta 53265|
00000F90: 0A 09 6C 64 79 20 23 24  30 30 0A 6C 6F 61 64 5F  |..ldy #$00.load_|
00000FA0: 6C 6F 6F 70 0A 09 6A 73  72 20 67 65 74 5F 63 68  |loop..jsr get_ch|
00000FB0: 61 72 09 09 3B 67 65 74  20 63 68 61 72 20 66 72  |ar..;get char fr|
00000FC0: 6F 6D 20 61 6D 69 67 61  0A 09 73 74 61 20 28 61  |om amiga..sta (a|
00000FD0: 64 64 72 29 2C 79 09 09  3B 73 74 6F 72 65 20 69  |ddr),y..;store i|
00000FE0: 74 20 74 6F 20 6D 65 6D  6F 72 79 0A 0A 09 69 6E  |t to memory...in|
00000FF0: 63 20 24 64 30 32 30 0A  09 64 65 63 20 24 64 30  |c $d020..dec $d0|
00001000: 32 30 0A 0A 09 69 6E 63  20 61 64 64 72 09 09 09  |20...inc addr...|
00001010: 3B 69 6E 63 72 65 6D 65  6E 74 20 6C 6F 77 65 72  |;increment lower|
00001020: 20 62 79 74 65 0A 09 62  6E 65 20 63 68 6B 5F 6C  | byte..bne chk_l|
00001030: 65 6E 09 09 3B 6E 75 6C  6C 20 3F 2C 20 6E 6F 20  |en..;null ?, no |
00001040: 2D 3E 20 63 68 6B 5F 6C  65 6E 0A 09 69 6E 63 20  |-> chk_len..inc |
00001050: 61 64 64 72 2B 31 0A 63  68 6B 5F 6C 65 6E 0A 09  |addr+1.chk_len..|
00001060: 6C 64 61 20 61 64 64 72  2B 31 0A 09 63 6D 70 20  |lda addr+1..cmp |
00001070: 6C 65 6E 2B 31 0A 09 62  6E 65 20 6C 6F 61 64 5F  |len+1..bne load_|
00001080: 6C 6F 6F 70 0A 09 6C 64  61 20 61 64 64 72 0A 09  |loop..lda addr..|
00001090: 63 6D 70 20 6C 65 6E 0A  09 62 6E 65 20 6C 6F 61  |cmp len..bne loa|
000010A0: 64 5F 6C 6F 6F 70 0A 0A  09 6C 64 61 20 23 32 37  |d_loop...lda #27|
000010B0: 09 09 09 3B 73 63 72 65  65 6E 20 74 6F 20 6E 6F  |...;screen to no|
000010C0: 72 6D 61 6C 0A 09 73 74  61 20 35 33 32 36 35 0A  |rmal..sta 53265.|
000010D0: 0A 09 6C 64 61 20 6C 65  6E 09 09 09 3B 65 6E 64  |..lda len...;end|
000010E0: 20 61 64 64 72 65 73 73  0A 09 73 74 61 20 34 35  | address..sta 45|
000010F0: 0A 09 6C 64 61 20 6C 65  6E 2B 31 0A 09 73 74 61  |..lda len+1..sta|
00001100: 20 34 36 0A 09 6A 73 72  20 34 32 32 39 31 0A 0A  | 46..jsr 42291..|
00001110: 09 63 6C 69 0A 09 6A 6D  70 20 24 61 34 37 34 09  |.cli..jmp $a474.|
00001120: 09 09 3B 62 61 63 6B 20  74 6F 20 62 61 73 69 63  |..;back to basic|
00001130: 0A 0A 3B 20 70 6F 72 74  20 70 75 74 20 2D 2D 2D  |..; port put ---|
00001140: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |----------------|
00001150: 2D 2D 2D 2D 2D 2D 2D 2D  2D 0A 0A 70 6F 72 74 5F  |---------..port_|
00001160: 70 75 74 09 6C 64 61 20  23 24 66 66 09 09 09 3B  |put.lda #$ff...;|
00001170: 70 6F 72 74 20 6F 75 74  70 75 74 0A 09 73 74 61  |port output..sta|
00001180: 20 24 64 64 30 33 0A 09  6C 64 61 20 24 64 64 30  | $dd03..lda $dd0|
00001190: 64 0A 09 72 74 73 0A 0A  3B 20 70 6F 72 74 20 67  |d..rts..; port g|
000011A0: 65 74 20 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |et -------------|
000011B0: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 0A  |---------------.|
000011C0: 0A 70 6F 72 74 5F 67 65  74 09 6C 64 61 20 23 24  |.port_get.lda #$|
000011D0: 30 30 09 09 09 3B 70 6F  72 74 20 69 6E 70 75 74  |00...;port input|
000011E0: 0A 09 73 74 61 20 24 64  64 30 33 0A 09 72 74 73  |..sta $dd03..rts|
000011F0: 0A 0A 3B 20 69 6E 69 74  20 70 6F 72 74 20 2D 2D  |..; init port --|
00001200: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |----------------|
00001210: 2D 2D 2D 2D 2D 2D 2D 2D  2D 0A 0A 69 6E 69 74 5F  |---------..init_|
00001220: 70 6F 72 74 09 6C 64 61  20 24 64 64 30 32 09 09  |port.lda $dd02..|
00001230: 09 3B 69 6E 69 74 20 70  6F 72 74 0A 09 6F 72 61  |.;init port..ora|
00001240: 20 23 24 30 34 0A 09 73  74 61 20 24 64 64 30 32  | #$04..sta $dd02|
00001250: 0A 09 6C 64 61 20 24 64  64 30 30 0A 09 61 6E 64  |..lda $dd00..and|
00001260: 20 23 24 66 62 0A 09 73  74 61 20 24 64 64 30 30  | #$fb..sta $dd00|
00001270: 0A 09 72 74 73 0A 0A 3B  70 75 74 20 63 68 61 72  |..rts..;put char|
00001280: 20 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  | ---------------|
00001290: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 0A 0A  |--------------..|
000012A0: 70 75 74 5F 63 68 61 72  09 73 74 61 20 24 64 64  |put_char.sta $dd|
000012B0: 30 31 09 09 09 3B 73 65  6E 64 20 63 68 61 72 0A  |01...;send char.|
000012C0: 70 75 74 5F 77 61 69 74  09 6C 64 61 20 23 24 31  |put_wait.lda #$1|
000012D0: 30 0A 09 62 69 74 20 24  64 64 30 64 09 09 09 3B  |0..bit $dd0d...;|
000012E0: 63 6C 65 61 72 20 74 6F  20 73 65 6E 64 20 6E 65  |clear to send ne|
000012F0: 78 74 20 63 68 61 72 20  3F 0A 09 62 65 71 20 70  |xt char ?..beq p|
00001300: 75 74 5F 77 61 69 74 0A  09 72 74 73 0A 0A 3B 20  |ut_wait..rts..; |
00001310: 67 65 74 20 63 68 61 72  20 2D 2D 2D 2D 2D 2D 2D  |get char -------|
00001320: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |----------------|
00001330: 2D 2D 2D 2D 2D 0A 0A 67  65 74 5F 63 68 61 72 09  |-----..get_char.|
00001340: 6C 64 61 20 23 24 31 30  0A 09 62 69 74 20 24 64  |lda #$10..bit $d|
00001350: 64 30 64 09 09 09 3B 77  61 69 74 20 66 6F 72 20  |d0d...;wait for |
00001360: 63 68 61 72 0A 09 62 65  71 20 67 65 74 5F 63 68  |char..beq get_ch|
00001370: 61 72 0A 09 6C 64 61 20  24 64 64 30 31 09 09 09  |ar..lda $dd01...|
00001380: 3B 67 65 74 20 69 74 0A  09 72 74 73 0A 0A 3B 20  |;get it..rts..; |
00001390: 6C 6F 61 64 20 64 69 72  20 2D 2D 2D 2D 2D 2D 2D  |load dir -------|
000013A0: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |----------------|
000013B0: 2D 2D 2D 2D 2D 0A 0A 6C  6F 61 64 5F 64 69 72 09  |-----..load_dir.|
000013C0: 6A 73 72 20 70 6F 72 74  5F 70 75 74 09 09 3B 70  |jsr port_put..;p|
000013D0: 6F 72 74 20 6F 75 74 70  75 74 0A 09 6C 64 61 20  |ort output..lda |
000013E0: 23 44 49 52 5F 63 6F 64  65 09 09 3B 64 69 72 65  |#DIR_code..;dire|
000013F0: 63 74 6F 72 79 20 63 6F  64 65 0A 09 6A 73 72 20  |ctory code..jsr |
00001400: 70 75 74 5F 63 68 61 72  0A 09 6A 73 72 20 70 6F  |put_char..jsr po|
00001410: 72 74 5F 67 65 74 09 09  3B 70 6F 72 74 20 69 6E  |rt_get..;port in|
00001420: 70 75 74 0A 64 69 72 5F  6C 6F 6F 70 09 6A 73 72  |put.dir_loop.jsr|
00001430: 20 67 65 74 5F 63 68 61  72 09 09 3B 67 65 74 20  | get_char..;get |
00001440: 63 68 61 72 0A 09 62 65  71 20 64 69 72 5F 65 6E  |char..beq dir_en|
00001450: 64 09 09 3B 65 6E 64 20  3F 2C 20 79 65 73 20 2D  |d..;end ?, yes -|
00001460: 3E 20 64 69 72 5F 65 6E  64 0A 09 6A 73 72 20 43  |> dir_end..jsr C|
00001470: 48 52 4F 55 54 09 09 3B  70 72 69 6E 74 20 69 74  |HROUT..;print it|
00001480: 0A 09 6A 6D 70 20 64 69  72 5F 6C 6F 6F 70 0A 64  |..jmp dir_loop.d|
00001490: 69 72 5F 65 6E 64 09 63  6C 69 0A 09 6A 6D 70 20  |ir_end.cli..jmp |
000014A0: 24 61 34 37 34 09 09 09  3B 62 61 63 6B 20 74 6F  |$a474...;back to|
000014B0: 20 62 61 73 69 63 0A 0A  3B 20 64 61 74 61 20 2D  | basic..; data -|
000014C0: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 2D  |----------------|
000014D0: 2D 2D 2D 2D 2D 2D 2D 2D  2D 2D 2D 2D 2D 2D 2D 0A  |---------------.|
000014E0: 0A 6D 5F 63 72 09 64 62  09 27 4A 4B 2D 4E 45 54  |.m_cr.db.'JK-NET|
000014F0: 20 56 30 2E 36 20 28 43  29 20 49 4E 46 49 4E 49  | V0.6 (C) INFINI|
00001500: 54 59 20 31 39 39 33 2C  39 34 27 2C 31 33 2C 30  |TY 1993,94',13,0|
00001510: 0A 09 64 62 09 30 0A 1A  1A 1A 1A 1A 1A 1A 1A 1A  |..db.0..........|
00001520: 1A 1A 1A 1A 1A 1A 1A 1A  1A 1A 1A 1A 1A 1A 1A 1A  |................|
00001530: 1A 1A 1A 1A 1A 1A 1A 1A  1A 1A 1A 1A 1A 1A 1A 1A  |................|
00001540: 1A 1A 1A 1A 1A 1A 1A 1A  1A 1A 1A 1A 1A 1A 1A 1A  |................|
00001550: 1A 1A 1A 1A 1A 1A 1A 1A  1A 1A 1A 1A 1A 1A 1A 1A  |................|
00001560: 1A 1A 1A 1A 1A 1A 1A 1A  1A 1A 1A 1A 1A 1A 1A 1A  |................|
00001570: 1A 1A 1A 1A 1A 1A 1A 1A  1A 1A 1A 1A 1A 1A 1A 1A  |................|
.;JK-NET V0.6..;COPYRIGHT BY INFINITY 19
93,94...FNLEN.EQU.$B7..;FILE NAME LENGHT
.FA.EQU.$BA..;DEVICE NUMBER.FNADR.EQU.$B
B..;NAME ADDRESS..IERROR.EQU.$0300..;ERR
OR.ILOAD.EQU.$0330..;LOAD.ISAVE.EQU.$033
2..;SAVE..CHKIN.EQU.$FFC6..;OPEN FOR INP
UT.CHKOUT.EQU.$FFC9..;OPEN FOR OUTPUT .C
HRIN.EQU.$FFCF..;GET CHAR FROM INPUT.CHR
OUT.EQU.$FFD2..;PUT CHAR TO OUTPUT..ORG_
ILOAD.EQU.$F4A5..;ORGINAL LOAD.ORG_ISAVE
.EQU.$F5ED..;ORGINAL SAVE..SEARC_M.EQU.$
F5AF..;PRINT SEARCHING FOR 'NAME' MESSAG
E.LOAD_M.EQU.$F5D2..;PRINT LOADING MESSA
GE.SAVE_M.EQU.$F68F..;PRINT SAVING 'NAME
' MESSAGE.PRINT_STR.EQU.$AB1E..;PRINT ST
RING ENDING NULL..E_FNF.EQU.$04..;FILE N
OT FOUND.E_MFN.EQU.$08..;MISSING FILE NA
ME..ADDR.EQU.$FC..;START ADDRESS.LEN.EQU
.$FE..;LENGHT AND END ADDRESS..LOAD_CODE
.EQU.$01.SAVE_CODE.EQU.$02.DIR_CODE.EQU.
$03.QUIT_CODE.EQU.$04....*.EQU.52780..; 
MAIN --------------------------------...
LDA #<LOAD_MAIN..;INSTALL JK-NET..STA IL
OAD..LDA #>LOAD_MAIN..STA ILOAD+1..LDA #
<SAVE_MAIN..STA ISAVE..LDA #>SAVE_MAIN..
STA ISAVE+1...JSR INIT_PORT..;INIT_PORT.
..LDA #<M_CR..LDY #>M_CR..JMP PRINT_STR.
.;PRINT COPYRIGHT..; CHK NAME ----------
------------------..CHK_NAME.LDA FNLEN..
.;CHECK FILE NAME LENGHT..BNE NOT_0...;N
ULL ?,NO -> NOT_0..PLA..PLA..LDX #E_MFN.
.;MISSIGN FILE NAME..JMP (IERROR)..;ERRO
R.NOT_0.CMP #17..BCC NOT_16..;OVER 16 ?,
 NO -> NOT_16..LDA #16..STA FNLEN.NOT_16
..RTS..; SEND NAME ---------------------
------..SEND_NAME.LDY #0...;SEND NAME TO
 AMIGA.SEND_LOOP.LDA (FNADR),Y..JSR PUT_
CHAR..INY..CPY FNLEN..BNE SEND_LOOP..LDA
 #32.C_S_NAME..CPY #16..BEQ NAME_SENT..J
SR PUT_CHAR..INY..JMP C_S_NAME.NAME_SENT
..RTS..; SAVE MAIN ---------------------
------..SAVE_MAIN.PHA...;PUSH ACCU..LDA 
FA...;DEVICE NUMBER..CMP #7..BEQ S_YES_7
..;7 ?,YES -> S_YES_7..PLA..JMP ORG_ISAV
E..;ORGINAL SAVE..S_YES_7.SEI...;NO INTE
RRUPTS..JSR CHK_NAME..;CHECK NAME LENGHT
..JSR SAVE_M..;PRINT SAVING 'NAME' MESSA
GE..JSR PORT_PUT..;PORT OUTPUT..LDA #SAV
E_CODE..;SAVE_CODE TO AMIGA..JSR PUT_CHA
R..JSR SEND_NAME..;SEND NAME TO AMIGA...
LDA 43...;START ADDRESS..STA ADDR..LDA 4
4..STA ADDR+1...SEC...;CALCULATE LENGHT.
.LDA 45..SBC ADDR..STA LEN..LDA 46..SBC 
ADDR+1..STA LEN+1...LDA LEN+1...;SEND LE
NGHT !UPPER! BYTE ..JSR PUT_CHAR..LDA LE
N...;SEND LENGHT !LOWER! BYTE..JSR PUT_C
HAR...LDA ADDR...;SEND ADDRESS..JSR PUT_
CHAR..LDA ADDR+1..JSR PUT_CHAR...LDA #11
...;BLANCK SCREEN..STA 53265..LDA #$36..
.;BASIC ROM OFF..STA $01...LDY #$00.SAVE
_LOOP..LDA (ADDR),Y..;GET CHAR FROM MEMO
RY..JSR PUT_CHAR..;SEND IT TO AMIGA...IN
C $D020..DEC $D020...INC ADDR...;INCREME
NT POINTER LOWER BYTE..BNE S_CHK_LEN..;N
ULL ?, NO -> S_CHK_LEN..INC ADDR+1..;AND
 UPPER BYTE.S_CHK_LEN..LDA ADDR+1..CMP 4
6..BNE SAVE_LOOP..LDA ADDR..CMP 45..BNE 
SAVE_LOOP...LDA #$37...;BASIC ROM ON..ST
A $01..LDA #27...;SCREEN TO NORMAL..STA 
53265...CLI..JMP $A474...;BACK TO BASIC.
.; LOAD MAIN ---------------------------
..LOAD_MAIN.PHA...;PUSH ACCU..LDA FA...;
GET DEVICE NUMBER..CMP #7..BEQ YES_7...;
7 ?,YES -> YES_7..PLA...;PULL ACCU..JMP 
ORG_ILOAD..;NOT 7 -> ORGINAL LOAD..YES_7
.JSR CHK_NAME..;CHECK NAME LENGHT..LDY #
0..LDA (FNADR),Y..;GET FIRST CHAR OF NAM
E..CMP #36...;IF IT '$'..BNE LOAD...;NO 
-> LOAD..JMP LOAD_DIR..;YES -> LOAD_DIR.
.; LOAD --------------------------------
..LOAD.SEI...;NO INTERRUPTS..JSR PORT_PU
T..;PORT OUTPUT..LDA #LOAD_CODE..JSR PUT
_CHAR..;SEND LOAD_CODE TO AMIGA..JSR SEN
D_NAME..;SEND NAME TO AMIGA..JSR SEARC_M
..;PRINT SEARCHING FOR 'NAME' MESSAGE..J
SR PORT_GET..;PORT INPUT..JSR GET_CHAR..
;GET LOWER LENGHT..STA LEN...;STORE IT..
JSR GET_CHAR..;GET UPPER LENGHT..STA LEN
+1...;STORE IT...LDA LEN...;CHECK LENGHT
..BNE LEN_NOT_0..LDA LEN+1..BNE LEN_NOT_
0..;IF NOT NULL -> LEN_NOT_0...LDX #E_FN
F..;ERROR FILE NOT FOUND..CLI..JMP (IERR
OR)..;PRINT IT.LEN_NOT_0..JSR LOAD_M..;P
RINT LOADING MESSAGE..JSR GET_CHAR..;GET
 LOWER ADDRESS..STA ADDR...;STORE IT..JS
R GET_CHAR..;GET UPPER ADDRESS..STA ADDR
+1..;STORE IT...CLC..LDA ADDR...;CALCULA
TE END ADDRESS..ADC LEN..STA LEN..LDA AD
DR+1..ADC LEN+1..STA LEN+1...LDA #11...;
BLANCK SCREEN..STA 53265..LDY #$00.LOAD_
LOOP..JSR GET_CHAR..;GET CHAR FROM AMIGA
..STA (ADDR),Y..;STORE IT TO MEMORY...IN
C $D020..DEC $D020...INC ADDR...;INCREME
NT LOWER BYTE..BNE CHK_LEN..;NULL ?, NO 
-> CHK_LEN..INC ADDR+1.CHK_LEN..LDA ADDR
+1..CMP LEN+1..BNE LOAD_LOOP..LDA ADDR..
CMP LEN..BNE LOAD_LOOP...LDA #27...;SCRE
EN TO NORMAL..STA 53265...LDA LEN...;END
 ADDRESS..STA 45..LDA LEN+1..STA 46..JSR
 42291...CLI..JMP $A474...;BACK TO BASIC
..; PORT PUT ---------------------------
-..PORT_PUT.LDA #$FF...;PORT OUTPUT..STA
 $DD03..LDA $DD0D..RTS..; PORT GET -----
-----------------------..PORT_GET.LDA #$
00...;PORT INPUT..STA $DD03..RTS..; INIT
 PORT ---------------------------..INIT_
PORT.LDA $DD02...;INIT PORT..ORA #$04..S
TA $DD02..LDA $DD00..AND #$FB..STA $DD00
..RTS..;PUT CHAR -----------------------
------..PUT_CHAR.STA $DD01...;SEND CHAR.
PUT_WAIT.LDA #$10..BIT $DD0D...;CLEAR TO
 SEND NEXT CHAR ?..BEQ PUT_WAIT..RTS..; 
GET CHAR ----------------------------..G
ET_CHAR.LDA #$10..BIT $DD0D...;WAIT FOR 
CHAR..BEQ GET_CHAR..LDA $DD01...;GET IT.
.RTS..; LOAD DIR -----------------------
-----..LOAD_DIR.JSR PORT_PUT..;PORT OUTP
UT..LDA #DIR_CODE..;DIRECTORY CODE..JSR 
PUT_CHAR..JSR PORT_GET..;PORT INPUT.DIR_
LOOP.JSR GET_CHAR..;GET CHAR..BEQ DIR_EN
D..;END ?, YES -> DIR_END..JSR CHROUT..;
PRINT IT..JMP DIR_LOOP.DIR_END.CLI..JMP 
$A474...;BACK TO BASIC..; DATA ---------
-----------------------..M_CR.DB.'JK-NET
 V0.6 (C) INFINITY 1993,94',13,0..DB.0..
........................................
........................................
........................
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL