============================================================================================================================================== 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 ;♪◙ldreg○○macro○○destreg,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 mov○○destreg,source♪◙○○endif♪◙○○ 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 ○macro○○sr 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,orval♪◙○○ifidn○○<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>♪◙○○or○○al,orval♪◙○○endif♪◙ 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 ♪◙;♪◙irs232○○macro○○initparms,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 nenum♪◙○○ldreg○○dx,linenum♪◙○○ld 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 reg○○al,initparms♪◙○○mov○○ah,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 ○○int○○14h♪◙○○endm♪◙;♪◙;○○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 ○macro○○baudrate,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,linenum♪◙○○ldreg○○d 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,linenum♪◙○○sub○○ax,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,00000000b♪◙○○t 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 b♪◙○○tstnset ○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 000b♪◙○○tstnset ○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 0000000b♪◙○○tstnset ○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,10100000b♪◙○○tstnset ○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,11000000b♪◙○○tstnset ○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,00000000b♪◙○○tstns 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,00001000b♪◙○○tstn 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 ○int○○14h♪◙○○endm♪◙;♪◙;○○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 ○macro○○char,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 ○ldreg○○dx,linenum♪◙○○ldreg○○al, 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 char♪◙○○mov○○ah,1♪◙○○int○○14h♪◙○ 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 ○macro○○linenum♪◙○○ldreg○○dx,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 enum♪◙○○mov○○ah,2♪◙○○int○○14h♪◙○ 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 ○linenum♪◙○○ldreg○○dx,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 ○mov○○ah,3♪◙○○int○○14h♪◙○○endm♪◙ 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.♪◙;♪◙getkbchar○macro♪◙○○ 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 mov○○ah,0♪◙○○int○○16h♪◙○○endm♪◙; 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 ◙tstkbchar○macro♪◙○○mov○○ah,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 ○int○○16h♪◙○○endm♪◙;♪◙;○○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 bshift○macro♪◙○○mov○○ah,2♪◙○○int 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 ○○16h♪◙○○endm♪◙;♪◙;○○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 macro♪◙○○mov○○ah,0♪◙○○int○○16h♪◙ 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.♪◙;♪◙getdskstat○macro♪◙○○ 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 mov○○ah,1♪◙○○int○○16h♪◙○○endm♪◙; 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 ○macro○○drive,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,buffoff♪◙○○ldreg○ 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,drive♪◙○○ldreg○○dh,head♪◙○○l 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 dreg○○ch,track♪◙○○ldreg○○cl,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 or♪◙○○ldreg○○al,numsecs♪◙○○ldreg 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,buffoff♪◙○○mov○○ah,2♪◙○○int 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 ○○16h♪◙○○endm♪◙;♪◙;○○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.♪◙;♪◙dskwrite○macro○○d 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 uffoff♪◙○○ldreg○○dl,drive♪◙○○ldr 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 eg○○dh,head♪◙○○ldreg○○ch,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 ○○ldreg○○cl,sector♪◙○○ldreg○○al, 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 numsecs♪◙○○ldreg○○bx,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 mov○○ah,3♪◙○○int○○16h♪◙○○endm♪◙; 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 verfy○macro○○drive,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,buffoff♪◙○○ldreg○○d 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,drive♪◙○○ldreg○○dh,head♪◙○○ldr 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 eg○○ch,track♪◙○○ldreg○○cl,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 ♪◙○○ldreg○○al,numsecs♪◙○○ldreg○○ 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,buffoff♪◙○○mov○○ah,4♪◙○○int○○ 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 16h♪◙○○endm♪◙;♪◙;○○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.♪◙;♪◙dskformat○macro○○dri 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 foff♪◙○○ldreg○○dl,drive♪◙○○ldreg 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,head♪◙○○ldreg○○ch,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 ldreg○○cl,sector♪◙○○ldreg○○al,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 msecs♪◙○○ldreg○○bx,buffoff♪◙○○mo 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 v○○ah,5♪◙○○int○○16h♪◙○○endm♪◙;♪◙ 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.♪◙;♪◙prntchar○macro○○char,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 nter♪◙○○ldreg○○al,char♪◙○○ldreg○ 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,printer♪◙○○mov○○ah,0♪◙○○int○ 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 ○17h♪◙○○endm♪◙;♪◙;○○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.♪◙;♪◙iniprntr○macro○○p 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 rinter♪◙○○ldreg○○dx,printer♪◙○○m 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 ov○○ah,1♪◙○○int○○17h♪◙○○endm♪◙;♪ 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 rntstat○macro○○printer♪◙○○ldreg○ 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,printer♪◙○○mov○○ah,2♪◙○○int○ 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 ○17h♪◙○○endm♪◙;♪◙;○○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 ode○macro○○modeval♪◙○○ldreg○○al, 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 modeval♪◙○○mov○○ah,0♪◙○○int○○10h 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 e○macro○○modeval♪◙○○sub○○al,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 ♪◙○○mov○○ah,0♪◙○○int○○10h♪◙○○end 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 ;♪◙setcurtype○macro○○start,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 ○○ldreg○○ch,start♪◙○○ldreg○○cl,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 nd♪◙○○mov○○ah,1♪◙○○int○○10h♪◙○○e 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.♪◙;♪◙setcurpos○macro○○row,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 ,crtpage♪◙○○ldreg○○dh,row♪◙○○ldr 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 eg○○dl,col♪◙○○ldreg○○bh,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 ◙○○mov○○ah,2♪◙○○int○○10h♪◙○○endm 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 ♪◙;♪◙getcurpos○macro○○crtpage♪◙○ 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 ○ldreg○○bh,crtpage♪◙○○mov○○ah,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 ◙○○int○○10h♪◙○○endm♪◙;♪◙;○○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 npos○macro♪◙○○mov○○ah,4♪◙○○int○○ 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 10h♪◙○○endm♪◙;♪◙;○○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 ○macro○○crtpa 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 ge♪◙○○ldreg○○al,crtpage♪◙○○mov○○ 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,5♪◙○○int○○10h♪◙○○endm♪◙;♪◙;○○ 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 macro○○lines,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,attr♪◙○○ldreg○○al,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 ♪◙○○ldreg○○ch,ulcrow♪◙○○ldreg○○c 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,ulccol♪◙○○ldreg○○dh,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 ldreg○○dl,lrccol♪◙○○ldreg○○bh,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 tr♪◙○○mov○○ah,6♪◙○○int○○10h♪◙○○e 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 .♪◙;♪◙scrolldown○macro○○lines,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 ○○ldreg○○al,lines♪◙○○ldreg○○ch,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 lcrow♪◙○○ldreg○○cl,ulccol♪◙○○ldr 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 eg○○dh,lrcrow♪◙○○ldreg○○dl,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 l♪◙○○ldreg○○bh,attr♪◙○○mov○○ah,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 ♪◙○○int○○10h♪◙○○endm♪◙;♪◙;○○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 ♪◙;♪◙readatrchr○macro○○page♪◙○○l 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 dreg○○bh,page♪◙○○mov○○ah,8♪◙○○in 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 t○○10h♪◙○○endm♪◙;♪◙;○○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 ◙writeatrchr○macro○○char,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,page♪◙○○ldreg○○al,char♪◙○○ld 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 reg○○bl,attr♪◙○○ldreg○○cx,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 ◙○○ldreg○○bh,page♪◙○○mov○○ah,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 ○○int○○10h♪◙○○endm♪◙;♪◙;○○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.♪◙;♪◙writechar○macr 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 o○○char,count,page♪◙○○ldreg○○al, 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 char♪◙○○ldreg○○cx,count♪◙○○ldreg 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,page♪◙○○mov○○ah,10♪◙○○int○○ 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 10h♪◙○○endm♪◙;♪◙;○○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.♪◙;♪◙setpalette○macro○ 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,colorval♪◙○○ldreg○○bh,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 olorid♪◙○○ldreg○○bl,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 mov○○ah,11♪◙○○int○○10h♪◙○○endm♪◙ 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 ◙writedot○macro○○row,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 ○○ldreg○○dx,row♪◙○○ldreg○○cx,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 ♪◙○○ldreg○○al,color♪◙○○mov○○ah,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 2♪◙○○int○○10h♪◙○○endm♪◙;♪◙;○○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 ○macro○○row,col♪◙○○ldreg○○dx,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 ♪◙○○ldreg○○cx,col♪◙○○mov○○ah,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 ◙○○int○○10h♪◙○○endm♪◙;♪◙;○○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 te○macro○○char,color,page♪◙○○ldr 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 eg○○al,char♪◙○○ldreg○○bl,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 ○○ldreg○○bh,page♪◙○○mov○○ah,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 ○○int○○10h♪◙○○endm♪◙;♪◙;○○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 ostate○macro♪◙○○mov○○ah,15♪◙○○in 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 t○○10h♪◙○○endm♪◙;♪◙;○○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.♪◙;♪◙getmemsize○macro♪◙○○int 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 ○○12h♪◙○○endm♪◙;♪◙;○○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 nt○macro♪◙○○int○○11h♪◙○○endm♪◙;♪ 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.♪◙;♪◙casmotor○macro○○motors 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 tate♪◙○○ifidn○○<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 ♪◙○○mov○○ah,0♪◙○○endif♪◙○○ifidn○ 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>♪◙○○mov○○ah,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 ♪◙○○endif♪◙○○int○○15h♪◙○○endm♪◙; 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 ○macro○○n 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,buffoff♪◙○○ldreg○○cx,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 bytes♪◙○○ldreg○○bx,buffoff♪◙○○mo 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 v○○ah,2♪◙○○int○○15h♪◙○○endm♪◙;♪◙ 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.♪◙;♪◙caswrite○macro○○num 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,buffoff♪◙○○ldreg○○cx,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 tes♪◙○○ldreg○○bx,buffoff♪◙○○mov○ 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,3♪◙○○int○○15h♪◙○○endm♪◙→.... 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 ................................