; s-50 built in monitor 0103: A1000118 ld R18,#0100 0107: 71DF10 andb R10,#DF 010A: B30100D81A ldb R1A,D800 010F: 99FE1A cmpb R1A,#FE ; '0' pressed ? 0112: DF06 je 011A 0114: B01A74 ldb R74,R1A 0117: E75D04 ljmp 0577 ; monitor entry point 011A: FA di 011B: A1000118 ld R18,#0100 ; sp to top of on chip memory 011F: B1FE74 ldb R74,#FE 0122: 71DF10 andb R10,#DF 0125: B1401A ldb R1A,#40 0128: C70100C01A stb R1A,C000 012D: B1050E ldb R0E,#05 ; baud rate for midi 0130: B1800E ldb R0E,#80 0133: B10911 ldb R11,#09 ; serial port mode 1 0136: B12016 ldb R16,#20 ; enable transmit 0139: 710009 andb R09,#00 ; disable all interupts 013C: B10008 ldb R08,#00 ; 013F: monloop: 2922 scall getbyte ; get byte in $1a 0141: 992F1A cmpb R1A,#2F ; '/' ? 0144: D702 jne 0148 0146: 2033 sjmp 017B 0148: 99521A cmpb R1A,#52 ; 'R' 014B: D702 jne 014F 014D: 2035 sjmp 0184 014F: 99571A cmpb R1A,#57 ; 'W' 0152: D702 jne 0156 0154: 2058 sjmp 01AE 0156: 99471A cmpb R1A,#47 ; 'G' 0159: D702 jne 015D 015B: 2076 sjmp 01D3 015D: 99FF1A cmpb R1A,#FF 0160: D702 jne 0164 0162: 2085 sjmp 01E9 0164: 994D1A cmpb R1A,#4D ; M 0167: D702 jne 016B 0169: 20DD sjmp 0248 016B: 99491A cmpb R1A,#49 ; I 016E: D702 jne 0172 0170: 207B sjmp 01ED 0172: 99421A cmpb R1A,#42 ; B 0175: D702 jne 0179 0177: 2009 sjmp 0182 0179: 27C4 sjmp monloop ; slash 017B: B12F1A ldb R1A,#2F ; '/' 017E: 2912 scall putbyte 0180: 27BD sjmp monloop ; B no op 0182: 27BB sjmp monloop ; R cmd R addr count 0184: 28E4 scall getxbyte ; 026A 0186: B01A1D ldb R1D,R1A 0189: 28DF scall getxbyte ; 026A 018B: B01A1C ldb R1C,R1A 018E: 28DA scall getxbyte ; 026A 0190: B01A1F ldb R1F,R1A 0193: 28D5 scall getxbyte ; 026A 0195: B01A1E ldb R1E,R1A 0198: 8900001E cmp R1E,#0000 019C: DF09 je 01A7 019E: B21D1A ldb R1A,[R1C]+ 01A1: 290C scall putxbyte ; 02AF 01A3: 051E dec R1E 01A5: 27F1 sjmp 0198 01A7: B12F1A ldb R1A,#2F 01AA: 28E6 scall putbyte 01AC: 2791 sjmp monloop ; W cmd W addr count 01AE: 28BA scall getxbyte ; 026A 01B0: B01A1D ldb R1D,R1A 01B3: 28B5 scall getxbyte ; 026A 01B5: B01A1C ldb R1C,R1A 01B8: 28B0 scall getxbyte ; 026A 01BA: B01A1F ldb R1F,R1A 01BD: 28AB scall getxbyte ; 026A 01BF: B01A1E ldb R1E,R1A 01C2: 8900001E cmp R1E,#0000 01C6: DF09 je 01D1 01C8: 28A0 scall getxbyte ; 026A 01CA: C61D1A stb R1A,[R1C]+ 01CD: 051E dec R1E 01CF: 27F1 sjmp 01C2 01D1: 276C sjmp monloop ; G cmd G addr 01D3: 2895 scall getxbyte ; 026A 01D5: B01A1D ldb R1D,R1A 01D8: 2890 scall getxbyte ; 026A 01DA: B01A1C ldb R1C,R1A 01DD: 288B scall getxbyte ; 026A 01DF: B01A1F ldb R1F,R1A 01E2: 2886 scall getxbyte ; 026A 01E4: B01A1E ldb R1E,R1A 01E7: E31C br [R1C] 01E9: E72EFF ljmp 011A 01EC: FF rst ; I cmd I addr count byteval ; fill memory from addr to addr+count-1 with byte 01ED: 287B scall getxbyte ; 026A 01EF: B01A1D ldb R1D,R1A 01F2: 2876 scall getxbyte ; 026A 01F4: B01A1C ldb R1C,R1A 01F7: 2871 scall getxbyte ; 026A 01F9: B01A1F ldb R1F,R1A 01FC: 286C scall getxbyte ; 026A 01FE: B01A1E ldb R1E,R1A 0201: 2867 scall getxbyte ; 026A 0203: 8900001E cmp R1E,#0000 0207: DF07 je 0210 0209: C61D1A stb R1A,[R1C]+ 020C: 051E dec R1E 020E: 27F3 sjmp 0203 0210: 272D sjmp monloop ; 0212: 1B 5B 32 31 6D 20 20 69 38 30 39 36 20 4D 54 20 '.[21m i8096 MT ' 0222: 4D 4F 4E 49 54 45 52 20 20 56 65 72 20 30 2E 32 'MONITER Ver 0.2' 0232: 20 20 20 5B 20 4F 4E 20 4C 49 4E 45 20 5D 1B 5B ' [ ON LINE ].[' 0242: 32 32 6D 0A 0D 00 A1 00 00 20 B3 21 12 02 1A 99 '22m...¡.. ³!...™' ; M display monitor version 0248: A1000020 ld R20,#0000 024C: B32112021A ldb R1A,0212[R20] 0251: 99001A cmpb R1A,#00 0254: DF06 je 025C 0256: 283A scall 0292 0258: 0720 inc R20 025A: 27F0 sjmp 024C 025C: B12F1A ldb R1A,#2F 025F: 2831 scall putbyte ; 0292 0261: 26DC sjmp monloop 0249: 0000 skip R00 024B: 20B3 sjmp 0300 024D: 2112 sjmp 0361 024F: 021A not R1A 0251: 99001A cmpb R1A,#00 0254: DF06 je 025C 0256: 283A scall putbyte 0258: 0720 inc R20 025A: 27F0 sjmp 024C 025C: B12F1A ldb R1A,#2F 025F: 2831 scall putbyte 0261: 26DC sjmp monloop getbyte: 3611FD jbc R11,6 getbyte 0266: B0071A ldb R1A,R07 0269: F0 ret ; get hexdigit getxbyte ; 026A: 2FF7 scall getbyte 026C: 99391A cmpb R1A,#39 026F: D205 jgt 0276 0271: 79301A subb R1A,#30 0274: 2003 sjmp 0279 0276: 79371A subb R1A,#37 0279: 19041A shlb R1A,04 027C: B01A1B ldb R1B,R1A 027F: 2FE2 scall getbyte 0281: 99391A cmpb R1A,#39 0284: D205 jgt 028B 0286: 79301A subb R1A,#30 0289: 2003 sjmp 028E 028B: 79371A subb R1A,#37 028E: 901B1A orb R1A,R1B 0291: F0 ret putbyte: C4071A stb R1A,R07 0295: 3511FD jbc R11,5 0295 0298: B1001A ldb R1A,#00 029B: E01AFD djnz R1A,029B 029E: F0 ret 029F: 303132 DB "0123456789ABCDEF" putxbyte ; 02AF: B01A1B ldb R1B,R1A 02B2: 0120 clr R20 02B4: B01A20 ldb R20,R1A 02B7: 180420 shrb R20,04 02BA: B3219F021A ldb R1A,029F[R20] 02BF: 2FD1 scall putbyte ; 0292 02C1: B01B1A ldb R1A,R1B 02C4: 0120 clr R20 02C6: B01A20 ldb R20,R1A 02C9: 710F20 andb R20,#0F 02CC: B32188121A ldb R1A,1288[R20] ; '01234...' 02D1: 2FBF scall putbyte ; 0292 02D3: F0 ret