Metropoli BBS
VIEWER: bios.mac MODE: BINARY (HEX)
==============================================================================================================================================
OFFSET    00 01 02 03 04 05 06 07  08 09 0A 0B 0C 0D 0E 0F  10 11 12 13 14 15 16 17  18 19 1A 1B 1C 1D 1E 1F
----------------------------------------------------------------------------------------------------------------------------------------------
00000000  3B 0D 0A 3B 09 09 09 42  49 4F 53 20 4D 61 63 72  6F 73 0D 0A 3B 0D 0A 3B  09 54 68 65 73 65 20 6D  ;;BIOS Macros;;These m
00000020  61 63 72 6F 73 20 64 65  66 69 6E 65 20 74 68 65  20 69 6E 64 65 74 65 72  66 61 63 65 73 20 74 6F  acros define the indeterfaces to
00000040  20 74 68 65 20 42 49 4F  53 2E 20 20 54 68 65 73  65 20 6D 61 63 72 6F 73  20 61 69 64 20 69 6E 0D   the BIOS.  These macros aid in
00000060  0A 3B 20 6D 61 6B 69 6E  67 20 63 61 6C 6C 73 20  74 6F 20 42 49 4F 53 20  66 72 6F 6D 20 6F 74 68  ; making calls to BIOS from oth
00000080  65 72 20 61 73 73 65 6D  62 6C 79 20 6C 61 6E 67  75 61 67 65 20 72 6F 75  74 69 6E 65 73 2E 20 20  er assembly language routines.  
000000A0  54 68 65 73 65 20 6D 61  63 72 6F 73 0D 0A 3B 20  70 72 6F 76 69 64 65 20  74 68 65 20 63 6F 6D 70  These macros; provide the comp
000000C0  6C 65 74 65 20 69 6E 74  65 72 66 61 63 65 20 74  6F 20 74 68 65 20 70 61  72 74 69 63 75 6C 61 72  lete interface to the particular
000000E0  20 42 49 4F 53 20 66 75  6E 63 74 69 6F 6E 2E 0D  0A 3B 0D 0A 3B 0D 0A 3B  09 09 4C 44 52 45 47 0D   BIOS function.;;;LDREG
00000100  0A 3B 0D 0A 3B 09 54 68  69 73 20 6D 61 63 72 6F  20 69 73 20 61 6E 20 22  69 6E 6E 65 72 22 20 6D  ;;This macro is an "inner" m
00000120  61 63 72 6F 20 66 6F 72  20 74 68 65 20 75 73 65  20 62 79 20 74 68 65 20  42 49 4F 53 20 69 6E 74  acro for the use by the BIOS int
00000140  65 72 66 61 63 65 20 6D  61 63 72 6F 73 2E 0D 0A  3B 20 49 74 20 61 6C 6C  6F 77 73 20 74 68 65 20  erface macros.; It allows the 
00000160  63 61 6C 6C 65 72 20 6F  66 20 61 20 6D 61 63 72  6F 20 74 6F 20 73 70 65  63 69 66 79 20 61 20 72  caller of a macro to specify a r
00000180  65 67 69 73 74 65 72 20  6F 72 20 61 20 6C 69 74  65 72 61 6C 20 76 61 6C  75 65 20 61 73 0D 0A 3B  egister or a literal value as;
000001A0  20 74 68 65 20 70 61 72  61 6D 65 74 65 72 20 74  6F 20 74 68 65 20 6D 61  63 72 6F 2E 20 20 54 68   the parameter to the macro.  Th
000001C0  69 73 20 6D 61 63 72 6F  20 6C 6F 61 64 73 20 74  68 65 20 63 6F 72 72 65  63 74 20 72 65 67 69 73  is macro loads the correct regis
000001E0  74 65 72 20 73 70 65 63  69 66 69 65 64 0D 0A 3B  20 62 79 20 74 68 65 20  63 61 6C 6C 65 72 20 6F  ter specified; by the caller o
00000200  66 20 74 68 65 20 6D 61  63 72 6F 20 77 69 74 68  20 74 68 65 20 63 6F 6E  74 65 6E 74 73 20 6F 66  f the macro with the contents of
00000220  20 74 68 65 20 72 65 67  69 73 74 65 72 2C 20 6C  69 74 65 72 61 6C 20 6F  72 0D 0A 3B 20 6D 65 6D   the register, literal or; mem
00000240  6F 72 79 20 6C 6F 63 61  74 69 6F 6E 20 61 6C 73  6F 20 73 70 65 63 69 66  69 65 64 2E 20 20 4E 6F  ory location also specified.  No
00000260  20 63 6F 64 65 20 77 69  6C 6C 20 62 65 20 67 65  6E 65 72 61 74 65 64 20  69 66 20 74 68 65 20 74   code will be generated if the t
00000280  77 6F 0D 0A 3B 20 70 61  72 61 6D 65 74 65 72 73  20 61 72 65 20 74 68 65  20 73 61 6D 65 2E 0D 0A  wo; parameters are the same.
000002A0  3B 0D 0A 6C 64 72 65 67  09 09 6D 61 63 72 6F 09  09 64 65 73 74 72 65 67  2C 73 6F 75 72 63 65 0D  ;ldregmacrodestreg,source
000002C0  0A 09 09 69 66 64 69 66  09 09 3C 64 65 73 74 72  65 67 3E 2C 3C 73 6F 75  72 63 65 3E 0D 0A 09 09  ifdif<destreg>,<source>
000002E0  6D 6F 76 09 09 64 65 73  74 72 65 67 2C 73 6F 75  72 63 65 0D 0A 09 09 65  6E 64 69 66 0D 0A 09 09  movdestreg,sourceendif
00000300  65 6E 64 6D 0D 0A 3B 0D  0A 3B 09 09 54 53 54 4E  53 45 54 0D 0A 3B 0D 0A  3B 09 54 68 69 73 20 6D  endm;;TSTNSET;;This m
00000320  61 63 72 6F 20 77 69 6C  6C 20 63 6F 6D 70 61 72  65 20 74 68 65 20 76 61  6C 75 65 20 6F 66 20 74  acro will compare the value of t
00000340  77 6F 20 66 69 65 6C 64  73 2C 20 69 66 20 74 68  65 79 20 61 72 65 20 65  71 75 61 6C 20 74 68 65  wo fields, if they are equal the
00000360  0D 0A 3B 20 74 68 69 72  64 20 70 61 72 61 6D 65  74 65 72 20 77 69 6C 6C  20 62 65 20 4F 52 27 64  ; third parameter will be OR'd
00000380  20 69 6E 74 6F 20 41 4C  2E 0D 0A 3B 0D 0A 74 73  74 6E 73 65 74 20 09 6D  61 63 72 6F 09 09 73 72   into AL.;tstnset macrosr
000003A0  63 31 2C 73 72 63 32 2C  6F 72 76 61 6C 0D 0A 09  09 69 66 69 64 6E 09 09  3C 73 72 63 31 3E 2C 3C  c1,src2,orvalifidn<src1>,<
000003C0  73 72 63 32 3E 0D 0A 09  09 6F 72 09 09 61 6C 2C  6F 72 76 61 6C 0D 0A 09  09 65 6E 64 69 66 0D 0A  src2>oral,orvalendif
000003E0  09 09 65 6E 64 6D 0D 0A  3B 0D 0A 3B 09 09 49 52  53 32 33 32 0D 0A 3B 0D  0A 3B 09 54 68 69 73 20  endm;;IRS232;;This 
00000400  6D 61 63 72 6F 20 77 69  6C 6C 20 67 65 6E 65 72  61 74 65 20 61 20 63 61  6C 6C 20 74 6F 20 42 49  macro will generate a call to BI
00000420  4F 53 20 74 6F 20 69 6E  69 74 69 61 6C 69 7A 65  20 74 68 65 20 52 53 32  33 32 20 70 6F 72 74 2E  OS to initialize the RS232 port.
00000440  0D 0A 3B 0D 0A 69 72 73  32 33 32 09 09 6D 61 63  72 6F 09 09 69 6E 69 74  70 61 72 6D 73 2C 6C 69  ;irs232macroinitparms,li
00000460  6E 65 6E 75 6D 0D 0A 09  09 6C 64 72 65 67 09 09  64 78 2C 6C 69 6E 65 6E  75 6D 0D 0A 09 09 6C 64  nenumldregdx,linenumld
00000480  72 65 67 09 09 61 6C 2C  69 6E 69 74 70 61 72 6D  73 0D 0A 09 09 6D 6F 76  09 09 61 68 2C 30 0D 0A  regal,initparmsmovah,0
000004A0  09 09 69 6E 74 09 09 31  34 68 0D 0A 09 09 65 6E  64 6D 0D 0A 3B 0D 0A 3B  09 09 49 52 53 32 33 32  int14hendm;;IRS232
000004C0  41 0D 0A 3B 0D 0A 3B 09  54 68 69 73 20 6D 61 63  72 6F 20 77 69 6C 6C 20  67 65 6E 65 72 61 74 65  A;;This macro will generate
000004E0  20 61 20 63 61 6C 6C 20  74 6F 20 42 49 4F 53 20  74 6F 20 69 6E 69 74 69  61 6C 69 7A 65 20 74 68   a call to BIOS to initialize th
00000500  65 20 52 53 32 33 32 20  70 6F 72 74 2E 0D 0A 3B  20 54 68 69 73 20 6D 61  63 72 6F 20 61 6C 6C 6F  e RS232 port.; This macro allo
00000520  77 73 20 74 68 65 20 66  69 65 6C 64 73 20 74 6F  20 62 65 20 73 70 65 63  69 66 69 65 64 20 74 68  ws the fields to be specified th
00000540  61 74 20 69 6E 69 74 69  61 6C 69 7A 65 20 74 68  65 20 70 6F 72 74 2E 0D  0A 3B 0D 0A 69 72 73 32  at initialize the port.;irs2
00000560  33 32 61 20 09 6D 61 63  72 6F 09 09 62 61 75 64  72 61 74 65 2C 70 61 72  69 74 79 2C 73 74 6F 70  32a macrobaudrate,parity,stop
00000580  62 69 74 73 2C 64 61 74  61 6C 65 6E 2C 6C 69 6E  65 6E 75 6D 0D 0A 09 09  6C 64 72 65 67 09 09 64  bits,datalen,linenumldregd
000005A0  78 2C 6C 69 6E 65 6E 75  6D 0D 0A 09 09 73 75 62  09 09 61 78 2C 61 78 0D  0A 3B 09 09 74 73 74 6E  x,linenumsubax,ax;tstn
000005C0  73 65 74 20 09 62 61 75  64 72 61 74 65 2C 31 31  30 2C 30 30 30 30 30 30  30 30 62 0D 0A 09 09 74  set baudrate,110,00000000bt
000005E0  73 74 6E 73 65 74 20 09  62 61 75 64 72 61 74 65  2C 31 35 30 2C 30 30 31  30 30 30 30 30 62 0D 0A  stnset baudrate,150,00100000b
00000600  09 09 74 73 74 6E 73 65  74 20 09 62 61 75 64 72  61 74 65 2C 33 30 30 2C  30 31 30 30 30 30 30 30  tstnset baudrate,300,01000000
00000620  62 0D 0A 09 09 74 73 74  6E 73 65 74 20 09 62 61  75 64 72 61 74 65 2C 36  30 30 2C 30 31 31 30 30  btstnset baudrate,600,01100
00000640  30 30 30 62 0D 0A 09 09  74 73 74 6E 73 65 74 20  09 62 61 75 64 72 61 74  65 2C 31 32 30 30 2C 31  000btstnset baudrate,1200,1
00000660  30 30 30 30 30 30 30 62  0D 0A 09 09 74 73 74 6E  73 65 74 20 09 62 61 75  64 72 61 74 65 2C 32 34  0000000btstnset baudrate,24
00000680  30 30 2C 31 30 31 30 30  30 30 30 62 0D 0A 09 09  74 73 74 6E 73 65 74 20  09 62 61 75 64 72 61 74  00,10100000btstnset baudrat
000006A0  65 2C 34 38 30 30 2C 31  31 30 30 30 30 30 30 62  0D 0A 09 09 74 73 74 6E  73 65 74 20 09 62 61 75  e,4800,11000000btstnset bau
000006C0  64 72 61 74 65 2C 39 36  30 30 2C 31 31 31 30 30  30 30 30 62 0D 0A 3B 09  09 74 73 74 6E 73 65 74  drate,9600,11100000b;tstnset
000006E0  20 09 70 61 72 69 74 79  2C 6E 6F 6E 65 2C 30 30  30 30 30 30 30 30 62 0D  0A 09 09 74 73 74 6E 73   parity,none,00000000btstns
00000700  65 74 20 09 70 61 72 69  74 79 2C 6F 64 64 2C 30  30 30 30 31 30 30 30 62  0D 0A 09 09 74 73 74 6E  et parity,odd,00001000btstn
00000720  73 65 74 20 09 70 61 72  69 74 79 2C 65 76 65 6E  2C 30 30 30 31 31 30 30  30 62 0D 0A 3B 09 09 74  set parity,even,00011000b;t
00000740  73 74 6E 73 65 74 20 09  73 74 6F 70 62 69 74 73  2C 31 2C 30 30 30 30 30  30 30 30 62 0D 0A 09 09  stnset stopbits,1,00000000b
00000760  74 73 74 6E 73 65 74 20  09 73 74 6F 70 62 69 74  73 2C 32 2C 30 30 30 30  30 31 30 30 62 0D 0A 09  tstnset stopbits,2,00000100b
00000780  09 74 73 74 6E 73 65 74  20 09 64 61 74 61 6C 65  6E 2C 37 2C 30 30 30 30  30 30 31 30 62 0D 0A 09  tstnset datalen,7,00000010b
000007A0  09 74 73 74 6E 73 65 74  20 09 64 61 74 61 6C 65  6E 2C 38 2C 30 30 30 30  30 30 31 31 62 0D 0A 09  tstnset datalen,8,00000011b
000007C0  09 69 6E 74 09 09 31 34  68 0D 0A 09 09 65 6E 64  6D 0D 0A 3B 0D 0A 3B 09  09 53 45 4E 44 43 48 52  int14hendm;;SENDCHR
000007E0  0D 0A 3B 0D 0A 3B 09 54  68 69 73 20 6D 61 63 72  6F 20 77 69 6C 6C 20 73  65 6E 64 20 61 20 63 68  ;;This macro will send a ch
00000800  61 72 61 63 74 65 72 20  6F 76 65 72 20 74 68 65  20 52 53 32 33 32 20 6C  69 6E 65 2E 0D 0A 3B 0D  aracter over the RS232 line.;
00000820  0A 73 65 6E 64 63 68 72  20 09 6D 61 63 72 6F 09  09 63 68 61 72 2C 6C 69  6E 65 6E 75 6D 0D 0A 09  sendchr macrochar,linenum
00000840  09 6C 64 72 65 67 09 09  64 78 2C 6C 69 6E 65 6E  75 6D 0D 0A 09 09 6C 64  72 65 67 09 09 61 6C 2C  ldregdx,linenumldregal,
00000860  63 68 61 72 0D 0A 09 09  6D 6F 76 09 09 61 68 2C  31 0D 0A 09 09 69 6E 74  09 09 31 34 68 0D 0A 09  charmovah,1int14h
00000880  09 65 6E 64 6D 0D 0A 3B  0D 0A 3B 09 09 52 45 43  56 43 48 52 0D 0A 3B 0D  0A 3B 09 54 68 69 73 20  endm;;RECVCHR;;This 
000008A0  6D 61 63 72 6F 20 77 69  6C 6C 20 72 65 63 69 65  76 65 20 61 20 63 68 61  72 61 63 74 65 72 20 66  macro will recieve a character f
000008C0  72 6F 6D 20 74 68 65 20  52 53 32 33 32 20 6C 69  6E 65 2E 0D 0A 3B 0D 0A  72 65 63 76 63 68 72 20  rom the RS232 line.;recvchr 
000008E0  09 6D 61 63 72 6F 09 09  6C 69 6E 65 6E 75 6D 0D  0A 09 09 6C 64 72 65 67  09 09 64 78 2C 6C 69 6E  macrolinenumldregdx,lin
00000900  65 6E 75 6D 0D 0A 09 09  6D 6F 76 09 09 61 68 2C  32 0D 0A 09 09 69 6E 74  09 09 31 34 68 0D 0A 09  enummovah,2int14h
00000920  09 65 6E 64 6D 0D 0A 3B  0D 0A 3B 09 09 43 4F 4D  53 54 41 54 0D 0A 3B 0D  0A 3B 09 54 68 69 73 20  endm;;COMSTAT;;This 
00000940  6D 61 63 72 6F 20 77 69  6C 6C 20 67 65 74 20 74  68 65 20 73 74 61 74 75  73 20 6F 66 20 74 68 65  macro will get the status of the
00000960  20 52 53 32 33 32 20 6C  69 6E 65 2E 0D 0A 3B 0D  0A 63 6F 6D 73 74 61 74  20 09 6D 61 63 72 6F 09   RS232 line.;comstat macro
00000980  09 6C 69 6E 65 6E 75 6D  0D 0A 09 09 6C 64 72 65  67 09 09 64 78 2C 6C 69  6E 65 6E 75 6D 0D 0A 09  linenumldregdx,linenum
000009A0  09 6D 6F 76 09 09 61 68  2C 33 0D 0A 09 09 69 6E  74 09 09 31 34 68 0D 0A  09 09 65 6E 64 6D 0D 0A  movah,3int14hendm
000009C0  3B 0D 0A 3B 09 09 47 45  54 4B 42 43 48 41 52 0D  0A 3B 0D 0A 3B 09 54 68  69 73 20 6D 61 63 72 6F  ;;GETKBCHAR;;This macro
000009E0  20 77 69 6C 6C 20 67 65  74 20 61 20 63 68 61 72  61 63 74 65 72 20 66 72  6F 6D 20 74 68 65 20 6B   will get a character from the k
00000A00  65 79 62 6F 61 72 64 2E  0D 0A 3B 0D 0A 67 65 74  6B 62 63 68 61 72 09 6D  61 63 72 6F 0D 0A 09 09  eyboard.;getkbcharmacro
00000A20  6D 6F 76 09 09 61 68 2C  30 0D 0A 09 09 69 6E 74  09 09 31 36 68 0D 0A 09  09 65 6E 64 6D 0D 0A 3B  movah,0int16hendm;
00000A40  0D 0A 3B 09 09 54 53 54  4B 42 43 48 41 52 0D 0A  3B 0D 0A 3B 09 54 68 69  73 20 6D 61 63 72 6F 20  ;TSTKBCHAR;;This macro 
00000A60  77 69 6C 6C 20 74 65 73  74 20 74 6F 20 73 65 65  20 69 66 20 61 20 63 68  61 72 61 63 74 65 72 20  will test to see if a character 
00000A80  69 73 20 61 76 61 69 6C  61 62 6C 65 20 66 72 6F  6D 20 74 68 65 20 6B 65  79 62 64 2E 0D 0A 3B 0D  is available from the keybd.;
00000AA0  0A 74 73 74 6B 62 63 68  61 72 09 6D 61 63 72 6F  0D 0A 09 09 6D 6F 76 09  09 61 68 2C 31 0D 0A 09  tstkbcharmacromovah,1
00000AC0  09 69 6E 74 09 09 31 36  68 0D 0A 09 09 65 6E 64  6D 0D 0A 3B 0D 0A 3B 09  09 47 45 54 4B 42 53 48  int16hendm;;GETKBSH
00000AE0  49 46 54 0D 0A 3B 0D 0A  3B 09 54 68 69 73 20 6D  61 63 72 6F 20 77 69 6C  6C 20 67 65 74 20 74 68  IFT;;This macro will get th
00000B00  65 20 6B 65 79 62 6F 61  72 64 20 73 68 69 66 74  20 73 74 61 74 65 2E 0D  0A 3B 0D 0A 67 65 74 6B  e keyboard shift state.;getk
00000B20  62 73 68 69 66 74 09 6D  61 63 72 6F 0D 0A 09 09  6D 6F 76 09 09 61 68 2C  32 0D 0A 09 09 69 6E 74  bshiftmacromovah,2int
00000B40  09 09 31 36 68 0D 0A 09  09 65 6E 64 6D 0D 0A 3B  0D 0A 3B 09 09 44 53 4B  52 45 53 45 54 0D 0A 3B  16hendm;;DSKRESET;
00000B60  0D 0A 3B 09 54 68 69 73  20 6D 61 63 72 6F 20 77  69 6C 6C 20 72 65 73 65  74 20 74 68 65 20 64 69  ;This macro will reset the di
00000B80  73 6B 65 74 74 65 20 63  6F 6E 74 72 6F 6C 6C 65  72 2E 0D 0A 3B 0D 0A 64  73 6B 72 65 73 65 74 09  skette controller.;dskreset
00000BA0  6D 61 63 72 6F 0D 0A 09  09 6D 6F 76 09 09 61 68  2C 30 0D 0A 09 09 69 6E  74 09 09 31 36 68 0D 0A  macromovah,0int16h
00000BC0  09 09 65 6E 64 6D 0D 0A  3B 0D 0A 3B 09 09 47 45  54 44 53 4B 53 54 41 54  0D 0A 3B 0D 0A 3B 09 54  endm;;GETDSKSTAT;;T
00000BE0  68 69 73 20 6D 61 63 72  6F 20 77 69 6C 6C 20 67  65 74 20 74 68 65 20 64  69 73 6B 65 74 74 65 20  his macro will get the diskette 
00000C00  73 74 61 74 75 73 20 6F  66 20 74 68 65 20 6C 61  73 74 20 6F 70 65 72 61  74 69 6F 6E 20 70 65 72  status of the last operation per
00000C20  66 6F 72 6D 65 64 2E 0D  0A 3B 0D 0A 67 65 74 64  73 6B 73 74 61 74 09 6D  61 63 72 6F 0D 0A 09 09  formed.;getdskstatmacro
00000C40  6D 6F 76 09 09 61 68 2C  31 0D 0A 09 09 69 6E 74  09 09 31 36 68 0D 0A 09  09 65 6E 64 6D 0D 0A 3B  movah,1int16hendm;
00000C60  0D 0A 3B 09 09 44 53 4B  52 45 41 44 0D 0A 3B 0D  0A 3B 09 54 68 69 73 20  6D 61 63 72 6F 20 77 69  ;DSKREAD;;This macro wi
00000C80  6C 6C 20 72 65 61 64 20  66 72 6F 6D 20 74 68 65  20 64 69 73 6B 65 74 74  65 2E 0D 0A 3B 0D 0A 64  ll read from the diskette.;d
00000CA0  73 6B 72 65 61 64 20 09  6D 61 63 72 6F 09 09 64  72 69 76 65 2C 68 65 61  64 2C 74 72 61 63 6B 2C  skread macrodrive,head,track,
00000CC0  73 65 63 74 6F 72 2C 6E  75 6D 73 65 63 73 2C 62  75 66 66 6F 66 66 0D 0A  09 09 6C 64 72 65 67 09  sector,numsecs,buffoffldreg
00000CE0  09 64 6C 2C 64 72 69 76  65 0D 0A 09 09 6C 64 72  65 67 09 09 64 68 2C 68  65 61 64 0D 0A 09 09 6C  dl,driveldregdh,headl
00000D00  64 72 65 67 09 09 63 68  2C 74 72 61 63 6B 0D 0A  09 09 6C 64 72 65 67 09  09 63 6C 2C 73 65 63 74  dregch,trackldregcl,sect
00000D20  6F 72 0D 0A 09 09 6C 64  72 65 67 09 09 61 6C 2C  6E 75 6D 73 65 63 73 0D  0A 09 09 6C 64 72 65 67  orldregal,numsecsldreg
00000D40  09 09 62 78 2C 62 75 66  66 6F 66 66 0D 0A 09 09  6D 6F 76 09 09 61 68 2C  32 0D 0A 09 09 69 6E 74  bx,buffoffmovah,2int
00000D60  09 09 31 36 68 0D 0A 09  09 65 6E 64 6D 0D 0A 3B  0D 0A 3B 09 09 44 53 4B  57 52 49 54 45 0D 0A 3B  16hendm;;DSKWRITE;
00000D80  0D 0A 3B 09 54 68 69 73  20 6D 61 63 72 6F 20 77  69 6C 6C 20 77 72 69 74  65 20 74 6F 20 74 68 65  ;This macro will write to the
00000DA0  20 64 69 73 6B 65 74 74  65 2E 0D 0A 3B 0D 0A 64  73 6B 77 72 69 74 65 09  6D 61 63 72 6F 09 09 64   diskette.;dskwritemacrod
00000DC0  72 69 76 65 2C 68 65 61  64 2C 74 72 61 63 6B 2C  73 65 63 74 6F 72 2C 6E  75 6D 73 65 63 73 2C 62  rive,head,track,sector,numsecs,b
00000DE0  75 66 66 6F 66 66 0D 0A  09 09 6C 64 72 65 67 09  09 64 6C 2C 64 72 69 76  65 0D 0A 09 09 6C 64 72  uffoffldregdl,driveldr
00000E00  65 67 09 09 64 68 2C 68  65 61 64 0D 0A 09 09 6C  64 72 65 67 09 09 63 68  2C 74 72 61 63 6B 0D 0A  egdh,headldregch,track
00000E20  09 09 6C 64 72 65 67 09  09 63 6C 2C 73 65 63 74  6F 72 0D 0A 09 09 6C 64  72 65 67 09 09 61 6C 2C  ldregcl,sectorldregal,
00000E40  6E 75 6D 73 65 63 73 0D  0A 09 09 6C 64 72 65 67  09 09 62 78 2C 62 75 66  66 6F 66 66 0D 0A 09 09  numsecsldregbx,buffoff
00000E60  6D 6F 76 09 09 61 68 2C  33 0D 0A 09 09 69 6E 74  09 09 31 36 68 0D 0A 09  09 65 6E 64 6D 0D 0A 3B  movah,3int16hendm;
00000E80  0D 0A 3B 09 09 44 53 4B  56 45 52 46 59 0D 0A 3B  0D 0A 3B 09 54 68 69 73  20 6D 61 63 72 6F 20 77  ;DSKVERFY;;This macro w
00000EA0  69 6C 6C 20 76 65 72 69  66 79 20 74 68 65 20 64  69 73 6B 65 74 74 65 2E  0D 0A 3B 0D 0A 64 73 6B  ill verify the diskette.;dsk
00000EC0  76 65 72 66 79 09 6D 61  63 72 6F 09 09 64 72 69  76 65 2C 68 65 61 64 2C  74 72 61 63 6B 2C 73 65  verfymacrodrive,head,track,se
00000EE0  63 74 6F 72 2C 6E 75 6D  73 65 63 73 2C 62 75 66  66 6F 66 66 0D 0A 09 09  6C 64 72 65 67 09 09 64  ctor,numsecs,buffoffldregd
00000F00  6C 2C 64 72 69 76 65 0D  0A 09 09 6C 64 72 65 67  09 09 64 68 2C 68 65 61  64 0D 0A 09 09 6C 64 72  l,driveldregdh,headldr
00000F20  65 67 09 09 63 68 2C 74  72 61 63 6B 0D 0A 09 09  6C 64 72 65 67 09 09 63  6C 2C 73 65 63 74 6F 72  egch,trackldregcl,sector
00000F40  0D 0A 09 09 6C 64 72 65  67 09 09 61 6C 2C 6E 75  6D 73 65 63 73 0D 0A 09  09 6C 64 72 65 67 09 09  ldregal,numsecsldreg
00000F60  62 78 2C 62 75 66 66 6F  66 66 0D 0A 09 09 6D 6F  76 09 09 61 68 2C 34 0D  0A 09 09 69 6E 74 09 09  bx,buffoffmovah,4int
00000F80  31 36 68 0D 0A 09 09 65  6E 64 6D 0D 0A 3B 0D 0A  3B 09 09 44 53 4B 46 4F  52 4D 41 54 0D 0A 3B 0D  16hendm;;DSKFORMAT;
00000FA0  0A 3B 09 54 68 69 73 20  6D 61 63 72 6F 20 77 69  6C 6C 20 66 6F 72 6D 61  74 20 74 68 65 20 64 69  ;This macro will format the di
00000FC0  73 6B 65 74 74 65 2E 0D  0A 3B 0D 0A 64 73 6B 66  6F 72 6D 61 74 09 6D 61  63 72 6F 09 09 64 72 69  skette.;dskformatmacrodri
00000FE0  76 65 2C 68 65 61 64 2C  74 72 61 63 6B 2C 73 65  63 74 6F 72 2C 6E 75 6D  73 65 63 73 2C 62 75 66  ve,head,track,sector,numsecs,buf
00001000  66 6F 66 66 0D 0A 09 09  6C 64 72 65 67 09 09 64  6C 2C 64 72 69 76 65 0D  0A 09 09 6C 64 72 65 67  foffldregdl,driveldreg
00001020  09 09 64 68 2C 68 65 61  64 0D 0A 09 09 6C 64 72  65 67 09 09 63 68 2C 74  72 61 63 6B 0D 0A 09 09  dh,headldregch,track
00001040  6C 64 72 65 67 09 09 63  6C 2C 73 65 63 74 6F 72  0D 0A 09 09 6C 64 72 65  67 09 09 61 6C 2C 6E 75  ldregcl,sectorldregal,nu
00001060  6D 73 65 63 73 0D 0A 09  09 6C 64 72 65 67 09 09  62 78 2C 62 75 66 66 6F  66 66 0D 0A 09 09 6D 6F  msecsldregbx,buffoffmo
00001080  76 09 09 61 68 2C 35 0D  0A 09 09 69 6E 74 09 09  31 36 68 0D 0A 09 09 65  6E 64 6D 0D 0A 3B 0D 0A  vah,5int16hendm;
000010A0  3B 09 09 50 52 4E 54 43  48 41 52 0D 0A 3B 0D 0A  3B 09 54 68 69 73 20 6D  61 63 72 6F 20 77 69 6C  ;PRNTCHAR;;This macro wil
000010C0  6C 20 70 72 69 6E 74 20  61 20 63 68 61 72 61 63  74 65 72 20 6F 6E 20 74  68 65 20 70 72 69 6E 74  l print a character on the print
000010E0  65 72 2E 0D 0A 3B 0D 0A  70 72 6E 74 63 68 61 72  09 6D 61 63 72 6F 09 09  63 68 61 72 2C 70 72 69  er.;prntcharmacrochar,pri
00001100  6E 74 65 72 0D 0A 09 09  6C 64 72 65 67 09 09 61  6C 2C 63 68 61 72 0D 0A  09 09 6C 64 72 65 67 09  nterldregal,charldreg
00001120  09 64 78 2C 70 72 69 6E  74 65 72 0D 0A 09 09 6D  6F 76 09 09 61 68 2C 30  0D 0A 09 09 69 6E 74 09  dx,printermovah,0int
00001140  09 31 37 68 0D 0A 09 09  65 6E 64 6D 0D 0A 3B 0D  0A 3B 09 09 49 4E 49 50  52 4E 54 52 0D 0A 3B 0D  17hendm;;INIPRNTR;
00001160  0A 3B 09 54 68 69 73 20  6D 61 63 72 6F 20 77 69  6C 6C 20 69 6E 69 74 69  61 6C 69 7A 65 20 74 68  ;This macro will initialize th
00001180  65 20 70 72 69 6E 74 65  72 2E 0D 0A 3B 0D 0A 69  6E 69 70 72 6E 74 72 09  6D 61 63 72 6F 09 09 70  e printer.;iniprntrmacrop
000011A0  72 69 6E 74 65 72 0D 0A  09 09 6C 64 72 65 67 09  09 64 78 2C 70 72 69 6E  74 65 72 0D 0A 09 09 6D  rinterldregdx,printerm
000011C0  6F 76 09 09 61 68 2C 31  0D 0A 09 09 69 6E 74 09  09 31 37 68 0D 0A 09 09  65 6E 64 6D 0D 0A 3B 0D  ovah,1int17hendm;
000011E0  0A 3B 09 09 50 52 4E 54  53 54 41 54 0D 0A 3B 0D  0A 3B 09 54 68 69 73 20  6D 61 63 72 6F 20 77 69  ;PRNTSTAT;;This macro wi
00001200  6C 6C 20 67 65 74 20 74  68 65 20 70 72 69 6E 74  65 72 20 73 74 61 74 75  73 2E 0D 0A 3B 0D 0A 70  ll get the printer status.;p
00001220  72 6E 74 73 74 61 74 09  6D 61 63 72 6F 09 09 70  72 69 6E 74 65 72 0D 0A  09 09 6C 64 72 65 67 09  rntstatmacroprinterldreg
00001240  09 64 78 2C 70 72 69 6E  74 65 72 0D 0A 09 09 6D  6F 76 09 09 61 68 2C 32  0D 0A 09 09 69 6E 74 09  dx,printermovah,2int
00001260  09 31 37 68 0D 0A 09 09  65 6E 64 6D 0D 0A 3B 0D  0A 3B 09 09 53 45 54 43  52 54 4D 4F 44 45 0D 0A  17hendm;;SETCRTMODE
00001280  3B 0D 0A 3B 09 54 68 69  73 20 6D 61 63 72 6F 20  77 69 6C 6C 20 73 65 74  20 74 68 65 20 76 69 64  ;;This macro will set the vid
000012A0  69 6F 20 6D 6F 64 65 20  66 6F 72 20 74 68 65 20  43 52 54 2E 0D 0A 3B 0D  0A 73 65 74 63 72 74 6D  io mode for the CRT.;setcrtm
000012C0  6F 64 65 09 6D 61 63 72  6F 09 09 6D 6F 64 65 76  61 6C 0D 0A 09 09 6C 64  72 65 67 09 09 61 6C 2C  odemacromodevalldregal,
000012E0  6D 6F 64 65 76 61 6C 0D  0A 09 09 6D 6F 76 09 09  61 68 2C 30 0D 0A 09 09  69 6E 74 09 09 31 30 68  modevalmovah,0int10h
00001300  0D 0A 09 09 65 6E 64 6D  0D 0A 3B 0D 0A 3B 09 09  53 43 52 54 4D 4F 44 45  0D 0A 3B 0D 0A 3B 09 54  endm;;SCRTMODE;;T
00001320  68 69 73 20 6D 61 63 72  6F 20 77 69 6C 6C 20 73  65 74 20 74 68 65 20 76  69 64 69 6F 20 6D 6F 64  his macro will set the vidio mod
00001340  65 20 66 6F 72 20 74 68  65 20 43 52 54 2E 20 20  49 74 20 77 69 6C 6C 20  61 6C 6C 6F 77 20 74 68  e for the CRT.  It will allow th
00001360  65 0D 0A 3B 20 63 61 6C  6C 65 72 20 6F 66 20 74  68 65 20 6D 61 63 72 6F  20 74 6F 20 73 65 74 20  e; caller of the macro to set 
00001380  74 68 65 20 6D 6F 64 65  20 73 79 6D 62 6F 6C 69  63 6C 79 2E 0D 0A 3B 0D  0A 73 63 72 74 6D 6F 64  the mode symbolicly.;scrtmod
000013A0  65 09 6D 61 63 72 6F 09  09 6D 6F 64 65 76 61 6C  0D 0A 09 09 73 75 62 09  09 61 6C 2C 61 6C 0D 0A  emacromodevalsubal,al
000013C0  3B 09 09 74 73 74 6E 73  65 74 20 09 6D 6F 64 65  76 61 6C 2C 62 77 34 30  78 32 35 2C 30 0D 0A 09  ;tstnset modeval,bw40x25,0
000013E0  09 74 73 74 6E 73 65 74  20 09 6D 6F 64 65 76 61  6C 2C 63 6F 6C 6F 72 34  30 78 32 35 2C 31 0D 0A  tstnset modeval,color40x25,1
00001400  09 09 74 73 74 6E 73 65  74 20 09 6D 6F 64 65 76  61 6C 2C 62 77 38 30 78  32 35 2C 32 0D 0A 09 09  tstnset modeval,bw80x25,2
00001420  74 73 74 6E 73 65 74 20  09 6D 6F 64 65 76 61 6C  2C 63 6F 6C 6F 72 38 30  78 32 35 2C 33 0D 0A 09  tstnset modeval,color80x25,3
00001440  09 74 73 74 6E 73 65 74  20 09 6D 6F 64 65 76 61  6C 2C 63 6F 6C 6F 72 33  32 30 78 32 30 30 2C 34  tstnset modeval,color320x200,4
00001460  0D 0A 09 09 74 73 74 6E  73 65 74 20 09 6D 6F 64  65 76 61 6C 2C 62 77 33  32 30 78 32 30 30 2C 35  tstnset modeval,bw320x200,5
00001480  0D 0A 09 09 74 73 74 6E  73 65 74 20 09 6D 6F 64  65 76 61 6C 2C 62 77 36  34 30 78 32 30 30 2C 36  tstnset modeval,bw640x200,6
000014A0  0D 0A 09 09 6D 6F 76 09  09 61 68 2C 30 0D 0A 09  09 69 6E 74 09 09 31 30  68 0D 0A 09 09 65 6E 64  movah,0int10hend
000014C0  6D 0D 0A 3B 0D 0A 3B 09  09 53 45 54 43 55 52 54  59 50 45 0D 0A 3B 0D 0A  3B 09 54 68 69 73 20 6D  m;;SETCURTYPE;;This m
000014E0  61 63 72 6F 20 77 69 6C  6C 20 73 65 74 20 74 68  65 20 63 75 72 73 6F 72  20 74 79 70 65 2E 0D 0A  acro will set the cursor type.
00001500  3B 0D 0A 73 65 74 63 75  72 74 79 70 65 09 6D 61  63 72 6F 09 09 73 74 61  72 74 2C 65 6E 64 0D 0A  ;setcurtypemacrostart,end
00001520  09 09 6C 64 72 65 67 09  09 63 68 2C 73 74 61 72  74 0D 0A 09 09 6C 64 72  65 67 09 09 63 6C 2C 65  ldregch,startldregcl,e
00001540  6E 64 0D 0A 09 09 6D 6F  76 09 09 61 68 2C 31 0D  0A 09 09 69 6E 74 09 09  31 30 68 0D 0A 09 09 65  ndmovah,1int10he
00001560  6E 64 6D 0D 0A 3B 0D 0A  3B 09 09 53 45 54 43 55  52 50 4F 53 0D 0A 3B 0D  0A 3B 09 54 68 69 73 20  ndm;;SETCURPOS;;This 
00001580  6D 61 63 72 6F 20 77 69  6C 6C 20 73 65 74 20 74  68 65 20 63 75 72 73 6F  72 20 70 6F 73 69 74 69  macro will set the cursor positi
000015A0  6F 6E 2E 0D 0A 3B 0D 0A  73 65 74 63 75 72 70 6F  73 09 6D 61 63 72 6F 09  09 72 6F 77 2C 63 6F 6C  on.;setcurposmacrorow,col
000015C0  2C 63 72 74 70 61 67 65  0D 0A 09 09 6C 64 72 65  67 09 09 64 68 2C 72 6F  77 0D 0A 09 09 6C 64 72  ,crtpageldregdh,rowldr
000015E0  65 67 09 09 64 6C 2C 63  6F 6C 0D 0A 09 09 6C 64  72 65 67 09 09 62 68 2C  63 72 74 70 61 67 65 0D  egdl,colldregbh,crtpage
00001600  0A 09 09 6D 6F 76 09 09  61 68 2C 32 0D 0A 09 09  69 6E 74 09 09 31 30 68  0D 0A 09 09 65 6E 64 6D  movah,2int10hendm
00001620  0D 0A 3B 0D 0A 3B 09 09  47 45 54 43 55 52 50 4F  53 0D 0A 3B 0D 0A 3B 09  54 68 69 73 20 6D 61 63  ;;GETCURPOS;;This mac
00001640  72 6F 20 77 69 6C 6C 20  67 65 74 20 74 68 65 20  63 75 72 73 6F 72 20 70  6F 73 69 74 69 6F 6E 2E  ro will get the cursor position.
00001660  0D 0A 3B 0D 0A 67 65 74  63 75 72 70 6F 73 09 6D  61 63 72 6F 09 09 63 72  74 70 61 67 65 0D 0A 09  ;getcurposmacrocrtpage
00001680  09 6C 64 72 65 67 09 09  62 68 2C 63 72 74 70 61  67 65 0D 0A 09 09 6D 6F  76 09 09 61 68 2C 33 0D  ldregbh,crtpagemovah,3
000016A0  0A 09 09 69 6E 74 09 09  31 30 68 0D 0A 09 09 65  6E 64 6D 0D 0A 3B 0D 0A  3B 09 09 47 45 54 50 45  int10hendm;;GETPE
000016C0  4E 50 4F 53 0D 0A 3B 0D  0A 3B 09 54 68 69 73 20  6D 61 63 72 6F 20 77 69  6C 6C 20 67 65 74 20 74  NPOS;;This macro will get t
000016E0  68 65 20 6C 69 67 68 74  20 70 65 6E 20 70 6F 73  69 74 69 6F 6E 2E 0D 0A  3B 0D 0A 67 65 74 70 65  he light pen position.;getpe
00001700  6E 70 6F 73 09 6D 61 63  72 6F 0D 0A 09 09 6D 6F  76 09 09 61 68 2C 34 0D  0A 09 09 69 6E 74 09 09  nposmacromovah,4int
00001720  31 30 68 0D 0A 09 09 65  6E 64 6D 0D 0A 3B 0D 0A  3B 09 09 53 45 54 50 41  47 45 0D 0A 3B 0D 0A 3B  10hendm;;SETPAGE;;
00001740  09 54 68 69 73 20 6D 61  63 72 6F 20 77 69 6C 6C  20 73 65 74 20 74 68 65  20 64 69 73 70 6C 61 79  This macro will set the display
00001760  20 70 61 67 65 2E 0D 0A  3B 0D 0A 73 65 74 70 61  67 65 20 09 6D 61 63 72  6F 09 09 63 72 74 70 61   page.;setpage macrocrtpa
00001780  67 65 0D 0A 09 09 6C 64  72 65 67 09 09 61 6C 2C  63 72 74 70 61 67 65 0D  0A 09 09 6D 6F 76 09 09  geldregal,crtpagemov
000017A0  61 68 2C 35 0D 0A 09 09  69 6E 74 09 09 31 30 68  0D 0A 09 09 65 6E 64 6D  0D 0A 3B 0D 0A 3B 09 09  ah,5int10hendm;;
000017C0  53 43 52 4F 4C 4C 55 50  0D 0A 3B 0D 0A 3B 09 54  68 69 73 20 6D 61 63 72  6F 20 77 69 6C 6C 20 73  SCROLLUP;;This macro will s
000017E0  63 72 6F 6C 6C 20 74 68  65 20 70 61 67 65 20 75  70 2E 0D 0A 3B 0D 0A 73  63 72 6F 6C 6C 75 70 09  croll the page up.;scrollup
00001800  6D 61 63 72 6F 09 09 6C  69 6E 65 73 2C 75 6C 63  72 6F 77 2C 75 6C 63 63  6F 6C 2C 6C 72 63 72 6F  macrolines,ulcrow,ulccol,lrcro
00001820  77 2C 6C 72 63 63 6F 6C  2C 61 74 74 72 0D 0A 09  09 6C 64 72 65 67 09 09  61 6C 2C 6C 69 6E 65 73  w,lrccol,attrldregal,lines
00001840  0D 0A 09 09 6C 64 72 65  67 09 09 63 68 2C 75 6C  63 72 6F 77 0D 0A 09 09  6C 64 72 65 67 09 09 63  ldregch,ulcrowldregc
00001860  6C 2C 75 6C 63 63 6F 6C  0D 0A 09 09 6C 64 72 65  67 09 09 64 68 2C 6C 72  63 72 6F 77 0D 0A 09 09  l,ulccolldregdh,lrcrow
00001880  6C 64 72 65 67 09 09 64  6C 2C 6C 72 63 63 6F 6C  0D 0A 09 09 6C 64 72 65  67 09 09 62 68 2C 61 74  ldregdl,lrccolldregbh,at
000018A0  74 72 0D 0A 09 09 6D 6F  76 09 09 61 68 2C 36 0D  0A 09 09 69 6E 74 09 09  31 30 68 0D 0A 09 09 65  trmovah,6int10he
000018C0  6E 64 6D 0D 0A 3B 0D 0A  3B 09 09 53 43 52 4F 4C  4C 44 4F 57 4E 0D 0A 3B  0D 0A 3B 09 54 68 69 73  ndm;;SCROLLDOWN;;This
000018E0  20 6D 61 63 72 6F 20 77  69 6C 6C 20 73 63 72 6F  6C 6C 20 74 68 65 20 70  61 67 65 20 64 6F 77 6E   macro will scroll the page down
00001900  2E 0D 0A 3B 0D 0A 73 63  72 6F 6C 6C 64 6F 77 6E  09 6D 61 63 72 6F 09 09  6C 69 6E 65 73 2C 75 6C  .;scrolldownmacrolines,ul
00001920  63 72 6F 77 2C 75 6C 63  63 6F 6C 2C 6C 72 63 72  6F 77 2C 6C 72 63 63 6F  6C 2C 61 74 74 72 0D 0A  crow,ulccol,lrcrow,lrccol,attr
00001940  09 09 6C 64 72 65 67 09  09 61 6C 2C 6C 69 6E 65  73 0D 0A 09 09 6C 64 72  65 67 09 09 63 68 2C 75  ldregal,linesldregch,u
00001960  6C 63 72 6F 77 0D 0A 09  09 6C 64 72 65 67 09 09  63 6C 2C 75 6C 63 63 6F  6C 0D 0A 09 09 6C 64 72  lcrowldregcl,ulccolldr
00001980  65 67 09 09 64 68 2C 6C  72 63 72 6F 77 0D 0A 09  09 6C 64 72 65 67 09 09  64 6C 2C 6C 72 63 63 6F  egdh,lrcrowldregdl,lrcco
000019A0  6C 0D 0A 09 09 6C 64 72  65 67 09 09 62 68 2C 61  74 74 72 0D 0A 09 09 6D  6F 76 09 09 61 68 2C 37  lldregbh,attrmovah,7
000019C0  0D 0A 09 09 69 6E 74 09  09 31 30 68 0D 0A 09 09  65 6E 64 6D 0D 0A 3B 0D  0A 3B 09 09 52 45 41 44  int10hendm;;READ
000019E0  41 54 52 43 48 52 0D 0A  3B 0D 0A 3B 09 54 68 69  73 20 6D 61 63 72 6F 20  77 69 6C 6C 20 72 65 61  ATRCHR;;This macro will rea
00001A00  64 20 74 68 65 20 61 74  74 72 69 62 75 74 65 20  61 6E 64 20 63 68 61 72  61 63 74 65 72 20 61 74  d the attribute and character at
00001A20  20 74 68 65 20 63 75 72  72 65 6E 74 20 63 75 72  73 6F 72 0D 0A 3B 20 70  6F 73 69 74 69 6F 6E 2E   the current cursor; position.
00001A40  0D 0A 3B 0D 0A 72 65 61  64 61 74 72 63 68 72 09  6D 61 63 72 6F 09 09 70  61 67 65 0D 0A 09 09 6C  ;readatrchrmacropagel
00001A60  64 72 65 67 09 09 62 68  2C 70 61 67 65 0D 0A 09  09 6D 6F 76 09 09 61 68  2C 38 0D 0A 09 09 69 6E  dregbh,pagemovah,8in
00001A80  74 09 09 31 30 68 0D 0A  09 09 65 6E 64 6D 0D 0A  3B 0D 0A 3B 09 09 57 52  49 54 45 41 54 52 43 48  t10hendm;;WRITEATRCH
00001AA0  52 0D 0A 3B 0D 0A 3B 09  54 68 69 73 20 6D 61 63  72 6F 20 77 69 6C 6C 20  77 72 69 74 65 20 74 68  R;;This macro will write th
00001AC0  65 20 61 74 74 72 69 62  75 74 65 20 61 6E 64 20  63 68 61 72 61 63 74 65  72 20 61 74 20 74 68 65  e attribute and character at the
00001AE0  20 63 75 72 72 65 6E 74  20 63 75 72 73 6F 72 0D  0A 3B 20 70 6F 73 69 74  69 6F 6E 2E 0D 0A 3B 0D   current cursor; position.;
00001B00  0A 77 72 69 74 65 61 74  72 63 68 72 09 6D 61 63  72 6F 09 09 63 68 61 72  2C 61 74 74 72 2C 63 6F  writeatrchrmacrochar,attr,co
00001B20  75 6E 74 2C 70 61 67 65  0D 0A 09 09 6C 64 72 65  67 09 09 61 6C 2C 63 68  61 72 0D 0A 09 09 6C 64  unt,pageldregal,charld
00001B40  72 65 67 09 09 62 6C 2C  61 74 74 72 0D 0A 09 09  6C 64 72 65 67 09 09 63  78 2C 63 6F 75 6E 74 0D  regbl,attrldregcx,count
00001B60  0A 09 09 6C 64 72 65 67  09 09 62 68 2C 70 61 67  65 0D 0A 09 09 6D 6F 76  09 09 61 68 2C 39 0D 0A  ldregbh,pagemovah,9
00001B80  09 09 69 6E 74 09 09 31  30 68 0D 0A 09 09 65 6E  64 6D 0D 0A 3B 0D 0A 3B  09 09 57 52 49 54 45 43  int10hendm;;WRITEC
00001BA0  48 41 52 0D 0A 3B 0D 0A  3B 09 54 68 69 73 20 6D  61 63 72 6F 20 77 69 6C  6C 20 77 72 69 74 65 20  HAR;;This macro will write 
00001BC0  74 68 65 20 63 68 61 72  61 63 74 65 72 20 61 74  20 74 68 65 20 63 75 72  72 65 6E 74 20 63 75 72  the character at the current cur
00001BE0  73 6F 72 20 70 6F 73 69  74 69 6F 6E 2E 0D 0A 3B  0D 0A 77 72 69 74 65 63  68 61 72 09 6D 61 63 72  sor position.;writecharmacr
00001C00  6F 09 09 63 68 61 72 2C  63 6F 75 6E 74 2C 70 61  67 65 0D 0A 09 09 6C 64  72 65 67 09 09 61 6C 2C  ochar,count,pageldregal,
00001C20  63 68 61 72 0D 0A 09 09  6C 64 72 65 67 09 09 63  78 2C 63 6F 75 6E 74 0D  0A 09 09 6C 64 72 65 67  charldregcx,countldreg
00001C40  09 09 62 68 2C 70 61 67  65 0D 0A 09 09 6D 6F 76  09 09 61 68 2C 31 30 0D  0A 09 09 69 6E 74 09 09  bh,pagemovah,10int
00001C60  31 30 68 0D 0A 09 09 65  6E 64 6D 0D 0A 3B 0D 0A  3B 09 09 53 45 54 50 41  4C 45 54 54 45 0D 0A 3B  10hendm;;SETPALETTE;
00001C80  0D 0A 3B 09 54 68 69 73  20 6D 61 63 72 6F 20 77  69 6C 6C 20 73 65 74 20  74 68 65 20 63 6F 6C 6F  ;This macro will set the colo
00001CA0  72 20 70 61 6C 65 74 74  65 2E 0D 0A 3B 0D 0A 73  65 74 70 61 6C 65 74 74  65 09 6D 61 63 72 6F 09  r palette.;setpalettemacro
00001CC0  09 63 6F 6C 6F 72 69 64  2C 63 6F 6C 6F 72 76 61  6C 0D 0A 09 09 6C 64 72  65 67 09 09 62 68 2C 63  colorid,colorvalldregbh,c
00001CE0  6F 6C 6F 72 69 64 0D 0A  09 09 6C 64 72 65 67 09  09 62 6C 2C 63 6F 6C 6F  72 76 61 6C 0D 0A 09 09  oloridldregbl,colorval
00001D00  6D 6F 76 09 09 61 68 2C  31 31 0D 0A 09 09 69 6E  74 09 09 31 30 68 0D 0A  09 09 65 6E 64 6D 0D 0A  movah,11int10hendm
00001D20  3B 0D 0A 3B 09 09 57 52  49 54 45 44 4F 54 0D 0A  3B 0D 0A 3B 09 54 68 69  73 20 6D 61 63 72 6F 20  ;;WRITEDOT;;This macro 
00001D40  77 69 6C 6C 20 77 72 69  74 65 20 61 20 64 6F 74  20 6F 6E 20 74 68 65 20  43 52 54 2E 0D 0A 3B 0D  will write a dot on the CRT.;
00001D60  0A 77 72 69 74 65 64 6F  74 09 6D 61 63 72 6F 09  09 72 6F 77 2C 63 6F 6C  2C 63 6F 6C 6F 72 0D 0A  writedotmacrorow,col,color
00001D80  09 09 6C 64 72 65 67 09  09 64 78 2C 72 6F 77 0D  0A 09 09 6C 64 72 65 67  09 09 63 78 2C 63 6F 6C  ldregdx,rowldregcx,col
00001DA0  0D 0A 09 09 6C 64 72 65  67 09 09 61 6C 2C 63 6F  6C 6F 72 0D 0A 09 09 6D  6F 76 09 09 61 68 2C 31  ldregal,colormovah,1
00001DC0  32 0D 0A 09 09 69 6E 74  09 09 31 30 68 0D 0A 09  09 65 6E 64 6D 0D 0A 3B  0D 0A 3B 09 09 52 45 41  2int10hendm;;REA
00001DE0  44 44 4F 54 0D 0A 3B 0D  0A 3B 09 54 68 69 73 20  6D 61 63 72 6F 20 77 69  6C 6C 20 72 65 61 64 20  DDOT;;This macro will read 
00001E00  61 20 64 6F 74 20 66 72  6F 6D 20 74 68 65 20 43  52 54 2E 0D 0A 3B 0D 0A  72 65 61 64 64 6F 74 20  a dot from the CRT.;readdot 
00001E20  09 6D 61 63 72 6F 09 09  72 6F 77 2C 63 6F 6C 0D  0A 09 09 6C 64 72 65 67  09 09 64 78 2C 72 6F 77  macrorow,colldregdx,row
00001E40  0D 0A 09 09 6C 64 72 65  67 09 09 63 78 2C 63 6F  6C 0D 0A 09 09 6D 6F 76  09 09 61 68 2C 31 33 0D  ldregcx,colmovah,13
00001E60  0A 09 09 69 6E 74 09 09  31 30 68 0D 0A 09 09 65  6E 64 6D 0D 0A 3B 0D 0A  3B 09 09 54 45 4C 45 57  int10hendm;;TELEW
00001E80  52 49 54 45 0D 0A 3B 0D  0A 3B 09 54 68 69 73 20  6D 61 63 72 6F 20 77 69  6C 6C 20 70 65 72 66 6F  RITE;;This macro will perfo
00001EA0  72 6D 20 61 20 74 65 6C  65 74 79 70 65 20 77 72  69 74 65 2E 0D 0A 3B 0D  0A 74 65 6C 65 77 72 69  rm a teletype write.;telewri
00001EC0  74 65 09 6D 61 63 72 6F  09 09 63 68 61 72 2C 63  6F 6C 6F 72 2C 70 61 67  65 0D 0A 09 09 6C 64 72  temacrochar,color,pageldr
00001EE0  65 67 09 09 61 6C 2C 63  68 61 72 0D 0A 09 09 6C  64 72 65 67 09 09 62 6C  2C 63 6F 6C 6F 72 0D 0A  egal,charldregbl,color
00001F00  09 09 6C 64 72 65 67 09  09 62 68 2C 70 61 67 65  0D 0A 09 09 6D 6F 76 09  09 61 68 2C 31 34 0D 0A  ldregbh,pagemovah,14
00001F20  09 09 69 6E 74 09 09 31  30 68 0D 0A 09 09 65 6E  64 6D 0D 0A 3B 0D 0A 3B  09 09 56 49 44 49 4F 53  int10hendm;;VIDIOS
00001F40  54 41 54 45 0D 0A 3B 0D  0A 3B 09 54 68 69 73 20  6D 61 63 72 6F 20 77 69  6C 6C 20 67 65 74 20 74  TATE;;This macro will get t
00001F60  68 65 20 63 75 72 72 65  6E 74 20 76 69 64 69 6F  20 73 74 61 74 65 2E 0D  0A 3B 0D 0A 76 69 64 69  he current vidio state.;vidi
00001F80  6F 73 74 61 74 65 09 6D  61 63 72 6F 0D 0A 09 09  6D 6F 76 09 09 61 68 2C  31 35 0D 0A 09 09 69 6E  ostatemacromovah,15in
00001FA0  74 09 09 31 30 68 0D 0A  09 09 65 6E 64 6D 0D 0A  3B 0D 0A 3B 09 09 47 45  54 4D 45 4D 53 49 5A 45  t10hendm;;GETMEMSIZE
00001FC0  0D 0A 3B 0D 0A 3B 09 54  68 69 73 20 6D 61 63 72  6F 20 77 69 6C 6C 20 72  65 74 75 72 6E 20 74 68  ;;This macro will return th
00001FE0  65 20 61 6D 6F 75 6E 74  20 6F 66 20 6D 65 6D 6F  72 79 20 69 6E 20 31 4B  20 69 6E 63 72 65 6D 65  e amount of memory in 1K increme
00002000  6E 74 73 2E 0D 0A 3B 0D  0A 67 65 74 6D 65 6D 73  69 7A 65 09 6D 61 63 72  6F 0D 0A 09 09 69 6E 74  nts.;getmemsizemacroint
00002020  09 09 31 32 68 0D 0A 09  09 65 6E 64 6D 0D 0A 3B  0D 0A 3B 09 09 45 51 55  49 50 4D 45 4E 54 0D 0A  12hendm;;EQUIPMENT
00002040  3B 0D 0A 3B 09 54 68 69  73 20 6D 61 63 72 6F 20  77 69 6C 6C 20 72 65 74  75 72 6E 20 74 68 65 20  ;;This macro will return the 
00002060  6B 69 6E 64 73 20 6F 66  20 64 65 76 69 63 65 73  20 74 68 61 74 20 61 72  65 20 61 74 74 61 63 68  kinds of devices that are attach
00002080  65 64 20 74 6F 20 74 68  65 0D 0A 3B 20 73 79 73  74 65 6D 2E 0D 0A 3B 0D  0A 65 71 75 69 70 6D 65  ed to the; system.;equipme
000020A0  6E 74 09 6D 61 63 72 6F  0D 0A 09 09 69 6E 74 09  09 31 31 68 0D 0A 09 09  65 6E 64 6D 0D 0A 3B 0D  ntmacroint11hendm;
000020C0  0A 3B 09 09 43 41 53 4D  4F 54 4F 52 0D 0A 3B 0D  0A 3B 09 54 68 69 73 20  6D 61 63 72 6F 20 77 69  ;CASMOTOR;;This macro wi
000020E0  6C 6C 20 74 75 72 6E 20  74 68 65 20 63 61 73 73  65 74 74 65 20 6D 6F 74  6F 72 20 6F 6E 20 6F 72  ll turn the cassette motor on or
00002100  20 6F 66 66 2E 0D 0A 3B  0D 0A 63 61 73 6D 6F 74  6F 72 09 6D 61 63 72 6F  09 09 6D 6F 74 6F 72 73   off.;casmotormacromotors
00002120  74 61 74 65 0D 0A 09 09  69 66 69 64 6E 09 09 3C  6D 6F 74 6F 72 73 74 61  74 65 3E 2C 3C 6F 6E 3E  tateifidn<motorstate>,<on>
00002140  0D 0A 09 09 6D 6F 76 09  09 61 68 2C 30 0D 0A 09  09 65 6E 64 69 66 0D 0A  09 09 69 66 69 64 6E 09  movah,0endififidn
00002160  09 3C 6D 6F 74 6F 72 73  74 61 74 65 3E 2C 3C 6F  66 66 3E 0D 0A 09 09 6D  6F 76 09 09 61 68 2C 31  <motorstate>,<off>movah,1
00002180  0D 0A 09 09 65 6E 64 69  66 0D 0A 09 09 69 6E 74  09 09 31 35 68 0D 0A 09  09 65 6E 64 6D 0D 0A 3B  endifint15hendm;
000021A0  0D 0A 3B 09 09 43 41 53  52 45 41 44 0D 0A 3B 0D  0A 3B 09 54 68 69 73 20  6D 61 63 72 6F 20 77 69  ;CASREAD;;This macro wi
000021C0  6C 6C 20 72 65 61 64 20  32 35 36 20 62 79 74 65  20 62 6C 6F 63 6B 73 20  66 72 6F 6D 20 74 68 65  ll read 256 byte blocks from the
000021E0  20 63 61 73 73 65 74 74  65 2E 0D 0A 3B 0D 0A 63  61 73 72 65 61 64 20 09  6D 61 63 72 6F 09 09 6E   cassette.;casread macron
00002200  75 6D 62 79 74 65 73 2C  62 75 66 66 6F 66 66 0D  0A 09 09 6C 64 72 65 67  09 09 63 78 2C 6E 75 6D  umbytes,buffoffldregcx,num
00002220  62 79 74 65 73 0D 0A 09  09 6C 64 72 65 67 09 09  62 78 2C 62 75 66 66 6F  66 66 0D 0A 09 09 6D 6F  bytesldregbx,buffoffmo
00002240  76 09 09 61 68 2C 32 0D  0A 09 09 69 6E 74 09 09  31 35 68 0D 0A 09 09 65  6E 64 6D 0D 0A 3B 0D 0A  vah,2int15hendm;
00002260  3B 09 09 43 41 53 57 52  49 54 45 0D 0A 3B 0D 0A  3B 09 54 68 69 73 20 6D  61 63 72 6F 20 77 69 6C  ;CASWRITE;;This macro wil
00002280  6C 20 77 72 69 74 65 20  32 35 36 20 62 79 74 65  20 62 6C 6F 63 6B 73 20  74 6F 20 74 68 65 20 63  l write 256 byte blocks to the c
000022A0  61 73 73 65 74 74 65 2E  0D 0A 3B 0D 0A 63 61 73  77 72 69 74 65 09 6D 61  63 72 6F 09 09 6E 75 6D  assette.;caswritemacronum
000022C0  62 79 74 65 73 2C 62 75  66 66 6F 66 66 0D 0A 09  09 6C 64 72 65 67 09 09  63 78 2C 6E 75 6D 62 79  bytes,buffoffldregcx,numby
000022E0  74 65 73 0D 0A 09 09 6C  64 72 65 67 09 09 62 78  2C 62 75 66 66 6F 66 66  0D 0A 09 09 6D 6F 76 09  tesldregbx,buffoffmov
00002300  09 61 68 2C 33 0D 0A 09  09 69 6E 74 09 09 31 35  68 0D 0A 09 09 65 6E 64  6D 0D 0A 1A 00 00 00 00  ah,3int15hendm....
00002320  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
00002340  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
00002360  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................................
[ RETURN TO DIRECTORY ]