Rev 922 | Details | Compare with Previous | Last modification | View Log
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 632 | alone | 1 | DEVICE ZXSPECTRUM128 |
| 2 | include "../_sdk/sys_h.asm" |
||
| 3 | include "8080.asm" |
||
| 4 | |||
| 630 | alone | 5 | ; |
| 6 | ; Main driver file for CLINK.ASM |
||
| 7 | ; (for use with LASM.COM) |
||
| 8 | |||
| 9 | ;page 77 |
||
| 10 | ;title 'BDS Clink v1.6 3/86' |
||
| 11 | |||
| 12 | true: equ 0ffffh |
||
| 13 | false: equ not true |
||
| 14 | |||
| 632 | alone | 15 | SLRMAC: equ true;false |
| 16 | LASM: equ not SLRMAC |
||
| 630 | alone | 17 | |
| 632 | alone | 18 | PREREL: equ 0 ;'pre-release', uses current drive/user area |
| 19 | TESTING: equ 0 ;enables printf hack debugging statements |
||
| 20 | TESTING2: equ 0 ;enables the "test" stack-stuffing routine at end |
||
| 21 | TESTING3: equ 0 ;enables fcbs printout diagnostic for obscure debugging |
||
| 630 | alone | 22 | |
| 23 | MARC: equ false ;true if MARC version |
||
| 24 | CPM: equ true ;true for CP/M version |
||
| 633 | alone | 25 | ZSYS: equ false;true ;true if assembling for Z-SYSTEMS version |
| 632 | alone | 26 | ALPHA: equ false ;true for Alpha-C |
| 630 | alone | 27 | |
| 28 | IF NOT CPM |
||
| 29 | ; Assembling NON-CPM version != |
||
| 30 | ENDIF |
||
| 31 | |||
| 632 | alone | 32 | FORCE: equ 1 ;have it work like L2, forcing loading of all funcs |
| 630 | alone | 33 | version: equ '2' ;'x' in v1.xy |
| 34 | |||
| 35 | IF NOT ZSYS |
||
| 36 | update: equ '0' ;'y' in v1.xy |
||
| 37 | ENDIF |
||
| 38 | |||
| 39 | IF ZSYS |
||
| 40 | update: equ '0' ;'y' in v1.xy |
||
| 41 | ENDIF |
||
| 42 | |||
| 43 | trs80: equ 0 ;true if 4200h version of compiler |
||
| 44 | |||
| 45 | codend: equ 19h ;The following 4 addresses are relative |
||
| 633 | alone | 46 | freram: equ 1bh ; to the start of C.CCC (** NOT "ram" **): |
| 630 | alone | 47 | extrns: equ 0015h ;Where address of externals is stored |
| 633 | alone | 48 | cccsiz: equ 0017h ;Where size of C.CCC is stored within C.CCC |
| 630 | alone | 49 | clrex: equ 0041h ;Jump vector to external clearing subroutine |
| 50 | |||
| 51 | ; offsets for key bytes in runtime package: |
||
| 52 | noboot: equ 0011h |
||
| 53 | start: equ 048dh ;startup code |
||
| 54 | lxiloc: equ start+8 |
||
| 55 | |||
| 56 | |||
| 57 | IF MARC |
||
| 58 | mhackl: equ 258h ;where "call marc" goes if -m given |
||
| 59 | thackl: equ 35dh ;where "-t" sequence (ld hl,xxxx nop nop) goes |
||
| 60 | ENDIF |
||
| 61 | |||
| 632 | alone | 62 | ;IF LASM |
| 63 | ;sym |
||
| 64 | ;ENDIF |
||
| 630 | alone | 65 | |
| 66 | IF CPM |
||
| 633 | alone | 67 | ;coninp: equ 1 |
| 68 | ;conout: equ 2 |
||
| 630 | alone | 69 | readbuf: equ 10 |
| 633 | alone | 70 | ;intcon: equ 11 |
| 71 | ;select: equ 14 |
||
| 630 | alone | 72 | openfil: equ 15 |
| 73 | closefil: equ 16 |
||
| 74 | delete: equ 19 |
||
| 75 | rsequen: equ 20 |
||
| 76 | wsequen: equ 21 |
||
| 77 | makfil: equ 22 |
||
| 633 | alone | 78 | ;gdisk: equ 25 |
| 630 | alone | 79 | sdma: equ 26 |
| 633 | alone | 80 | ;sguser: equ 32 |
| 630 | alone | 81 | ENDIF |
| 82 | |||
| 83 | |||
| 634 | alone | 84 | _rrn=0x21 ;shift to random record number in FCB (outsize FCB_sz!!!) |
| 85 | |||
| 86 | |||
| 630 | alone | 87 | ram: equ 0000h ;where CLINK resides while running |
| 88 | dt1siz: equ 1500 ;default ref table (tab1) size |
||
| 89 | |||
| 90 | IF CPM |
||
| 91 | bdos: equ ram+5 ;entry point to bdos |
||
| 632 | alone | 92 | NEDOOSMEMTOP=0xff00;bdosp: equ ram+6 |
| 630 | alone | 93 | fcb: equ ram+5ch |
| 94 | nr: equ fcb+32 |
||
| 95 | ENDIF |
||
| 96 | |||
| 632 | alone | 97 | tpa: equ PROGSTART;ram+100h |
| 630 | alone | 98 | tbuff: equ ram+80h |
| 99 | cr: equ 0dh |
||
| 100 | lf: equ 0ah |
||
| 101 | bell: equ 7 |
||
| 102 | newlin: equ lf |
||
| 103 | tab: equ 9 |
||
| 104 | |||
| 105 | IF MARC |
||
| 106 | m$error: equ 12 |
||
| 107 | m$fsize: equ 30 |
||
| 108 | m$close: equ 6 |
||
| 109 | m$creat: equ 55 |
||
| 110 | m$exit: equ 1 |
||
| 111 | m$memory: equ 5 |
||
| 112 | m$open: equ 2 |
||
| 113 | m$read: equ 3 |
||
| 114 | m$seek: equ 25 |
||
| 115 | m$tell: equ 34 |
||
| 116 | m$unlink: equ 11 |
||
| 117 | m$write: equ 4 |
||
| 118 | m$getcf: equ 19 |
||
| 119 | m$putcf: equ 36 |
||
| 120 | m$ichec: equ 27 |
||
| 121 | m$maxmem: equ 49 |
||
| 122 | msys: equ 50h |
||
| 123 | ENDIF |
||
| 124 | |||
| 125 | |||
| 632 | alone | 126 | ;IF LASM |
| 127 | ;link clinka |
||
| 128 | ;ENDIF |
||
| 630 | alone | 129 | |
| 632 | alone | 130 | org PROGSTART;ram+100h ;start of TPA |
| 131 | begin |
||
| 132 | ;IF SLRMAC |
||
| 930 | alone | 133 | include "clinka.asm" |
| 683 | alone | 134 | include "../_sdk/stdio.asm" |
| 930 | alone | 135 | include "clinkb.asm" ;killable? |
| 632 | alone | 136 | ;ENDIF |
| 630 | alone | 137 | |
| 632 | alone | 138 | end |
| 139 | savebin "clink.com",begin,end-begin |
||
| 140 | |||
| 141 | LABELSLIST "../../us/user.l" |